diff options
Diffstat (limited to 'deps/npm/node_modules/pacote/lib/util/gunzip-maybe.js')
-rw-r--r-- | deps/npm/node_modules/pacote/lib/util/gunzip-maybe.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/deps/npm/node_modules/pacote/lib/util/gunzip-maybe.js b/deps/npm/node_modules/pacote/lib/util/gunzip-maybe.js new file mode 100644 index 0000000000..055de2921a --- /dev/null +++ b/deps/npm/node_modules/pacote/lib/util/gunzip-maybe.js @@ -0,0 +1,24 @@ +'use strict' + +const duplex = require('mississippi').duplex +const through = require('mississippi').through +const zlib = require('zlib') + +function hasGzipHeader (c) { + return c[0] === 0x1F && c[1] === 0x8B && c[2] === 0x08 +} + +module.exports = gunzip +function gunzip () { + const stream = duplex() + const peeker = through((chunk, enc, cb) => { + const newStream = hasGzipHeader(chunk) + ? zlib.createGunzip() + : through() + stream.setReadable(newStream) + stream.setWritable(newStream) + stream.write(chunk) + }) + stream.setWritable(peeker) + return stream +} |