mirror of
https://github.com/Sevichecc/Urara-Blog.git
synced 2025-05-01 14:29:30 +08:00
24 lines
798 B
Text
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 };
|