Skip to content

Commit a3ceee5

Browse files
committed
Remove preferred prefix from methods
1 parent 00ab5ea commit a3ceee5

File tree

7 files changed

+48
-40
lines changed

7 files changed

+48
-40
lines changed

examples/accept.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727
var mediaType, negotiator;
2828
negotiator = new Negotiator(req);
2929
console.log("Accept: " + req.headers['accept']);
30-
console.log("Preferred: " + (negotiator.preferredMediaTypes()));
31-
console.log("Possible: " + (negotiator.preferredMediaTypes(availableMediaTypes)));
32-
mediaType = negotiator.preferredMediaType(availableMediaTypes);
30+
console.log("Preferred: " + (negotiator.mediaTypes()));
31+
console.log("Possible: " + (negotiator.mediaTypes(availableMediaTypes)));
32+
mediaType = negotiator.mediaType(availableMediaTypes);
3333
console.log("Selected: " + mediaType);
3434
if (mediaType) {
3535
res.writeHead(200, {

examples/charset.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@
3232
var charset, negotiator;
3333
negotiator = new Negotiator(req);
3434
console.log("Accept-Charset: " + req.headers['accept-charset']);
35-
console.log("Preferred: " + (negotiator.preferredCharsets()));
36-
console.log("Possible: " + (negotiator.preferredCharsets(availableCharsets)));
37-
charset = negotiator.preferredCharset(availableCharsets);
35+
console.log("Preferred: " + (negotiator.charsets()));
36+
console.log("Possible: " + (negotiator.charsets(availableCharsets)));
37+
charset = negotiator.charset(availableCharsets);
3838
console.log("Selected: " + charset);
3939
if (charset) {
4040
res.writeHead(200, {

examples/encoding.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
var encoding, negotiator;
2929
negotiator = new Negotiator(req);
3030
console.log("Accept-Encoding: " + req.headers['accept-encoding']);
31-
console.log("Preferred: " + (negotiator.preferredEncodings()));
32-
console.log("Possible: " + (negotiator.preferredEncodings(availableEncodings)));
33-
encoding = negotiator.preferredEncoding(availableEncodings);
31+
console.log("Preferred: " + (negotiator.encodings()));
32+
console.log("Possible: " + (negotiator.encodings(availableEncodings)));
33+
encoding = negotiator.encoding(availableEncodings);
3434
console.log("Selected: " + encoding);
3535
if (encoding) {
3636
res.writeHead(200, {

examples/language.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424
var language, negotiator;
2525
negotiator = new Negotiator(req);
2626
console.log("Accept-Language: " + req.headers['accept-language']);
27-
console.log("Preferred: " + (negotiator.preferredLanguages()));
28-
console.log("Possible: " + (negotiator.preferredLanguages(availableLanguages)));
29-
language = negotiator.preferredLanguage(availableLanguages);
27+
console.log("Preferred: " + (negotiator.languages()));
28+
console.log("Possible: " + (negotiator.languages(availableLanguages)));
29+
language = negotiator.language(availableLanguages);
3030
console.log("Selected: " + language);
3131
if (language) {
3232
res.writeHead(200, {

lib/negotiator.js

+15-7
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,19 @@ function Negotiator(request) {
66
this.request = request;
77
}
88

9-
var set = { preferredCharset: [require('./charset.js'), 'accept-charset'],
10-
preferredEncoding: [require('./encoding.js'), 'accept-encoding'],
11-
preferredLanguage: [require('./language.js'), 'accept-language'],
12-
preferredMediaType: [require('./mediaType.js'), 'accept'] };
9+
var set = { charset: 'accept-charset',
10+
encoding: 'accept-encoding',
11+
language: 'accept-language',
12+
mediaType: 'accept' };
13+
14+
15+
function capitalize(string){
16+
return string.charAt(0).toUpperCase() + string.slice(1);
17+
}
1318

1419
Object.keys(set).forEach(function (k) {
15-
var mh = set[k],
16-
method = mh[0],
17-
header = mh[1],
20+
var header = set[k],
21+
method = require('./'+k+'.js'),
1822
singular = k,
1923
plural = k + 's';
2024

@@ -26,4 +30,8 @@ Object.keys(set).forEach(function (k) {
2630
var set = this[plural](available);
2731
if (set) return set[0];
2832
};
33+
34+
// Keep preferred* methods for legacy compatibility
35+
Negotiator.prototype['preferred'+capitalize(plural)] = Negotiator.prototype[plural];
36+
Negotiator.prototype['preferred'+capitalize(singular)] = Negotiator.prototype[singular];
2937
})

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "negotiator",
33
"description": "HTTP content negotiation",
4-
"version": "0.3.0",
4+
"version": "0.4.0",
55
"author": "Federico Romero <[email protected]>",
66
"contributors": ["Isaac Z. Schlueter <[email protected]> (http://blog.izs.me/)"],
77
"repository": {

readme.md

+20-20
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,24 @@ An HTTP content negotiator for node.js written in javascript.
1313

1414
// Let's say Accept header is 'text/html, application/*;q=0.2, image/jpeg;q=0.8'
1515

16-
negotiator.preferredMediaTypes()
16+
negotiator.mediaTypes()
1717
// -> ['text/html', 'image/jpeg', 'application/*']
1818

19-
negotiator.preferredMediaTypes(availableMediaTypes)
19+
negotiator.mediaTypes(availableMediaTypes)
2020
// -> ['text/html', 'application/json']
2121

22-
negotiator.preferredMediaType(availableMediaTypes)
22+
negotiator.mediaType(availableMediaTypes)
2323
// -> 'text/html'
2424

2525
You can check a working example at `examples/accept.js`.
2626

2727
## Methods
2828

29-
`preferredMediaTypes(availableMediaTypes)`:
29+
`mediaTypes(availableMediaTypes)`:
3030

3131
Returns an array of preferred media types ordered by priority from a list of available media types.
3232

33-
`preferredMediaType(availableMediaType)`:
33+
`mediaType(availableMediaType)`:
3434

3535
Returns the top preferred media type from a list of available media types.
3636

@@ -44,24 +44,24 @@ Returns the top preferred media type from a list of available media types.
4444

4545
// Let's say Accept-Language header is 'en;q=0.8, es, pt'
4646

47-
negotiator.preferredLanguages()
47+
negotiator.languages()
4848
// -> ['es', 'pt', 'en']
4949

50-
negotiator.preferredLanguages(availableLanguages)
50+
negotiator.languages(availableLanguages)
5151
// -> ['es', 'en']
5252

53-
language = negotiator.preferredLanguage(availableLanguages)
53+
language = negotiator.language(availableLanguages)
5454
// -> 'es'
5555

5656
You can check a working example at `examples/language.js`.
5757

5858
## Methods
5959

60-
`preferredLanguages(availableLanguages)`:
60+
`languages(availableLanguages)`:
6161

6262
Returns an array of preferred languages ordered by priority from a list of available languages.
6363

64-
`preferredLanguage(availableLanguages)`:
64+
`language(availableLanguages)`:
6565

6666
Returns the top preferred language from a list of available languages.
6767

@@ -75,24 +75,24 @@ Returns the top preferred language from a list of available languages.
7575

7676
// Let's say Accept-Charset header is 'utf-8, iso-8859-1;q=0.8, utf-7;q=0.2'
7777

78-
negotiator.preferredCharsets()
78+
negotiator.charsets()
7979
// -> ['utf-8', 'iso-8859-1', 'utf-7']
8080

81-
negotiator.preferredCharsets(availableCharsets)
81+
negotiator.charsets(availableCharsets)
8282
// -> ['utf-8', 'iso-8859-1']
8383

84-
negotiator.preferredCharset(availableCharsets)
84+
negotiator.charset(availableCharsets)
8585
// -> 'utf-8'
8686

8787
You can check a working example at `examples/charset.js`.
8888

8989
## Methods
9090

91-
`preferredCharsets(availableCharsets)`:
91+
`charsets(availableCharsets)`:
9292

9393
Returns an array of preferred charsets ordered by priority from a list of available charsets.
9494

95-
`preferredCharset(availableCharsets)`:
95+
`charset(availableCharsets)`:
9696

9797
Returns the top preferred charset from a list of available charsets.
9898

@@ -106,24 +106,24 @@ Returns the top preferred charset from a list of available charsets.
106106

107107
// Let's say Accept-Encoding header is 'gzip, compress;q=0.2, identity;q=0.5'
108108

109-
negotiator.preferredEncodings()
109+
negotiator.encodings()
110110
// -> ['gzip', 'identity', 'compress']
111111

112-
negotiator.preferredEncodings(availableEncodings)
112+
negotiator.encodings(availableEncodings)
113113
// -> ['gzip', 'identity']
114114

115-
negotiator.preferredEncoding(availableEncodings)
115+
negotiator.encoding(availableEncodings)
116116
// -> 'gzip'
117117

118118
You can check a working example at `examples/encoding.js`.
119119

120120
## Methods
121121

122-
`preferredEncodings(availableEncodings)`:
122+
`encodings(availableEncodings)`:
123123

124124
Returns an array of preferred encodings ordered by priority from a list of available encodings.
125125

126-
`preferredEncoding(availableEncodings)`:
126+
`encoding(availableEncodings)`:
127127

128128
Returns the top preferred encoding from a list of available encodings.
129129

0 commit comments

Comments
 (0)