'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; };