UNPKG

fast-extract

Version:

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

1 lines 2.77 kB
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/fast-extract/src/streams/write/file.mjs"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport writer from 'flush-write-stream';\nimport mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\nimport rimraf2 from 'rimraf2';\n\nimport tempSuffix from 'temp-suffix';\nimport writeTruncateFile from '../../writeTruncateFile.mjs';\n\nexport default function createFilePipeline(dest, options) {\n const tempDest = tempSuffix(dest);\n options._tempPaths.push(tempDest);\n\n let wroteSomething = false;\n return writer(\n function write(chunk, _encoding, callback) {\n wroteSomething = true;\n const appendFile = fs.appendFile.bind(fs, tempDest, chunk, callback);\n if (this.pathMade) return appendFile();\n mkdirp(path.dirname(tempDest), () => {\n this.pathMade = true;\n appendFile();\n });\n },\n function flush(callback) {\n const queue = new Queue(1);\n queue.defer((callback) => {\n mkdirp(path.dirname(dest), (err) => {\n err && err.code !== 'EEXIST' ? callback(err) : callback();\n });\n });\n if (wroteSomething) {\n queue.defer(rimraf2.bind(null, dest, { disableGlob: true }));\n queue.defer(fs.rename.bind(fs, tempDest, dest));\n } else queue.defer(writeTruncateFile.bind(null, dest));\n queue.await(callback);\n }\n );\n}\n"],"names":["fs","path","writer","mkdirp","Queue","rimraf2","tempSuffix","writeTruncateFile","createFilePipeline","dest","options","tempDest","_tempPaths","push","wroteSomething","write","chunk","_encoding","callback","appendFile","bind","pathMade","dirname","flush","queue","defer","err","code","disableGlob","rename","await"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,YAAY,qBAAqB;AACxC,OAAOC,YAAY,iBAAiB;AACpC,OAAOC,WAAW,WAAW;AAC7B,OAAOC,aAAa,UAAU;AAE9B,OAAOC,gBAAgB,cAAc;AACrC,OAAOC,uBAAuB,8BAA8B;AAE5D,eAAe,SAASC,mBAAmBC,IAAI,EAAEC,OAAO;IACtD,MAAMC,WAAWL,WAAWG;IAC5BC,QAAQE,UAAU,CAACC,IAAI,CAACF;IAExB,IAAIG,iBAAiB;IACrB,OAAOZ,OACL,SAASa,MAAMC,KAAK,EAAEC,SAAS,EAAEC,QAAQ;QACvCJ,iBAAiB;QACjB,MAAMK,aAAanB,GAAGmB,UAAU,CAACC,IAAI,CAACpB,IAAIW,UAAUK,OAAOE;QAC3D,IAAI,IAAI,CAACG,QAAQ,EAAE,OAAOF;QAC1BhB,OAAOF,KAAKqB,OAAO,CAACX,WAAW;YAC7B,IAAI,CAACU,QAAQ,GAAG;YAChBF;QACF;IACF,GACA,SAASI,MAAML,QAAQ;QACrB,MAAMM,QAAQ,IAAIpB,MAAM;QACxBoB,MAAMC,KAAK,CAAC,CAACP;YACXf,OAAOF,KAAKqB,OAAO,CAACb,OAAO,CAACiB;gBAC1BA,OAAOA,IAAIC,IAAI,KAAK,WAAWT,SAASQ,OAAOR;YACjD;QACF;QACA,IAAIJ,gBAAgB;YAClBU,MAAMC,KAAK,CAACpB,QAAQe,IAAI,CAAC,MAAMX,MAAM;gBAAEmB,aAAa;YAAK;YACzDJ,MAAMC,KAAK,CAACzB,GAAG6B,MAAM,CAACT,IAAI,CAACpB,IAAIW,UAAUF;QAC3C,OAAOe,MAAMC,KAAK,CAAClB,kBAAkBa,IAAI,CAAC,MAAMX;QAChDe,MAAMM,KAAK,CAACZ;IACd;AAEJ"}