Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
A low-level, standards-compliant utility for parsing HTTP content negotiation headers
This is a low-level utility for correctly parsing the HTTP content negotiation headers. It doesn't interpret the parsed values in any way, except for ensuring that they are syntactically correct.
npm install --save negotiated
const negotiated = require('negotiated');
const best = Array.from(negotiated.languages('fr;q=0.4, ja-JP;q=0.2, de-DE;q=0.7, en;q=0.5'))
.reduce((a, b) => a.weight >= b.weight ? a : b);
console.log(best.language); // => "de-de"
This package exports six functions:
mediaTypes()
: parses the Accept header, emitting { type, params, weight, extensions }
charsets()
: parses the Accept-Charset header, emitting { charset, weight }
encodings()
: parses the Accept-Encoding header, emitting { encoding, weight }
languages()
: parses the Accept-Language header, emitting { language, weight }
transferEncodings()
: parses the TE header, emitting { encoding, params, weight }
parameters()
: parses the params
and extensions
found above, emitting { key, value }
Each of the exported functions takes a string as the only argument. An iterator is returned, which parses one comma-separated item at a time. If the input string is invalid (according to RFC 7230 or RFC 7231), an error will be thrown mid-iteration.
const negotiated = require('negotiated');
for (const { encoding, weight } of negotiated.encodings('gzip;q=0.5, my-custom-encoding;q=1')) {
if (weight > 0.8) console.log(`${encoding} is desired`);
}
// => "my-custom-encoding is desired"
const negotiated = require('negotiated');
const [{ params }] = Array.from(negotiated.mediaTypes('application/json; CHARSET="utf-8"'));
console.log(Array.from(negotiated.parameters(params))); // => [{ key: 'charset', value: 'utf-8' }]
FAQs
A low-level, standards-compliant utility for parsing HTTP content negotiation headers
The npm package negotiated receives a total of 78 weekly downloads. As such, negotiated popularity was classified as not popular.
We found that negotiated demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.