Name: js-handler/node_modules/restify/node_modules/negotiator/lib/negotiator.js 
1:
module.exports = Negotiator;
2:
Negotiator.Negotiator = Negotiator;
3:
 
4:
function Negotiator(request) {
5:
  this.request = request;
6:
}
7:
 
8:
var set = { preferredCharset: [require('./charset.js'), 'accept-charset'],
9:
            preferredEncoding: [require('./encoding.js'), 'accept-encoding'],
10:
            preferredLanguage: [require('./language.js'), 'accept-language'],
11:
            preferredMediaType: [require('./mediaType.js'), 'accept'] };
12:
 
13:
Object.keys(set).forEach(function (k) {
14:
  var mh = set[k],
15:
      method = mh[0],
16:
      header = mh[1],
17:
      singular = k,
18:
      plural = k + 's';
19:
 
20:
  Negotiator.prototype[plural] = function (available) {
21:
    return method(this.request.headers[header], available);
22:
  };
23:
 
24:
  Negotiator.prototype[singular] = function(available) {
25:
    var set = this[plural](available);
26:
    if (set) return set[0];
27:
  };
28:
})