| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- var zlib = require('zlib')
- module.exports = inflate
- function inflate(stream, options) {
- if (!stream) {
- throw new TypeError('argument stream is required')
- }
- options = options || {}
- var encoding = options.encoding
- || (stream.headers && stream.headers['content-encoding'])
- || 'identity'
-
- var decompression
- switch (encoding) {
- case 'gzip':
- case 'deflate':
- delete options.brotli
- delete options.encoding
- decompression = zlib.createUnzip(options)
- break
- case 'br':
- if (zlib.createBrotliDecompress) {
- decompression = zlib.createBrotliDecompress(options.brotli)
- }
- break
- case 'identity':
- return stream
- }
- if (!decompression) {
- var err = new Error('Unsupported Content-Encoding: ' + encoding)
- err.status = 415
- throw err
- }
- return stream.pipe(decompression)
- }
|