mirror of
https://github.com/cloudflare/wrangler-action.git
synced 2025-01-23 05:44:46 +01:00
92 lines
3 KiB
JavaScript
92 lines
3 KiB
JavaScript
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
import { builtinModules } from 'node:module';
|
|
import { existsSync } from 'node:fs';
|
|
import { resolve } from 'pathe';
|
|
|
|
const isWindows = process.platform === "win32";
|
|
function slash(str) {
|
|
return str.replace(/\\/g, "/");
|
|
}
|
|
const VALID_ID_PREFIX = "/@id/";
|
|
function normalizeRequestId(id, base) {
|
|
if (base && id.startsWith(base))
|
|
id = `/${id.slice(base.length)}`;
|
|
return id.replace(/^\/@id\/__x00__/, "\0").replace(/^\/@id\//, "").replace(/^__vite-browser-external:/, "").replace(/^file:/, "").replace(/^\/+/, "/").replace(/\?v=\w+/, "?").replace(/&v=\w+/, "").replace(/\?t=\w+/, "?").replace(/&t=\w+/, "").replace(/\?import/, "?").replace(/&import/, "").replace(/\?&/, "?").replace(/\?+$/, "");
|
|
}
|
|
const queryRE = /\?.*$/s;
|
|
const hashRE = /#.*$/s;
|
|
function cleanUrl(url) {
|
|
return url.replace(hashRE, "").replace(queryRE, "");
|
|
}
|
|
const internalRequests = [
|
|
"@vite/client",
|
|
"@vite/env"
|
|
];
|
|
const internalRequestRegexp = new RegExp(`^/?(${internalRequests.join("|")})$`);
|
|
function isInternalRequest(id) {
|
|
return internalRequestRegexp.test(id);
|
|
}
|
|
const prefixedBuiltins = /* @__PURE__ */ new Set([
|
|
"node:test"
|
|
]);
|
|
const builtins = /* @__PURE__ */ new Set([
|
|
...builtinModules,
|
|
"assert/strict",
|
|
"diagnostics_channel",
|
|
"dns/promises",
|
|
"fs/promises",
|
|
"path/posix",
|
|
"path/win32",
|
|
"readline/promises",
|
|
"stream/consumers",
|
|
"stream/promises",
|
|
"stream/web",
|
|
"timers/promises",
|
|
"util/types",
|
|
"wasi"
|
|
]);
|
|
function normalizeModuleId(id) {
|
|
if (prefixedBuiltins.has(id))
|
|
return id;
|
|
return id.replace(/\\/g, "/").replace(/^\/@fs\//, isWindows ? "" : "/").replace(/^file:\//, "/").replace(/^node:/, "").replace(/^\/+/, "/");
|
|
}
|
|
function isPrimitive(v) {
|
|
return v !== Object(v);
|
|
}
|
|
function toFilePath(id, root) {
|
|
let { absolute, exists } = (() => {
|
|
if (id.startsWith("/@fs/"))
|
|
return { absolute: id.slice(4), exists: true };
|
|
if (!id.startsWith(root) && id.startsWith("/")) {
|
|
const resolved = resolve(root, id.slice(1));
|
|
if (existsSync(cleanUrl(resolved)))
|
|
return { absolute: resolved, exists: true };
|
|
} else if (id.startsWith(root) && existsSync(cleanUrl(id))) {
|
|
return { absolute: id, exists: true };
|
|
}
|
|
return { absolute: id, exists: false };
|
|
})();
|
|
if (absolute.startsWith("//"))
|
|
absolute = absolute.slice(1);
|
|
return {
|
|
path: isWindows && absolute.startsWith("/") ? slash(fileURLToPath(pathToFileURL(absolute.slice(1)).href)) : absolute,
|
|
exists
|
|
};
|
|
}
|
|
const NODE_BUILTIN_NAMESPACE = "node:";
|
|
function isNodeBuiltin(id) {
|
|
if (prefixedBuiltins.has(id))
|
|
return true;
|
|
return builtins.has(
|
|
id.startsWith(NODE_BUILTIN_NAMESPACE) ? id.slice(NODE_BUILTIN_NAMESPACE.length) : id
|
|
);
|
|
}
|
|
function toArray(array) {
|
|
if (array === null || array === void 0)
|
|
array = [];
|
|
if (Array.isArray(array))
|
|
return array;
|
|
return [array];
|
|
}
|
|
|
|
export { VALID_ID_PREFIX, cleanUrl, hashRE, isInternalRequest, isNodeBuiltin, isPrimitive, isWindows, normalizeModuleId, normalizeRequestId, queryRE, slash, toArray, toFilePath };
|