const SPA_MOUNT = "/static/spa/";
export function derivePrefix(entryUrl) {
if (!entryUrl) return "";
let pathname;
try {
pathname = new URL(entryUrl, "http://mount.invalid/").pathname;
} catch (_) {
return "";
}
const at = pathname.indexOf(SPA_MOUNT);
if (at < 1) return "";
return pathname.slice(0, at);
}
function entryScriptUrl() {
if (typeof document === "undefined") return null;
const script = document.querySelector(
`script[type="module"][src*="${SPA_MOUNT}"]`,
);
return script?.src || null;
}
let cachedEntry;
let cachedPrefix = "";
export function basePrefix() {
const entry = entryScriptUrl();
if (entry !== cachedEntry) {
cachedEntry = entry;
cachedPrefix = derivePrefix(entry);
}
return cachedPrefix;
}
export function u(path) {
if (typeof path !== "string") return path;
if (!path.startsWith("/") || path.startsWith("//")) return path;
return basePrefix() + path;
}