| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | /*! * negotiator * Copyright(c) 2012 Federico Romero * Copyright(c) 2012-2014 Isaac Z. Schlueter * Copyright(c) 2015 Douglas Christopher Wilson * MIT Licensed */'use strict';var preferredCharsets = require('./lib/charset')var preferredEncodings = require('./lib/encoding')var preferredLanguages = require('./lib/language')var preferredMediaTypes = require('./lib/mediaType')/** * Module exports. * @public */module.exports = Negotiator;module.exports.Negotiator = Negotiator;/** * Create a Negotiator instance from a request. * @param {object} request * @public */function Negotiator(request) {  if (!(this instanceof Negotiator)) {    return new Negotiator(request);  }  this.request = request;}Negotiator.prototype.charset = function charset(available) {  var set = this.charsets(available);  return set && set[0];};Negotiator.prototype.charsets = function charsets(available) {  return preferredCharsets(this.request.headers['accept-charset'], available);};Negotiator.prototype.encoding = function encoding(available) {  var set = this.encodings(available);  return set && set[0];};Negotiator.prototype.encodings = function encodings(available) {  return preferredEncodings(this.request.headers['accept-encoding'], available);};Negotiator.prototype.language = function language(available) {  var set = this.languages(available);  return set && set[0];};Negotiator.prototype.languages = function languages(available) {  return preferredLanguages(this.request.headers['accept-language'], available);};Negotiator.prototype.mediaType = function mediaType(available) {  var set = this.mediaTypes(available);  return set && set[0];};Negotiator.prototype.mediaTypes = function mediaTypes(available) {  return preferredMediaTypes(this.request.headers.accept, available);};// Backwards compatibilityNegotiator.prototype.preferredCharset = Negotiator.prototype.charset;Negotiator.prototype.preferredCharsets = Negotiator.prototype.charsets;Negotiator.prototype.preferredEncoding = Negotiator.prototype.encoding;Negotiator.prototype.preferredEncodings = Negotiator.prototype.encodings;Negotiator.prototype.preferredLanguage = Negotiator.prototype.language;Negotiator.prototype.preferredLanguages = Negotiator.prototype.languages;Negotiator.prototype.preferredMediaType = Negotiator.prototype.mediaType;Negotiator.prototype.preferredMediaTypes = Negotiator.prototype.mediaTypes;
 |