UNPKG

fast-extract

Version:

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

1 lines 2.16 kB
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/iterators/fast-extract/src/sourceStats/basename.mjs"],"sourcesContent":["import path from 'path';\nimport contentDisposition from 'content-disposition';\n\n// biome-ignore lint/suspicious/noControlCharactersInRegex: <explanation>\nconst POSIX = /[<>:\"\\\\/\\\\|?*\\x00-\\x1F]/g;\nconst WINDOWS = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])$/i;\n\nexport default function getBasename(source, options, endpoint) {\n // options\n let basename = options.basename || options.filename;\n if (basename !== undefined) return basename;\n\n // path\n if (typeof source === 'string') return path.basename(source);\n // stream\n if (source) {\n if (source.headers && source.headers['content-disposition']) {\n const information = contentDisposition.parse(source.headers['content-disposition']);\n return information.parameters.filename;\n }\n basename = source.basename || source.filename;\n if (basename !== undefined) return basename;\n }\n\n // endpoint\n if (endpoint) {\n basename = path.basename(endpoint.split('?')[0]);\n basename = basename.replace(POSIX, '!');\n basename = basename.replace(WINDOWS, '!');\n return basename;\n }\n}\n"],"names":["getBasename","POSIX","WINDOWS","source","options","endpoint","basename","filename","undefined","path","headers","information","contentDisposition","parse","parameters","split","replace"],"mappings":";;;;+BAOA;;;eAAwBA;;;2DAPP;yEACc;;;;;;AAE/B,yEAAyE;AACzE,IAAMC,QAAQ;AACd,IAAMC,UAAU;AAED,SAASF,YAAYG,MAAM,EAAEC,OAAO,EAAEC,QAAQ;IAC3D,UAAU;IACV,IAAIC,WAAWF,QAAQE,QAAQ,IAAIF,QAAQG,QAAQ;IACnD,IAAID,aAAaE,WAAW,OAAOF;IAEnC,OAAO;IACP,IAAI,OAAOH,WAAW,UAAU,OAAOM,aAAI,CAACH,QAAQ,CAACH;IACrD,SAAS;IACT,IAAIA,QAAQ;QACV,IAAIA,OAAOO,OAAO,IAAIP,OAAOO,OAAO,CAAC,sBAAsB,EAAE;YAC3D,IAAMC,cAAcC,2BAAkB,CAACC,KAAK,CAACV,OAAOO,OAAO,CAAC,sBAAsB;YAClF,OAAOC,YAAYG,UAAU,CAACP,QAAQ;QACxC;QACAD,WAAWH,OAAOG,QAAQ,IAAIH,OAAOI,QAAQ;QAC7C,IAAID,aAAaE,WAAW,OAAOF;IACrC;IAEA,WAAW;IACX,IAAID,UAAU;QACZC,WAAWG,aAAI,CAACH,QAAQ,CAACD,SAASU,KAAK,CAAC,IAAI,CAAC,EAAE;QAC/CT,WAAWA,SAASU,OAAO,CAACf,OAAO;QACnCK,WAAWA,SAASU,OAAO,CAACd,SAAS;QACrC,OAAOI;IACT;AACF"}