Urara-Blog/node_modules/.pnpm-store/v3/files/f4/f5b51aa7e4ab8076bccaa66d246e3ff56a04a63614eedd10c31c622e8111692778225600dfbae2db90aed2cfe21c85fd91d400699ac83bc421f6756782674d
2022-08-14 01:14:53 +08:00

24 lines
798 B
Text

const pathSeparators = ["/", "\\", void 0];
function normalizeAliases(_aliases) {
const aliases = Object.fromEntries(Object.entries(_aliases).sort(([a], [b]) => _compareAliases(a, b)));
for (const key in aliases) {
for (const alias in aliases) {
if (alias === key || key.startsWith(alias)) {
continue;
}
if (aliases[key].startsWith(alias) && pathSeparators.includes(aliases[key][alias.length])) {
aliases[key] = aliases[alias] + aliases[key].slice(alias.length);
}
}
}
return aliases;
}
const FILENAME_RE = /(?<=^|[\\/])([^\\/]+?)(?=(\.[^.]+)?$)/;
function filename(path) {
return path.match(FILENAME_RE)?.[0];
}
function _compareAliases(a, b) {
return b.split("/").length - a.split("/").length;
}
export { filename, normalizeAliases };