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