fast-extract
Version:
Extract contents from various archive types (tar, tar.bz2, tar.gz, tar.xz, tgz, zip)
59 lines • 3.02 kB
JavaScript
;
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; }