socketioMEANseed/server/node_modules/negotiator/lib/negotiator.js
server/node_modules/negotiator/lib/negotiator.jsRaw
1module.exports = Negotiator;
2Negotiator.Negotiator = Negotiator;
3
4function Negotiator(request) {
5 if (!(this instanceof Negotiator)) return new Negotiator(request);
6 this.request = request;
7}
8
9var set = { charset: 'accept-charset',
10 encoding: 'accept-encoding',
11 language: 'accept-language',
12 mediaType: 'accept' };
13
14
15function capitalize(string){
16 return string.charAt(0).toUpperCase() + string.slice(1);
17}
18
19Object.keys(set).forEach(function (k) {
20 var header = set[k],
21 method = require('./'+k+'.js'),
22 singular = k,
23 plural = k + 's';
24
25 Negotiator.prototype[plural] = function (available) {
26 return method(this.request.headers[header], available);
27 };
28
29 Negotiator.prototype[singular] = function(available) {
30 var set = this[plural](available);
31 if (set) return set[0];
32 };
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];
37})