UNPKG

fast-extract

Version:

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

44 lines 1.81 kB
"use strict"; 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; }