summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/pacote/lib/util/gunzip-maybe.js
diff options
context:
space:
mode:
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.js24
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
+}