{"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"}