UNPKG

fast-extract

Version:

Extract contents from various archive types (tar, tar.bz2, tar.gz, tar.xz, tgz, zip)

1 lines 3.16 kB
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/fast-extract/src/streams/transforms/Tar.mjs"],"sourcesContent":["import { PassThrough, Transform } from 'stream';\n\nimport TarIterator from 'tar-iterator';\n\nexport default class TarTransform extends Transform {\n constructor(options) {\n options = options ? { ...options, objectMode: true } : { objectMode: true };\n super(options);\n }\n\n _transform(chunk, encoding, callback) {\n if (this._stream) return this._stream.write(chunk, encoding, callback);\n this._stream = new PassThrough();\n this._iterator = new TarIterator(this._stream);\n this._iterator.forEach(\n (entry) => {\n this.push(entry);\n },\n { concurrency: 1 },\n (err) => {\n if (!this._iterator) return;\n err || this.push(null);\n this._stream = null;\n this._iterator.destroy();\n this._iterator = null;\n this._callback ? this._callback(err) : this.end(err);\n this._callback = null;\n }\n );\n this._stream.write(chunk, encoding, callback);\n }\n\n _flush = function _flush(callback) {\n if (!this._stream) return callback();\n this._callback = callback;\n this._stream.end();\n this._stream = null;\n };\n\n destroy(err) {\n if (this._stream) {\n this._stream.end(err);\n this._stream = null;\n }\n if (this._iterator) {\n const iterator = this._iterator;\n this._iterator = null;\n iterator.destroy(err);\n this.end(err);\n }\n }\n}\n"],"names":["PassThrough","Transform","TarIterator","TarTransform","_transform","chunk","encoding","callback","_stream","write","_iterator","forEach","entry","push","concurrency","err","destroy","_callback","end","iterator","constructor","options","objectMode","_flush"],"mappings":"AAAA,SAASA,WAAW,EAAEC,SAAS,QAAQ,SAAS;AAEhD,OAAOC,iBAAiB,eAAe;AAExB,IAAA,AAAMC,eAAN,MAAMA,qBAAqBF;IAMxCG,WAAWC,KAAK,EAAEC,QAAQ,EAAEC,QAAQ,EAAE;QACpC,IAAI,IAAI,CAACC,OAAO,EAAE,OAAO,IAAI,CAACA,OAAO,CAACC,KAAK,CAACJ,OAAOC,UAAUC;QAC7D,IAAI,CAACC,OAAO,GAAG,IAAIR;QACnB,IAAI,CAACU,SAAS,GAAG,IAAIR,YAAY,IAAI,CAACM,OAAO;QAC7C,IAAI,CAACE,SAAS,CAACC,OAAO,CACpB,CAACC;YACC,IAAI,CAACC,IAAI,CAACD;QACZ,GACA;YAAEE,aAAa;QAAE,GACjB,CAACC;YACC,IAAI,CAAC,IAAI,CAACL,SAAS,EAAE;YACrBK,OAAO,IAAI,CAACF,IAAI,CAAC;YACjB,IAAI,CAACL,OAAO,GAAG;YACf,IAAI,CAACE,SAAS,CAACM,OAAO;YACtB,IAAI,CAACN,SAAS,GAAG;YACjB,IAAI,CAACO,SAAS,GAAG,IAAI,CAACA,SAAS,CAACF,OAAO,IAAI,CAACG,GAAG,CAACH;YAChD,IAAI,CAACE,SAAS,GAAG;QACnB;QAEF,IAAI,CAACT,OAAO,CAACC,KAAK,CAACJ,OAAOC,UAAUC;IACtC;IASAS,QAAQD,GAAG,EAAE;QACX,IAAI,IAAI,CAACP,OAAO,EAAE;YAChB,IAAI,CAACA,OAAO,CAACU,GAAG,CAACH;YACjB,IAAI,CAACP,OAAO,GAAG;QACjB;QACA,IAAI,IAAI,CAACE,SAAS,EAAE;YAClB,MAAMS,WAAW,IAAI,CAACT,SAAS;YAC/B,IAAI,CAACA,SAAS,GAAG;YACjBS,SAASH,OAAO,CAACD;YACjB,IAAI,CAACG,GAAG,CAACH;QACX;IACF;IA7CAK,YAAYC,OAAO,CAAE;QACnBA,UAAUA,UAAU;YAAE,GAAGA,OAAO;YAAEC,YAAY;QAAK,IAAI;YAAEA,YAAY;QAAK;QAC1E,KAAK,CAACD,eAyBRE,SAAS,SAASA,OAAOhB,QAAQ;YAC/B,IAAI,CAAC,IAAI,CAACC,OAAO,EAAE,OAAOD;YAC1B,IAAI,CAACU,SAAS,GAAGV;YACjB,IAAI,CAACC,OAAO,CAACU,GAAG;YAChB,IAAI,CAACV,OAAO,GAAG;QACjB;IA7BA;AA2CF;AA/CA,SAAqBL,0BA+CpB"}