extract-base-iterator
Version:
Base iterator for extract iterators like tar-iterator and zip-iterator
1 lines • 4.36 kB
Source Map (JSON)
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/FileEntry.mjs"],"sourcesContent":["import path from 'path';\nimport mkdirp from 'mkdirp-classic';\nimport objectAssign from 'object-assign';\nimport Queue from 'queue-cb';\n\nimport rimraf2 from 'rimraf2';\nimport chmod from './fs/chmod.mjs';\nimport chown from './fs/chown.mjs';\nimport utimes from './fs/utimes.mjs';\nimport stripPath from './stripPath.mjs';\nimport validateAttributes from './validateAttributes.mjs';\n\nconst MANDATORY_ATTRIBUTES = ['mode', 'mtime', 'path'];\n\nexport default function FileEntry(attributes) {\n validateAttributes(attributes, MANDATORY_ATTRIBUTES);\n objectAssign(this, attributes);\n if (this.basename === undefined) this.basename = path.basename(this.path);\n if (this.type === undefined) this.type = 'file';\n if (this._writeFile === undefined) throw new Error('File self missing _writeFile. Please implement this method in your subclass');\n}\n\nFileEntry.prototype.create = function 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 try {\n const normalizedPath = path.normalize(self.path);\n const fullPath = path.join(dest, stripPath(normalizedPath, options));\n\n const queue = new Queue(1);\n if (options.force) {\n queue.defer((callback) => {\n rimraf2(fullPath, { disableGlob: true }, (err) => {\n err && err.code !== 'ENOENT' ? callback(err) : callback();\n });\n });\n }\n queue.defer(mkdirp.bind(null, path.dirname(fullPath)));\n queue.defer(this._writeFile.bind(this, fullPath, options));\n queue.defer(chmod.bind(null, fullPath, self, options));\n queue.defer(chown.bind(null, fullPath, self, options));\n queue.defer(utimes.bind(null, fullPath, self, options));\n return queue.await(callback);\n } catch (err) {\n return callback(err);\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\nFileEntry.prototype.destroy = function destroy() {};\n"],"names":["FileEntry","MANDATORY_ATTRIBUTES","attributes","validateAttributes","objectAssign","basename","undefined","path","type","_writeFile","Error","prototype","create","dest","options","callback","self","normalizedPath","normalize","fullPath","join","stripPath","queue","Queue","force","defer","rimraf2","disableGlob","err","code","mkdirp","bind","dirname","chmod","chown","utimes","await","Promise","createPromise","resolve","reject","done","destroy"],"mappings":";;;;+BAcA;;;eAAwBA;;;2DAdP;oEACE;mEACM;8DACP;8DAEE;4DACF;4DACA;6DACC;gEACG;yEACS;;;;;;AAE/B,IAAMC,uBAAuB;IAAC;IAAQ;IAAS;CAAO;AAEvC,SAASD,UAAUE,UAAU;IAC1CC,IAAAA,2BAAkB,EAACD,YAAYD;IAC/BG,IAAAA,qBAAY,EAAC,IAAI,EAAEF;IACnB,IAAI,IAAI,CAACG,QAAQ,KAAKC,WAAW,IAAI,CAACD,QAAQ,GAAGE,aAAI,CAACF,QAAQ,CAAC,IAAI,CAACE,IAAI;IACxE,IAAI,IAAI,CAACC,IAAI,KAAKF,WAAW,IAAI,CAACE,IAAI,GAAG;IACzC,IAAI,IAAI,CAACC,UAAU,KAAKH,WAAW,MAAM,IAAII,MAAM;AACrD;AAEAV,UAAUW,SAAS,CAACC,MAAM,GAAG,SAASA,OAAOC,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IAClE,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU;IACZ;IAEA,IAAME,OAAO,IAAI;IACjB,IAAI,OAAOD,aAAa,YAAY;QAClCD,UAAUA,WAAW,CAAC;QACtB,IAAI;YACF,IAAMG,iBAAiBV,aAAI,CAACW,SAAS,CAACF,KAAKT,IAAI;YAC/C,IAAMY,WAAWZ,aAAI,CAACa,IAAI,CAACP,MAAMQ,IAAAA,kBAAS,EAACJ,gBAAgBH;YAE3D,IAAMQ,QAAQ,IAAIC,gBAAK,CAAC;YACxB,IAAIT,QAAQU,KAAK,EAAE;gBACjBF,MAAMG,KAAK,CAAC,SAACV;oBACXW,IAAAA,gBAAO,EAACP,UAAU;wBAAEQ,aAAa;oBAAK,GAAG,SAACC;wBACxCA,OAAOA,IAAIC,IAAI,KAAK,WAAWd,SAASa,OAAOb;oBACjD;gBACF;YACF;YACAO,MAAMG,KAAK,CAACK,sBAAM,CAACC,IAAI,CAAC,MAAMxB,aAAI,CAACyB,OAAO,CAACb;YAC3CG,MAAMG,KAAK,CAAC,IAAI,CAAChB,UAAU,CAACsB,IAAI,CAAC,IAAI,EAAEZ,UAAUL;YACjDQ,MAAMG,KAAK,CAACQ,cAAK,CAACF,IAAI,CAAC,MAAMZ,UAAUH,MAAMF;YAC7CQ,MAAMG,KAAK,CAACS,cAAK,CAACH,IAAI,CAAC,MAAMZ,UAAUH,MAAMF;YAC7CQ,MAAMG,KAAK,CAACU,eAAM,CAACJ,IAAI,CAAC,MAAMZ,UAAUH,MAAMF;YAC9C,OAAOQ,MAAMc,KAAK,CAACrB;QACrB,EAAE,OAAOa,KAAK;YACZ,OAAOb,SAASa;QAClB;IACF;IAEA,OAAO,IAAIS,QAAQ,SAASC,cAAcC,OAAO,EAAEC,MAAM;QACvDxB,KAAKJ,MAAM,CAACC,MAAMC,SAAS,SAACc,KAAKa;mBAAUb,MAAMY,OAAOZ,OAAOW,QAAQE;;IACzE;AACF;AAEAzC,UAAUW,SAAS,CAAC+B,OAAO,GAAG,SAASA,WAAW"}