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: | }) |
