extract-base-iterator
Version:
Base iterator for extract iterators like tar-iterator and zip-iterator
1 lines • 4.63 kB
Source Map (JSON)
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/extract-base-iterator/src/LinkEntry.mjs"],"sourcesContent":["import path from 'path';\nimport fs from 'graceful-fs';\nimport mkdirp from 'mkdirp-classic';\nimport objectAssign from 'object-assign';\nimport Queue from 'queue-cb';\nimport rimraf2 from 'rimraf2';\n\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', 'linkpath'];\n\nexport default function LinkEntry(attributes, _type) {\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 = 'link';\n}\n\nLinkEntry.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 const normalizedLinkpath = path.normalize(self.linkpath);\n const linkFullPath = path.join(dest, stripPath(normalizedLinkpath, 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(fs.link.bind(fs, linkFullPath, fullPath));\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\nLinkEntry.prototype.destroy = function destroy() {};\n"],"names":["path","fs","mkdirp","objectAssign","Queue","rimraf2","chmod","chown","utimes","stripPath","validateAttributes","MANDATORY_ATTRIBUTES","LinkEntry","attributes","_type","basename","undefined","type","prototype","create","dest","options","callback","self","normalizedPath","normalize","fullPath","join","normalizedLinkpath","linkpath","linkFullPath","queue","force","defer","disableGlob","err","code","bind","dirname","link","await","Promise","createPromise","resolve","reject","done","destroy"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,QAAQ,cAAc;AAC7B,OAAOC,YAAY,iBAAiB;AACpC,OAAOC,kBAAkB,gBAAgB;AACzC,OAAOC,WAAW,WAAW;AAC7B,OAAOC,aAAa,UAAU;AAE9B,OAAOC,WAAW,iBAAiB;AACnC,OAAOC,WAAW,iBAAiB;AACnC,OAAOC,YAAY,kBAAkB;AACrC,OAAOC,eAAe,kBAAkB;AACxC,OAAOC,wBAAwB,2BAA2B;AAE1D,MAAMC,uBAAuB;IAAC;IAAQ;IAAS;IAAQ;CAAW;AAElE,eAAe,SAASC,UAAUC,UAAU,EAAEC,KAAK;IACjDJ,mBAAmBG,YAAYF;IAC/BR,aAAa,IAAI,EAAEU;IACnB,IAAI,IAAI,CAACE,QAAQ,KAAKC,WAAW,IAAI,CAACD,QAAQ,GAAGf,KAAKe,QAAQ,CAAC,IAAI,CAACf,IAAI;IACxE,IAAI,IAAI,CAACiB,IAAI,KAAKD,WAAW,IAAI,CAACC,IAAI,GAAG;AAC3C;AAEAL,UAAUM,SAAS,CAACC,MAAM,GAAG,SAASA,OAAOC,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IAClE,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU;IACZ;IAEA,MAAME,OAAO,IAAI;IACjB,IAAI,OAAOD,aAAa,YAAY;QAClCD,UAAUA,WAAW,CAAC;QACtB,IAAI;YACF,MAAMG,iBAAiBxB,KAAKyB,SAAS,CAACF,KAAKvB,IAAI;YAC/C,MAAM0B,WAAW1B,KAAK2B,IAAI,CAACP,MAAMX,UAAUe,gBAAgBH;YAC3D,MAAMO,qBAAqB5B,KAAKyB,SAAS,CAACF,KAAKM,QAAQ;YACvD,MAAMC,eAAe9B,KAAK2B,IAAI,CAACP,MAAMX,UAAUmB,oBAAoBP;YAEnE,MAAMU,QAAQ,IAAI3B,MAAM;YACxB,IAAIiB,QAAQW,KAAK,EAAE;gBACjBD,MAAME,KAAK,CAAC,CAACX;oBACXjB,QAAQqB,UAAU;wBAAEQ,aAAa;oBAAK,GAAG,CAACC;wBACxCA,OAAOA,IAAIC,IAAI,KAAK,WAAWd,SAASa,OAAOb;oBACjD;gBACF;YACF;YACAS,MAAME,KAAK,CAAC/B,OAAOmC,IAAI,CAAC,MAAMrC,KAAKsC,OAAO,CAACZ;YAC3CK,MAAME,KAAK,CAAChC,GAAGsC,IAAI,CAACF,IAAI,CAACpC,IAAI6B,cAAcJ;YAC3CK,MAAME,KAAK,CAAC3B,MAAM+B,IAAI,CAAC,MAAMX,UAAUH,MAAMF;YAC7CU,MAAME,KAAK,CAAC1B,MAAM8B,IAAI,CAAC,MAAMX,UAAUH,MAAMF;YAC7CU,MAAME,KAAK,CAACzB,OAAO6B,IAAI,CAAC,MAAMX,UAAUH,MAAMF;YAC9C,OAAOU,MAAMS,KAAK,CAAClB;QACrB,EAAE,OAAOa,KAAK;YACZ,OAAOb,SAASa;QAClB;IACF;IAEA,OAAO,IAAIM,QAAQ,SAASC,cAAcC,OAAO,EAAEC,MAAM;QACvDrB,KAAKJ,MAAM,CAACC,MAAMC,SAAS,CAACc,KAAKU,OAAUV,MAAMS,OAAOT,OAAOQ,QAAQE;IACzE;AACF;AAEAjC,UAAUM,SAAS,CAAC4B,OAAO,GAAG,SAASA,WAAW"}