Files
DeviceManager/node_modules/vitest/dist/loader.js

101 lines
3.2 KiB
JavaScript

import { pathToFileURL, fileURLToPath } from 'node:url';
import { readFile } from 'node:fs/promises';
import { i as isNodeBuiltin, h as hasCJSSyntax } from './vendor-index.0b5b3600.js';
import { normalizeModuleId } from 'vite-node/utils';
import './vendor-index.29282562.js';
import { g as getWorkerState } from './vendor-global.97e4527c.js';
import 'acorn';
import 'node:module';
import 'node:fs';
import 'pathe';
import 'node:assert';
import 'node:process';
import 'node:path';
import 'node:v8';
import 'node:util';
import 'std-env';
import '@vitest/runner/utils';
import '@vitest/utils';
var ModuleFormat = /* @__PURE__ */ ((ModuleFormat2) => {
ModuleFormat2["Builtin"] = "builtin";
ModuleFormat2["Commonjs"] = "commonjs";
ModuleFormat2["Json"] = "json";
ModuleFormat2["Module"] = "module";
ModuleFormat2["Wasm"] = "wasm";
return ModuleFormat2;
})(ModuleFormat || {});
const ESM_RE = /([\s;}]|^)(import[\w,{}\s*]*from|import\s*['"*{]|export\b\s*(?:[*{]|default|class|type|function|const|var|let|async function)|import\.meta\b)/m;
function hasESMSyntax(code) {
return ESM_RE.test(code);
}
const cache = /* @__PURE__ */ new Map();
async function getPotentialSource(filepath, result) {
var _a;
if (!result.url.startsWith("file://") || result.format === "module")
return null;
let source = (_a = cache.get(result.url)) == null ? void 0 : _a.source;
if (source == null)
source = await readFile(filepath, "utf8");
return source;
}
function detectESM(url, source) {
const cached = cache.get(url);
if (cached)
return cached.isPseudoESM;
if (!source)
return false;
return hasESMSyntax(source) && !hasCJSSyntax(source);
}
const resolve = async (url, context, next) => {
var _a;
const { parentURL } = context;
const state = getWorkerState();
const resolver = state == null ? void 0 : state.rpc.resolveId;
const environment = state == null ? void 0 : state.ctx.environment;
if (!parentURL || isNodeBuiltin(url) || !resolver || !environment)
return next(url, context, next);
const id = normalizeModuleId(url);
const importer = normalizeModuleId(parentURL);
const resolved = await resolver(id, importer, environment.transformMode ?? ((_a = environment.environment) == null ? void 0 : _a.transformMode) ?? "ssr");
let result;
let filepath;
if (resolved) {
const resolvedUrl = pathToFileURL(resolved.id).toString();
filepath = resolved.id;
result = {
url: resolvedUrl,
shortCircuit: true
};
} else {
const { url: resolvedUrl, format } = await next(url, context, next);
filepath = fileURLToPath(resolvedUrl);
result = {
url: resolvedUrl,
format,
shortCircuit: true
};
}
const source = await getPotentialSource(filepath, result);
const isPseudoESM = detectESM(result.url, source);
if (typeof source === "string")
cache.set(result.url, { isPseudoESM, source });
if (isPseudoESM)
result.format = ModuleFormat.Module;
return result;
};
const load = async (url, context, next) => {
const result = await next(url, context, next);
const cached = cache.get(url);
if ((cached == null ? void 0 : cached.isPseudoESM) && result.format !== "module") {
return {
source: cached.source,
format: ModuleFormat.Module
};
}
return result;
};
export { load, resolve };