12345678910111213141516171819202122232425262728293031323334353637 |
- 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];
- })
|