| 'use strict';
|
|
|
| const index = require('./shared/pathe.1f0a373c.cjs');
|
|
|
| const pathSeparators = new Set(["/", "\\", void 0]);
|
| const normalizedAliasSymbol = Symbol.for("pathe:normalizedAlias");
|
| function normalizeAliases(_aliases) {
|
| if (_aliases[normalizedAliasSymbol]) {
|
| return _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.has(aliases[key][alias.length])) {
|
| aliases[key] = aliases[alias] + aliases[key].slice(alias.length);
|
| }
|
| }
|
| }
|
| Object.defineProperty(aliases, normalizedAliasSymbol, {
|
| value: true,
|
| enumerable: false
|
| });
|
| return aliases;
|
| }
|
| function resolveAlias(path, aliases) {
|
| const _path = index.normalizeWindowsPath(path);
|
| aliases = normalizeAliases(aliases);
|
| for (const [alias, to] of Object.entries(aliases)) {
|
| if (!_path.startsWith(alias)) {
|
| continue;
|
| }
|
| const _alias = hasTrailingSlash(alias) ? alias.slice(0, -1) : alias;
|
| if (hasTrailingSlash(_path[_alias.length])) {
|
| return index.join(to, _path.slice(alias.length));
|
| }
|
| }
|
| return _path;
|
| }
|
| const FILENAME_RE = /(^|[/\\])([^/\\]+?)(?=(\.[^.]+)?$)/;
|
| function filename(path) {
|
| return path.match(FILENAME_RE)?.[2];
|
| }
|
| function _compareAliases(a, b) {
|
| return b.split("/").length - a.split("/").length;
|
| }
|
| function hasTrailingSlash(path = "/") {
|
| const lastChar = path[path.length - 1];
|
| return lastChar === "/" || lastChar === "\\";
|
| }
|
|
|
| exports.filename = filename;
|
| exports.normalizeAliases = normalizeAliases;
|
| exports.resolveAlias = resolveAlias;
|
|
|