{"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/fast-extract/src/createPipeline.mjs"],"sourcesContent":["import zlib from 'zlib';\nimport bz2 from 'unbzip2-stream';\nimport optionalRequire from './optionalRequire.cjs';\n\n// lzma-native module compatiblity starts at Node 6\nconst major = +process.versions.node.split('.')[0];\nconst lzmaNative = major >= 10 ? optionalRequire('lzma-native') : null;\n\nconst TRANSORMS = {\n  bz2: bz2,\n  tgz: zlib.createUnzip.bind(zlib),\n  gz: zlib.createUnzip.bind(zlib),\n  xz: lzmaNative && lzmaNative.createDecompressor ? lzmaNative.createDecompressor.bind(lzmaNative) : undefined,\n};\n\nimport create7ZPipeline from './streams/pipelines/7z.mjs';\nimport createFilePipeline from './streams/pipelines/file.mjs';\nimport createTarPipeline from './streams/pipelines/tar.mjs';\nimport createZipPipeline from './streams/pipelines/zip.mjs';\n\nconst WRITERS = {\n  zip: createZipPipeline,\n  tar: createTarPipeline,\n  tgz: createTarPipeline,\n  '7z': create7ZPipeline,\n};\n\nimport DestinationNotExists from './streams/transforms/DestinationNotExists.mjs';\nimport DestinationRemove from './streams/transforms/DestinationRemove.mjs';\n\nimport extname from './extname.mjs';\nimport statsBasename from './sourceStats/basename.mjs';\n\nexport default function createPipeline(dest, options) {\n  const type = options.type === undefined ? extname(statsBasename(options.source, options) || '') : options.type;\n\n  const parts = type.split('.');\n  const streams = [options.force ? new DestinationRemove(dest) : new DestinationNotExists(dest)];\n  for (let index = parts.length - 1; index >= 0; index--) {\n    // append transform\n    const transform = TRANSORMS[parts[index]];\n    if (transform) streams.push(transform());\n\n    // finish with a write stream\n    const writer = WRITERS[parts[index]];\n    if (writer) return writer(dest, streams, options);\n  }\n\n  // default is to write the result to a file\n  return createFilePipeline(dest, streams, options);\n}\n"],"names":["createPipeline","major","process","versions","node","split","lzmaNative","optionalRequire","TRANSORMS","bz2","tgz","zlib","createUnzip","bind","gz","xz","createDecompressor","undefined","WRITERS","zip","createZipPipeline","tar","createTarPipeline","create7ZPipeline","dest","options","type","extname","statsBasename","source","parts","streams","force","DestinationRemove","DestinationNotExists","index","length","transform","push","writer","createFilePipeline"],"mappings":";;;;+BAiCA;;;eAAwBA;;;2DAjCP;oEACD;yEACY;yDAaC;2DACE;0DACD;0DACA;2EASG;wEACH;8DAEV;+DACM;;;;;;AA3B1B,mDAAmD;AACnD,IAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,IAAMC,aAAaL,SAAS,KAAKM,IAAAA,2BAAe,EAAC,iBAAiB;AAElE,IAAMC,YAAY;IAChBC,KAAKA,sBAAG;IACRC,KAAKC,aAAI,CAACC,WAAW,CAACC,IAAI,CAACF,aAAI;IAC/BG,IAAIH,aAAI,CAACC,WAAW,CAACC,IAAI,CAACF,aAAI;IAC9BI,IAAIT,cAAcA,WAAWU,kBAAkB,GAAGV,WAAWU,kBAAkB,CAACH,IAAI,CAACP,cAAcW;AACrG;AAOA,IAAMC,UAAU;IACdC,KAAKC,YAAiB;IACtBC,KAAKC,YAAiB;IACtBZ,KAAKY,YAAiB;IACtB,MAAMC,WAAgB;AACxB;AAQe,SAASvB,eAAewB,IAAI,EAAEC,OAAO;IAClD,IAAMC,OAAOD,QAAQC,IAAI,KAAKT,YAAYU,IAAAA,gBAAO,EAACC,IAAAA,iBAAa,EAACH,QAAQI,MAAM,EAAEJ,YAAY,MAAMA,QAAQC,IAAI;IAE9G,IAAMI,QAAQJ,KAAKrB,KAAK,CAAC;IACzB,IAAM0B,UAAU;QAACN,QAAQO,KAAK,GAAG,IAAIC,0BAAiB,CAACT,QAAQ,IAAIU,6BAAoB,CAACV;KAAM;IAC9F,IAAK,IAAIW,QAAQL,MAAMM,MAAM,GAAG,GAAGD,SAAS,GAAGA,QAAS;QACtD,mBAAmB;QACnB,IAAME,YAAY7B,SAAS,CAACsB,KAAK,CAACK,MAAM,CAAC;QACzC,IAAIE,WAAWN,QAAQO,IAAI,CAACD;QAE5B,6BAA6B;QAC7B,IAAME,SAASrB,OAAO,CAACY,KAAK,CAACK,MAAM,CAAC;QACpC,IAAII,QAAQ,OAAOA,OAAOf,MAAMO,SAASN;IAC3C;IAEA,2CAA2C;IAC3C,OAAOe,IAAAA,aAAkB,EAAChB,MAAMO,SAASN;AAC3C"}