|
|
module.exports = Negotiator; Negotiator.Negotiator = Negotiator;
function Negotiator(request) { if (!(this instanceof Negotiator)) return new Negotiator(request); this.request = request; }
var set = { charset: 'accept-charset', encoding: 'accept-encoding', language: 'accept-language', mediaType: 'accept' };
function capitalize(string){ return string.charAt(0).toUpperCase() + string.slice(1); }
Object.keys(set).forEach(function (k) { var header = set[k], method = require('./'+k+'.js'), singular = k, plural = k + 's';
Negotiator.prototype[plural] = function (available) { return method(this.request.headers[header], available); };
Negotiator.prototype[singular] = function(available) { var set = this[plural](available); if (set) return set[0]; };
// Keep preferred* methods for legacy compatibility
Negotiator.prototype['preferred'+capitalize(plural)] = Negotiator.prototype[plural]; Negotiator.prototype['preferred'+capitalize(singular)] = Negotiator.prototype[singular]; })
|