UNPKG

fast-extract

Version:

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

59 lines 2.98 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 _unbzip2stream = /*#__PURE__*/ _interop_require_default(require("unbzip2-stream")); var _optionalRequirecjs = /*#__PURE__*/ _interop_require_default(require("./optionalRequire.cjs")); var _7z = /*#__PURE__*/ _interop_require_default(require("./streams/pipelines/7z.cjs")); var _file = /*#__PURE__*/ _interop_require_default(require("./streams/pipelines/file.cjs")); var _tar = /*#__PURE__*/ _interop_require_default(require("./streams/pipelines/tar.cjs")); var _zip = /*#__PURE__*/ _interop_require_default(require("./streams/pipelines/zip.cjs")); var _DestinationNotExists = /*#__PURE__*/ _interop_require_default(require("./streams/transforms/DestinationNotExists.cjs")); var _DestinationRemove = /*#__PURE__*/ _interop_require_default(require("./streams/transforms/DestinationRemove.cjs")); var _extname = /*#__PURE__*/ _interop_require_default(require("./extname.cjs")); var _basename = /*#__PURE__*/ _interop_require_default(require("./sourceStats/basename.cjs")); 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, _optionalRequirecjs.default)('lzma-native') : null; var TRANSORMS = { bz2: _unbzip2stream.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: _zip.default, tar: _tar.default, tgz: _tar.default, '7z': _7z.default }; function createPipeline(dest, options) { var type = options.type === undefined ? (0, _extname.default)((0, _basename.default)(options.source, options) || '') : options.type; var parts = type.split('.'); var streams = [ options.force ? new _DestinationRemove.default(dest) : new _DestinationNotExists.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, _file.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; }