UNPKG

fast-extract

Version:

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

1 lines 3.21 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":["TarTransform","options","objectMode","_flush","callback","_stream","_callback","end","_transform","chunk","encoding","write","PassThrough","_iterator","TarIterator","forEach","entry","push","concurrency","err","destroy","iterator","Transform"],"mappings":";;;;;;;eAIqBA;;;sBAJkB;kEAEf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAET,IAAA,AAAMA,6BAAN;;cAAMA;aAAAA,aACPC,OAAO;gCADAD;;QAEjBC,UAAUA,UAAU,wCAAKA;YAASC,YAAY;aAAS;YAAEA,YAAY;QAAK;gBAC1E,kBAHiBF;YAGXC;kBAyBRE,SAAS,SAASA,OAAOC,QAAQ;YAC/B,IAAI,CAAC,IAAI,CAACC,OAAO,EAAE,OAAOD;YAC1B,IAAI,CAACE,SAAS,GAAGF;YACjB,IAAI,CAACC,OAAO,CAACE,GAAG;YAChB,IAAI,CAACF,OAAO,GAAG;QACjB;;;iBAjCmBL;IAMnBQ,OAAAA,UAoBC,GApBDA,SAAAA,WAAWC,KAAK,EAAEC,QAAQ,EAAEN,QAAQ;;QAClC,IAAI,IAAI,CAACC,OAAO,EAAE,OAAO,IAAI,CAACA,OAAO,CAACM,KAAK,CAACF,OAAOC,UAAUN;QAC7D,IAAI,CAACC,OAAO,GAAG,IAAIO,mBAAW;QAC9B,IAAI,CAACC,SAAS,GAAG,IAAIC,oBAAW,CAAC,IAAI,CAACT,OAAO;QAC7C,IAAI,CAACQ,SAAS,CAACE,OAAO,CACpB,SAACC;YACC,MAAKC,IAAI,CAACD;QACZ,GACA;YAAEE,aAAa;QAAE,GACjB,SAACC;YACC,IAAI,CAAC,MAAKN,SAAS,EAAE;YACrBM,OAAO,MAAKF,IAAI,CAAC;YACjB,MAAKZ,OAAO,GAAG;YACf,MAAKQ,SAAS,CAACO,OAAO;YACtB,MAAKP,SAAS,GAAG;YACjB,MAAKP,SAAS,GAAG,MAAKA,SAAS,CAACa,OAAO,MAAKZ,GAAG,CAACY;YAChD,MAAKb,SAAS,GAAG;QACnB;QAEF,IAAI,CAACD,OAAO,CAACM,KAAK,CAACF,OAAOC,UAAUN;IACtC;IASAgB,OAAAA,OAWC,GAXDA,SAAAA,QAAQD,GAAG;QACT,IAAI,IAAI,CAACd,OAAO,EAAE;YAChB,IAAI,CAACA,OAAO,CAACE,GAAG,CAACY;YACjB,IAAI,CAACd,OAAO,GAAG;QACjB;QACA,IAAI,IAAI,CAACQ,SAAS,EAAE;YAClB,IAAMQ,WAAW,IAAI,CAACR,SAAS;YAC/B,IAAI,CAACA,SAAS,GAAG;YACjBQ,SAASD,OAAO,CAACD;YACjB,IAAI,CAACZ,GAAG,CAACY;QACX;IACF;WA9CmBnB;EAAqBsB,iBAAS"}