UNPKG

fast-extract

Version:

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

59 lines 3.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return createPipeline; } }); var _zlib = /*#__PURE__*/ _interop_require_default(require("zlib")); var _unbzip2streamts = /*#__PURE__*/ _interop_require_default(require("./compat/unbzip2-stream.js")); var _optionalRequirets = /*#__PURE__*/ _interop_require_default(require("./optionalRequire.js")); var _7zts = /*#__PURE__*/ _interop_require_default(require("./streams/pipelines/7z.js")); var _filets = /*#__PURE__*/ _interop_require_default(require("./streams/pipelines/file.js")); var _tarts = /*#__PURE__*/ _interop_require_default(require("./streams/pipelines/tar.js")); var _zipts = /*#__PURE__*/ _interop_require_default(require("./streams/pipelines/zip.js")); var _extnamets = /*#__PURE__*/ _interop_require_default(require("./extname.js")); var _basenamets = /*#__PURE__*/ _interop_require_default(require("./sourceStats/basename.js")); var _DestinationNotExiststs = /*#__PURE__*/ _interop_require_default(require("./streams/transforms/DestinationNotExists.js")); var _DestinationRemovets = /*#__PURE__*/ _interop_require_default(require("./streams/transforms/DestinationRemove.js")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // lzma-native module compatiblity starts at Node 6 var major = +process.versions.node.split('.')[0]; var lzmaNative = major >= 10 ? (0, _optionalRequirets.default)('lzma-native') : null; var TRANSORMS = { bz2: _unbzip2streamts.default, tgz: _zlib.default.createUnzip.bind(_zlib.default), gz: _zlib.default.createUnzip.bind(_zlib.default), xz: lzmaNative && lzmaNative.createDecompressor ? lzmaNative.createDecompressor.bind(lzmaNative) : undefined }; var WRITERS = { zip: _zipts.default, tar: _tarts.default, tgz: _tarts.default, '7z': _7zts.default }; function createPipeline(dest, options) { var type = options.type === undefined ? (0, _extnamets.default)((0, _basenamets.default)(options.source, options) || '') : options.type; var parts = type.split('.'); var streams = [ options.force ? new _DestinationRemovets.default(dest) : new _DestinationNotExiststs.default(dest) ]; for(var index = parts.length - 1; index >= 0; index--){ // append transform var transform = TRANSORMS[parts[index]]; if (transform) streams.push(transform()); // finish with a write stream var writer = WRITERS[parts[index]]; if (writer) return writer(dest, streams, options); } // default is to write the result to a file return (0, _filets.default)(dest, streams, options); } /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }