diff options
author | Minteck <nekostarfan@gmail.com> | 2021-08-24 14:41:48 +0200 |
---|---|---|
committer | Minteck <nekostarfan@gmail.com> | 2021-08-24 14:41:48 +0200 |
commit | d25e11bee6ca5ca523884da132d18e1400e077b9 (patch) | |
tree | 8af39fde19f7ed640a60fb397c7edd647dff1c4c /node_modules/decompress-targz/index.js | |
download | kartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.tar.gz kartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.tar.bz2 kartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.zip |
Initial commit
Diffstat (limited to 'node_modules/decompress-targz/index.js')
-rw-r--r-- | node_modules/decompress-targz/index.js | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/node_modules/decompress-targz/index.js b/node_modules/decompress-targz/index.js new file mode 100644 index 0000000..d67769c --- /dev/null +++ b/node_modules/decompress-targz/index.js @@ -0,0 +1,26 @@ +'use strict'; +const zlib = require('zlib'); +const decompressTar = require('decompress-tar'); +const fileType = require('file-type'); +const isStream = require('is-stream'); + +module.exports = () => input => { + if (!Buffer.isBuffer(input) && !isStream(input)) { + return Promise.reject(new TypeError(`Expected a Buffer or Stream, got ${typeof input}`)); + } + + if (Buffer.isBuffer(input) && (!fileType(input) || fileType(input).ext !== 'gz')) { + return Promise.resolve([]); + } + + const unzip = zlib.createGunzip(); + const result = decompressTar()(unzip); + + if (Buffer.isBuffer(input)) { + unzip.end(input); + } else { + input.pipe(unzip); + } + + return result; +}; |