Socket
Socket
Sign inDemoInstall

negotiator

Package Overview
Dependencies
0
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    negotiator

HTTP content negotiation


Version published
Maintainers
1
Install size
30.7 kB
Created

Package description

What is negotiator?

The negotiator npm package is a content negotiation library used to parse and match HTTP headers for various content types. It allows servers to select the best representation of a resource based on the client's capabilities and preferences, as expressed through HTTP headers.

What are negotiator's main functionalities?

Content-Type Negotiation

This feature allows the server to determine the best media type to respond with, based on the client's 'Accept' HTTP header.

const Negotiator = require('negotiator');
const availableMediaTypes = ['text/html', 'application/json'];
const negotiator = new Negotiator(request);
const bestMediaType = negotiator.mediaType(availableMediaTypes);

Language Negotiation

This feature enables the server to select the best language for the response content based on the client's 'Accept-Language' HTTP header.

const Negotiator = require('negotiator');
const availableLanguages = ['en', 'es', 'fr'];
const negotiator = new Negotiator(request);
const bestLanguage = negotiator.language(availableLanguages);

Encoding Negotiation

This feature allows the server to choose the best encoding for the response based on the client's 'Accept-Encoding' HTTP header.

const Negotiator = require('negotiator');
const availableEncodings = ['gzip', 'deflate'];
const negotiator = new Negotiator(request);
const bestEncoding = negotiator.encoding(availableEncodings);

Charset Negotiation

This feature allows the server to determine the best charset for the response content based on the client's 'Accept-Charset' HTTP header.

const Negotiator = require('negotiator');
const availableCharsets = ['utf-8', 'iso-8859-1'];
const negotiator = new Negotiator(request);
const bestCharset = negotiator.charset(availableCharsets);

Other packages similar to negotiator

Readme

Source

Negotiator Build Status

An HTTP content negotiator for node.js written in javascript.

Accept Negotiation

Negotiator = require('negotiator')

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

mediaTypes(availableMediaTypes):

Returns an array of preferred media types ordered by priority from a list of available media types.

mediaType(availableMediaType):

Returns the top preferred media type from a list of available media types.

Accept-Language Negotiation

Negotiator = require('negotiator')

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

languages(availableLanguages):

Returns an array of preferred languages ordered by priority from a list of available languages.

language(availableLanguages):

Returns the top preferred language from a list of available languages.

Accept-Charset Negotiation

Negotiator = require('negotiator')

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

charsets(availableCharsets):

Returns an array of preferred charsets ordered by priority from a list of available charsets.

charset(availableCharsets):

Returns the top preferred charset from a list of available charsets.

Accept-Encoding Negotiation

Negotiator = require('negotiator').Negotiator

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

encodings(availableEncodings):

Returns an array of preferred encodings ordered by priority from a list of available encodings.

encoding(availableEncodings):

Returns the top preferred encoding from a list of available encodings.

License

MIT

Keywords

FAQs

Last updated on 01 Mar 2014

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc