fast-extract
Version:
Extract contents from various archive types (tar, tar.bz2, tar.gz, tar.xz, tgz, zip)
44 lines • 1.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return getBasename;
}
});
var _contentdisposition = /*#__PURE__*/ _interop_require_default(require("content-disposition"));
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
// biome-ignore lint/suspicious/noControlCharactersInRegex: Platform specific characters
var POSIX = /[<>:"\\/\\|?*\x00-\x1F]/g;
var WINDOWS = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])$/i;
function getBasename(source, options, endpoint) {
// options
var basename = options.basename || options.filename;
if (basename !== undefined) return basename;
// path
if (typeof source === 'string') return _path.default.basename(source);
// stream
if (source) {
if (source.headers && source.headers['content-disposition']) {
var information = _contentdisposition.default.parse(source.headers['content-disposition']);
return information.parameters.filename;
}
basename = source.basename || source.filename;
if (basename !== undefined) return basename;
}
// endpoint
if (endpoint) {
basename = _path.default.basename(endpoint.split('?')[0]);
basename = basename.replace(POSIX, '!');
basename = basename.replace(WINDOWS, '!');
return basename;
}
}
/* 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; }