MCPcopy
hub / github.com/vitest-dev/vitest / createEnvironmentLoader

Function createEnvironmentLoader

packages/vitest/src/integrations/env/loader.ts:22–55  ·  view source on GitHub ↗
(root: string, rpc: WorkerRPC)

Source from the content-addressed store, hash-verified

20const _loaders = new Map<string, ModuleRunner>()
21
22export function createEnvironmentLoader(root: string, rpc: WorkerRPC): ModuleRunner {
23 const cachedLoader = _loaders.get(root)
24 if (!cachedLoader || cachedLoader.isClosed()) {
25 _loaders.delete(root)
26
27 const evaluatedModules = new EvaluatedModules()
28 const moduleRunner = new ModuleRunner({
29 hmr: false,
30 sourcemapInterceptor: 'prepareStackTrace',
31 transport: new VitestTransport({
32 async fetchModule(id, importer, options) {
33 const result = await rpc.fetch(id, importer, '__vitest__', options)
34 if ('cached' in result) {
35 const code = readFileSync(result.tmp, 'utf-8')
36 return { code, ...result }
37 }
38 if (isWindows && 'externalize' in result) {
39 // TODO: vitest returns paths for external modules, but Vite returns file://
40 // https://github.com/vitejs/vite/pull/20449
41 result.externalize = isBuiltin(id) || /^(?:node:|data:|http:|https:|file:)/.test(id)
42 ? result.externalize
43 : pathToFileURL(result.externalize).toString()
44 }
45 return result
46 },
47 async resolveId(id, importer) {
48 return rpc.resolve(id, importer, '__vitest__')
49 },
50 }, evaluatedModules, new WeakMap()),
51 })
52 _loaders.set(root, moduleRunner)
53 }
54 return _loaders.get(root)!
55}
56
57export async function loadNativeEnvironment(
58 name: string,

Callers 1

loadEnvironmentFunction · 0.85

Calls 3

getMethod · 0.45
deleteMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected