39 lines
1.4 KiB
JavaScript
39 lines
1.4 KiB
JavaScript
import ancestor from "common-ancestor-path";
|
|
import { fileURLToPath } from "node:url";
|
|
import {
|
|
appendExtension,
|
|
appendForwardSlash,
|
|
removeLeadingForwardSlashWindows
|
|
} from "../core/path.js";
|
|
import { viteID } from "../core/util.js";
|
|
function escapeViteEnvReferences(code) {
|
|
return code.replace(/import\.meta\.env/g, "import\\u002Emeta.env").replace(/process\.env/g, "process\\u002Eenv");
|
|
}
|
|
function getFileInfo(id, config) {
|
|
const sitePathname = appendForwardSlash(
|
|
config.site ? new URL(config.base, config.site).pathname : config.base
|
|
);
|
|
const fileId = id.split("?")[0];
|
|
let fileUrl = fileId.includes("/pages/") ? fileId.replace(/^.*?\/pages\//, sitePathname).replace(/(\/index)?\.(md|markdown|mdown|mkdn|mkd|mdwn|md|astro)$/, "") : void 0;
|
|
if (fileUrl && config.trailingSlash === "always") {
|
|
fileUrl = appendForwardSlash(fileUrl);
|
|
}
|
|
if (fileUrl && config.build.format === "file") {
|
|
fileUrl = appendExtension(fileUrl, "html");
|
|
}
|
|
return { fileId, fileUrl };
|
|
}
|
|
function normalizeFilename(filename, root) {
|
|
if (filename.startsWith("/@fs")) {
|
|
filename = filename.slice("/@fs".length);
|
|
} else if (filename.startsWith("/") && !ancestor(filename, fileURLToPath(root))) {
|
|
const url = new URL("." + filename, root);
|
|
filename = viteID(url);
|
|
}
|
|
return removeLeadingForwardSlashWindows(filename);
|
|
}
|
|
export {
|
|
escapeViteEnvReferences,
|
|
getFileInfo,
|
|
normalizeFilename
|
|
};
|