fast-extract
Version:
Extract contents from various archive types (tar, tar.bz2, tar.gz, tar.xz, tgz, zip)
1 lines • 2.73 kB
Source Map (JSON)
{"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":["createFilePipeline","dest","options","tempDest","tempSuffix","_tempPaths","push","wroteSomething","writer","write","chunk","_encoding","callback","appendFile","fs","bind","pathMade","mkdirp","path","dirname","flush","queue","Queue","defer","err","code","rimraf2","disableGlob","rename","writeTruncateFile","await"],"mappings":";;;;+BAUA;;;eAAwBA;;;yDAVT;2DACE;uEACE;oEACA;8DACD;8DACE;iEAEG;wEACO;;;;;;AAEf,SAASA,mBAAmBC,IAAI,EAAEC,OAAO;IACtD,IAAMC,WAAWC,IAAAA,mBAAU,EAACH;IAC5BC,QAAQG,UAAU,CAACC,IAAI,CAACH;IAExB,IAAII,iBAAiB;IACrB,OAAOC,IAAAA,yBAAM,EACX,SAASC,MAAMC,KAAK,EAAEC,SAAS,EAAEC,QAAQ;;QACvCL,iBAAiB;QACjB,IAAMM,aAAaC,WAAE,CAACD,UAAU,CAACE,IAAI,CAACD,WAAE,EAAEX,UAAUO,OAAOE;QAC3D,IAAI,IAAI,CAACI,QAAQ,EAAE,OAAOH;QAC1BI,IAAAA,sBAAM,EAACC,aAAI,CAACC,OAAO,CAAChB,WAAW;YAC7B,MAAKa,QAAQ,GAAG;YAChBH;QACF;IACF,GACA,SAASO,MAAMR,QAAQ;QACrB,IAAMS,QAAQ,IAAIC,gBAAK,CAAC;QACxBD,MAAME,KAAK,CAAC,SAACX;YACXK,IAAAA,sBAAM,EAACC,aAAI,CAACC,OAAO,CAAClB,OAAO,SAACuB;gBAC1BA,OAAOA,IAAIC,IAAI,KAAK,WAAWb,SAASY,OAAOZ;YACjD;QACF;QACA,IAAIL,gBAAgB;YAClBc,MAAME,KAAK,CAACG,gBAAO,CAACX,IAAI,CAAC,MAAMd,MAAM;gBAAE0B,aAAa;YAAK;YACzDN,MAAME,KAAK,CAACT,WAAE,CAACc,MAAM,CAACb,IAAI,CAACD,WAAE,EAAEX,UAAUF;QAC3C,OAAOoB,MAAME,KAAK,CAACM,0BAAiB,CAACd,IAAI,CAAC,MAAMd;QAChDoB,MAAMS,KAAK,CAAClB;IACd;AAEJ"}