Name: js-handler/node_modules/restify/node_modules/negotiator/readme.md 
1:
# Negotiator
2:
 
3:
An HTTP content negotiator for node.js written in javascript.
4:
 
5:
# Accept Negotiation
6:
 
7:
    Negotiator = require('negotiator')
8:
 
9:
    availableMediaTypes = ['text/html', 'text/plain', 'application/json']
10:
 
11:
    // The negotiator constructor receives a request object
12:
    negotiator = new Negotiator(request)
13:
 
14:
    // Let's say Accept header is 'text/html, application/*;q=0.2, image/jpeg';q=0.8
15:
 
16:
    negotiator.preferredMediaTypes()
17:
    // -> ['text/html', 'application/*', 'image/jpeg']
18:
 
19:
    negotiator.preferredMediaTypes(availableMediaTypes)
20:
    // -> ['text/html', 'application.json']
21:
 
22:
    negotiator.preferredLanguage(availableMediaTypes)
23:
    // -> 'text/html'
24:
 
25:
You can check a working example at `examples/accept.js`.
26:
 
27:
## Methods
28:
 
29:
`preferredMediaTypes(availableMediaTypes)`:
30:
 
31:
Returns an array of preferred media types ordered by priority from a list of available media types.
32:
 
33:
`preferredMediaType(availableMediaType)`:
34:
 
35:
Returns the top preferred media type from a list of available media types.
36:
 
37:
# Accept-Language Negotiation
38:
 
39:
    Negotiator = require('negotiator')
40:
 
41:
    negotiator = new Negotiator(request)
42:
 
43:
    availableLanguages = 'en', 'es', 'fr'
44:
 
45:
    // Let's say Accept-Language header is 'en;q=0.8, es, pt'
46:
 
47:
    negotiator.preferredLanguages()
48:
    // -> ['es', 'pt', 'en']
49:
 
50:
    negotiator.preferredLanguages(availableLanguages)
51:
    // -> ['es', 'en']
52:
 
53:
    language = negotiator.preferredLanguage(availableLanguages)
54:
    // -> 'es'
55:
 
56:
You can check a working example at `examples/language.js`.
57:
 
58:
## Methods
59:
 
60:
`preferredLanguages(availableLanguages)`:
61:
 
62:
Returns an array of preferred languages ordered by priority from a list of available languages.
63:
 
64:
`preferredLanguage(availableLanguages)`:
65:
 
66:
Returns the top preferred language from a list of available languages.
67:
 
68:
# Accept-Charset Negotiation
69:
 
70:
    Negotiator = require('negotiator')
71:
 
72:
    availableCharsets = ['utf-8', 'iso-8859-1', 'iso-8859-5']
73:
 
74:
    negotiator = new Negotiator(request)
75:
 
76:
    // Let's say Accept-Charset header is 'utf-8, iso-8859-1;q=0.8, utf-7;q=0.2'
77:
 
78:
    negotiator.preferredCharsets()
79:
    // -> ['utf-8', 'iso-8859-1', 'utf-7']
80:
 
81:
    negotiator.preferredCharsets(availableCharsets)
82:
    // -> ['utf-8', 'iso-8859-1']
83:
 
84:
    negotiator.preferredCharset(availableCharsets)
85:
    // -> 'utf-8'
86:
 
87:
You can check a working example at `examples/charset.js`.
88:
 
89:
## Methods
90:
 
91:
`preferredCharsets(availableCharsets)`:
92:
 
93:
Returns an array of preferred charsets ordered by priority from a list of available charsets.
94:
 
95:
`preferredCharset(availableCharsets)`:
96:
 
97:
Returns the top preferred charset from a list of available charsets.
98:
 
99:
# Accept-Encoding Negotiation
100:
 
101:
    Negotiator = require('negotiator').Negotiator
102:
 
103:
    availableEncodings = ['identity', 'gzip']
104:
 
105:
    negotiator = new Negotiator(request)
106:
 
107:
    // Let's say Accept-Encoding header is 'gzip, compress;q=0.2, identity;q=0.5'
108:
 
109:
    negotiator.preferredEncodings()
110:
    // -> ['gzip', 'identity', 'compress']
111:
 
112:
    negotiator.preferredEncodings(availableEncodings)
113:
    // -> ['gzip', 'identity']
114:
 
115:
    negotiator.preferredEncoding(availableEncodings)
116:
    // -> 'gzip'
117:
 
118:
You can check a working example at `examples/encoding.js`.
119:
 
120:
## Methods
121:
 
122:
`preferredEncodings(availableEncodings)`:
123:
 
124:
Returns an array of preferred encodings ordered by priority from a list of available encodings.
125:
 
126:
`preferredEncoding(availableEncodings)`:
127:
 
128:
Returns the top preferred encoding from a list of available encodings.
129:
 
130:
# License
131:
 
132:
MIT