This also adds Python-2.0 to the list of accepted licenses. Lastly, it fixes a bug where the package.json files were incorrectly reordered. For the `exports` of a particular package, the order that the entrypoints are defined in is crucial. Therefore, we should not alter the order of entrypoints and instead maintain the originally defined ordering. We can use an `OrderedDict` to ensure that Python always loads the JSON files in the same order. DISABLE_THIRD_PARTY_CHECK=NPM update R=jacktfranklin@chromium.org Bug: none Change-Id: I5a309782de6015edea6ba3b502aa0db1f008d973 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2692909 Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org> Reviewed-by: Jack Franklin <jacktfranklin@chromium.org> Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
negotiator
An HTTP content negotiator for Node.js
Installation
$ npm install negotiator
API
var Negotiator = require('negotiator')
Accept Negotiation
availableMediaTypes = ['text/html', 'text/plain', 'application/json']
// The negotiator constructor receives a request object
negotiator = new Negotiator(request)
// Let's say Accept header is 'text/html, application/*;q=0.2, image/jpeg;q=0.8'
negotiator.mediaTypes()
// -> ['text/html', 'image/jpeg', 'application/*']
negotiator.mediaTypes(availableMediaTypes)
// -> ['text/html', 'application/json']
negotiator.mediaType(availableMediaTypes)
// -> 'text/html'
You can check a working example at examples/accept.js.
Methods
mediaType()
Returns the most preferred media type from the client.
mediaType(availableMediaType)
Returns the most preferred media type from a list of available media types.
mediaTypes()
Returns an array of preferred media types ordered by the client preference.
mediaTypes(availableMediaTypes)
Returns an array of preferred media types ordered by priority from a list of available media types.
Accept-Language Negotiation
negotiator = new Negotiator(request)
availableLanguages = ['en', 'es', 'fr']
// Let's say Accept-Language header is 'en;q=0.8, es, pt'
negotiator.languages()
// -> ['es', 'pt', 'en']
negotiator.languages(availableLanguages)
// -> ['es', 'en']
language = negotiator.language(availableLanguages)
// -> 'es'
You can check a working example at examples/language.js.
Methods
language()
Returns the most preferred language from the client.
language(availableLanguages)
Returns the most preferred language from a list of available languages.
languages()
Returns an array of preferred languages ordered by the client preference.
languages(availableLanguages)
Returns an array of preferred languages ordered by priority from a list of available languages.
Accept-Charset Negotiation
availableCharsets = ['utf-8', 'iso-8859-1', 'iso-8859-5']
negotiator = new Negotiator(request)
// Let's say Accept-Charset header is 'utf-8, iso-8859-1;q=0.8, utf-7;q=0.2'
negotiator.charsets()
// -> ['utf-8', 'iso-8859-1', 'utf-7']
negotiator.charsets(availableCharsets)
// -> ['utf-8', 'iso-8859-1']
negotiator.charset(availableCharsets)
// -> 'utf-8'
You can check a working example at examples/charset.js.
Methods
charset()
Returns the most preferred charset from the client.
charset(availableCharsets)
Returns the most preferred charset from a list of available charsets.
charsets()
Returns an array of preferred charsets ordered by the client preference.
charsets(availableCharsets)
Returns an array of preferred charsets ordered by priority from a list of available charsets.
Accept-Encoding Negotiation
availableEncodings = ['identity', 'gzip']
negotiator = new Negotiator(request)
// Let's say Accept-Encoding header is 'gzip, compress;q=0.2, identity;q=0.5'
negotiator.encodings()
// -> ['gzip', 'identity', 'compress']
negotiator.encodings(availableEncodings)
// -> ['gzip', 'identity']
negotiator.encoding(availableEncodings)
// -> 'gzip'
You can check a working example at examples/encoding.js.
Methods
encoding()
Returns the most preferred encoding from the client.
encoding(availableEncodings)
Returns the most preferred encoding from a list of available encodings.
encodings()
Returns an array of preferred encodings ordered by the client preference.
encodings(availableEncodings)
Returns an array of preferred encodings ordered by priority from a list of available encodings.
See Also
The accepts module builds on this module and provides an alternative interface, mime type validation, and more.