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.37 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":["fs","FileEntry","oo","waitForAccess","ZipFileEntry","create","dest","options","callback","self","prototype","call","err","lock","release","Promise","createPromise","resolve","reject","done","_writeFile","fullPath","_","entry","Error","res","getStream","pipe","createWriteStream","destroy","constructor","attributes","retain"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,SAASC,SAAS,QAAQ,wBAAwB;AAClD,OAAOC,QAAQ,SAAS;AACxB,OAAOC,mBAAmB,0BAA0B;AAErC,IAAA,AAAMC,eAAN,MAAMA,qBAAqBH;IAQxCI,OAAOC,IAAI,EAAEC,OAAO,EAAEC,QAAQ,EAAE;QAC9B,IAAI,OAAOD,YAAY,YAAY;YACjCC,WAAWD;YACXA,UAAU;QACZ;QAEA,MAAME,OAAO,IAAI;QACjB,IAAI,OAAOD,aAAa,YAAY;YAClCD,UAAUA,WAAW,CAAC;YACtB,OAAON,UAAUS,SAAS,CAACL,MAAM,CAACM,IAAI,CAAC,IAAI,EAAEL,MAAMC,SAAS,CAACK;gBAC3DJ,SAASI;gBACT,IAAIH,KAAKI,IAAI,EAAE;oBACbJ,KAAKI,IAAI,CAACC,OAAO;oBACjBL,KAAKI,IAAI,GAAG;gBACd;YACF;QACF;QAEA,OAAO,IAAIE,QAAQ,SAASC,cAAcC,OAAO,EAAEC,MAAM;YACvDT,KAAKJ,MAAM,CAACC,MAAMC,SAAS,CAACK,KAAKO,OAAUP,MAAMM,OAAON,OAAOK,QAAQE;QACzE;IACF;IAEAC,WAAWC,QAAQ,EAAEC,CAAC,EAAEd,QAAQ,EAAE;QAChC,IAAI,CAAC,IAAI,CAACe,KAAK,EAAE,OAAOf,SAAS,IAAIgB,MAAM;QAE3C,MAAMC,MAAM,IAAI,CAACF,KAAK,CAACG,SAAS,GAAGC,IAAI,CAAC3B,GAAG4B,iBAAiB,CAACP;QAC7DnB,GAAGuB,KAAK;YAAC;YAAS;YAAO;YAAS;SAAS,EAAE,CAACb;YAC5CA,MAAMJ,SAASI,OAAOT,cAAckB,UAAUb,WAAW,iDAAiD;QAC5G;IACF;IAEAqB,UAAU;QACR5B,UAAUS,SAAS,CAACmB,OAAO,CAAClB,IAAI,CAAC,IAAI;QACrC,IAAI,CAACY,KAAK,GAAG;QACb,IAAI,IAAI,CAACV,IAAI,EAAE;YACb,IAAI,CAACA,IAAI,CAACC,OAAO;YACjB,IAAI,CAACD,IAAI,GAAG;QACd;IACF;IA9CAiB,YAAYC,UAAU,EAAER,KAAK,EAAEV,IAAI,CAAE;QACnC,KAAK,CAACkB;QACN,IAAI,CAACR,KAAK,GAAGA;QACb,IAAI,CAACV,IAAI,GAAGA;QACZ,IAAI,CAACA,IAAI,CAACmB,MAAM;IAClB;AA0CF;AAhDA,SAAqB5B,0BAgDpB"}