UNPKG

zip-iterator

Version:

Extract contents from zip archive type using an iterator API using streams or paths. Use stream interface and pipe transforms to add decompression algorithms

1 lines 3.43 kB
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/zip-iterator/src/FileEntry.mjs"],"sourcesContent":["import fs from 'fs';\nimport { FileEntry } from 'extract-base-iterator';\nimport oo from 'on-one';\nimport waitForAccess from './lib/waitForAccess.mjs';\n\nexport default class ZipFileEntry extends FileEntry {\n constructor(attributes, entry, lock) {\n super(attributes);\n this.entry = entry;\n this.lock = lock;\n this.lock.retain();\n }\n\n create(dest, options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n const self = this;\n if (typeof callback === 'function') {\n options = options || {};\n return FileEntry.prototype.create.call(this, dest, options, (err) => {\n callback(err);\n if (self.lock) {\n self.lock.release();\n self.lock = null;\n }\n });\n }\n\n return new Promise(function createPromise(resolve, reject) {\n self.create(dest, options, (err, done) => (err ? reject(err) : resolve(done)));\n });\n }\n\n _writeFile(fullPath, _, callback) {\n if (!this.entry) return callback(new Error('Zip FileEntry missing entry. Check for calling create multiple times'));\n\n const res = this.entry.getStream().pipe(fs.createWriteStream(fullPath));\n oo(res, ['error', 'end', 'close', 'finish'], (err) => {\n err ? callback(err) : waitForAccess(fullPath, callback); // gunzip stream returns prematurely occasionally\n });\n }\n\n destroy() {\n FileEntry.prototype.destroy.call(this);\n this.entry = null;\n if (this.lock) {\n this.lock.release();\n this.lock = null;\n }\n }\n}\n"],"names":["ZipFileEntry","attributes","entry","lock","retain","create","dest","options","callback","self","FileEntry","prototype","call","err","release","Promise","createPromise","resolve","reject","done","_writeFile","fullPath","_","Error","res","getStream","pipe","fs","createWriteStream","oo","waitForAccess","destroy"],"mappings":";;;;;;;eAKqBA;;;yDALN;mCACW;4DACX;oEACW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEX,IAAA,AAAMA,6BAAN;;cAAMA;aAAAA,aACPC,UAAU,EAAEC,KAAK,EAAEC,IAAI;gCADhBH;;gBAEjB,kBAFiBA;YAEXC;;QACN,MAAKC,KAAK,GAAGA;QACb,MAAKC,IAAI,GAAGA;QACZ,MAAKA,IAAI,CAACC,MAAM;;;iBALCJ;IAQnBK,OAAAA,MAqBC,GArBDA,SAAAA,OAAOC,IAAI,EAAEC,OAAO,EAAEC,QAAQ;QAC5B,IAAI,OAAOD,YAAY,YAAY;YACjCC,WAAWD;YACXA,UAAU;QACZ;QAEA,IAAME,OAAO,IAAI;QACjB,IAAI,OAAOD,aAAa,YAAY;YAClCD,UAAUA,WAAW,CAAC;YACtB,OAAOG,8BAAS,CAACC,SAAS,CAACN,MAAM,CAACO,IAAI,CAAC,IAAI,EAAEN,MAAMC,SAAS,SAACM;gBAC3DL,SAASK;gBACT,IAAIJ,KAAKN,IAAI,EAAE;oBACbM,KAAKN,IAAI,CAACW,OAAO;oBACjBL,KAAKN,IAAI,GAAG;gBACd;YACF;QACF;QAEA,OAAO,IAAIY,QAAQ,SAASC,cAAcC,OAAO,EAAEC,MAAM;YACvDT,KAAKJ,MAAM,CAACC,MAAMC,SAAS,SAACM,KAAKM;uBAAUN,MAAMK,OAAOL,OAAOI,QAAQE;;QACzE;IACF;IAEAC,OAAAA,UAOC,GAPDA,SAAAA,WAAWC,QAAQ,EAAEC,CAAC,EAAEd,QAAQ;QAC9B,IAAI,CAAC,IAAI,CAACN,KAAK,EAAE,OAAOM,SAAS,IAAIe,MAAM;QAE3C,IAAMC,MAAM,IAAI,CAACtB,KAAK,CAACuB,SAAS,GAAGC,IAAI,CAACC,WAAE,CAACC,iBAAiB,CAACP;QAC7DQ,IAAAA,cAAE,EAACL,KAAK;YAAC;YAAS;YAAO;YAAS;SAAS,EAAE,SAACX;YAC5CA,MAAML,SAASK,OAAOiB,IAAAA,sBAAa,EAACT,UAAUb,WAAW,iDAAiD;QAC5G;IACF;IAEAuB,OAAAA,OAOC,GAPDA,SAAAA;QACErB,8BAAS,CAACC,SAAS,CAACoB,OAAO,CAACnB,IAAI,CAAC,IAAI;QACrC,IAAI,CAACV,KAAK,GAAG;QACb,IAAI,IAAI,CAACC,IAAI,EAAE;YACb,IAAI,CAACA,IAAI,CAACW,OAAO;YACjB,IAAI,CAACX,IAAI,GAAG;QACd;IACF;WA/CmBH;EAAqBU,8BAAS"}