UNPKG

negotiator-currency

Version:

HTTP content negotiation (plus currency)

32 lines (26 loc) 1.04 kB
module.exports = Negotiator; Negotiator.Negotiator = Negotiator; function Negotiator(request) { if (!(this instanceof Negotiator)) return new Negotiator(request); this.request = request; } var set = { preferredCharset: [require('./charset.js'), 'accept-charset'], preferredEncoding: [require('./encoding.js'), 'accept-encoding'], preferredLanguage: [require('./token.js'), 'accept-language'], preferredCurrency: [require('./token.js'), 'accept-currency'], preferredMediaType: [require('./mediaType.js'), 'accept'] }; Object.keys(set).forEach(function (k) { var mh = set[k], method = mh[0], header = mh[1], singular = k, plural = k[k.length-1] === 'y' ? k.slice(0, k.length-1) + 'ies' : 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]; }; })