You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					52 lines
				
				1.6 KiB
			
		
		
			
		
	
	
					52 lines
				
				1.6 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								# encoding-negotiator
							 | 
						||
| 
								 | 
							
								## Install
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[](https://coveralls.io/github/SerayaEryn/encoding-negotiator?branch=master)
							 | 
						||
| 
								 | 
							
								[](https://www.npmjs.com/package/encoding-negotiator)
							 | 
						||
| 
								 | 
							
								[](https://standardjs.com)
							 | 
						||
| 
								 | 
							
								[](https://greenkeeper.io/)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								npm install encoding-negotiator
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								## Example
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								const encodingNegotiator = require('encoding-negotiator');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								encodingNegotiator.negotiate({
							 | 
						||
| 
								 | 
							
								  header: 'compress;q=0.5, gzip;q=1.0',
							 | 
						||
| 
								 | 
							
								  supportedEncodings: ['gzip', 'deflate', 'identity']
							 | 
						||
| 
								 | 
							
								); //returns gzip
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								## API
							 | 
						||
| 
								 | 
							
								### negotiate(header, supported)
							 | 
						||
| 
								 | 
							
								Returns the most preffered encoding available in `supportedEncodings` The first 
							 | 
						||
| 
								 | 
							
								element of the `supportedEncodings` array will be used in case of an asterisk.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### header
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The `accept-encoding` header.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### supportedEncodings
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								An array of the supported encodings.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								##### prefferedEncoding (optional)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								An encoding preffered by the server if the client sends multiple encodings no 
							 | 
						||
| 
								 | 
							
								quality value (for example `Accept-Encoding: gzip, deflate, br`).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Benchmark
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								$ node benchmark/benchmark.js 
							 | 
						||
| 
								 | 
							
								negotiator x 260,201 ops/sec ±0.64% (88 runs sampled)
							 | 
						||
| 
								 | 
							
								encoding-negotiator x 434,196 ops/sec ±1.23% (88 runs sampled)
							 | 
						||
| 
								 | 
							
								Fastest is encoding-negotiator
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## License
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[MIT](./LICENSE)
							 |