fast-extract
Version:
Extract contents from various archive types (tar, tar.bz2, tar.gz, tar.xz, tgz, zip)
1 lines • 2.16 kB
Source Map (JSON)
{"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":["path","contentDisposition","POSIX","WINDOWS","getBasename","source","options","endpoint","basename","filename","undefined","headers","information","parse","parameters","split","replace"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,wBAAwB,sBAAsB;AAErD,yEAAyE;AACzE,MAAMC,QAAQ;AACd,MAAMC,UAAU;AAEhB,eAAe,SAASC,YAAYC,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,OAAOL,KAAKQ,QAAQ,CAACH;IACrD,SAAS;IACT,IAAIA,QAAQ;QACV,IAAIA,OAAOM,OAAO,IAAIN,OAAOM,OAAO,CAAC,sBAAsB,EAAE;YAC3D,MAAMC,cAAcX,mBAAmBY,KAAK,CAACR,OAAOM,OAAO,CAAC,sBAAsB;YAClF,OAAOC,YAAYE,UAAU,CAACL,QAAQ;QACxC;QACAD,WAAWH,OAAOG,QAAQ,IAAIH,OAAOI,QAAQ;QAC7C,IAAID,aAAaE,WAAW,OAAOF;IACrC;IAEA,WAAW;IACX,IAAID,UAAU;QACZC,WAAWR,KAAKQ,QAAQ,CAACD,SAASQ,KAAK,CAAC,IAAI,CAAC,EAAE;QAC/CP,WAAWA,SAASQ,OAAO,CAACd,OAAO;QACnCM,WAAWA,SAASQ,OAAO,CAACb,SAAS;QACrC,OAAOK;IACT;AACF"}