15815213711
2024-08-26 67b8b6731811983447e053d4396b3708c14dfe3c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
'use strict';
const PassThrough = require('stream').PassThrough;
const zlib = require('zlib');
const mimicResponse = require('mimic-response');
 
module.exports = response => {
    // TODO: Use Array#includes when targeting Node.js 6
    if (['gzip', 'deflate'].indexOf(response.headers['content-encoding']) === -1) {
        return response;
    }
 
    const unzip = zlib.createUnzip();
    const stream = new PassThrough();
 
    mimicResponse(response, stream);
 
    unzip.on('error', err => {
        if (err.code === 'Z_BUF_ERROR') {
            stream.end();
            return;
        }
 
        stream.emit('error', err);
    });
 
    response.pipe(unzip).pipe(stream);
 
    return stream;
};