Skip to content

Commit 0e858ba

Browse files
authored
fix(module-runner): don't return node builtins for getBuiltins unconditionally (#8863)
1 parent a4f86f1 commit 0e858ba

File tree

2 files changed

+4
-8
lines changed

2 files changed

+4
-8
lines changed

packages/vitest/src/node/environments/serverRunner.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
import type { DevEnvironment } from 'vite'
22
import type { ResolvedConfig } from '../types/config'
33
import type { VitestFetchFunction } from './fetchModule'
4-
import { builtinModules } from 'node:module'
54
import { VitestModuleEvaluator } from '#module-evaluator'
65
import { ModuleRunner } from 'vite/module-runner'
76
import { normalizeResolvedIdToUrl } from './normalizeUrl'
87

9-
const nodeBuiltins = builtinModules.filter(id => !id.includes(':'))
10-
118
export class ServerModuleRunner extends ModuleRunner {
129
constructor(
1310
private environment: DevEnvironment,
@@ -24,7 +21,7 @@ export class ServerModuleRunner extends ModuleRunner {
2421
}
2522
const { name, data } = event.data
2623
if (name === 'getBuiltins') {
27-
return { result: [...nodeBuiltins, /^node:/] }
24+
return await environment.hot.handleInvoke(event)
2825
}
2926
if (name !== 'fetchModule') {
3027
return { error: new Error(`Unknown method: ${name}. Expected "fetchModule".`) }

packages/vitest/src/runtime/moduleRunner/moduleTransport.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
import type { FetchFunction, ModuleRunnerTransport } from 'vite/module-runner'
22
import type { ResolveFunctionResult } from '../../types/general'
3-
import { builtinModules } from 'node:module'
43

54
export interface VitestTransportOptions {
65
fetchModule: FetchFunction
76
resolveId: (id: string, importer?: string) => Promise<ResolveFunctionResult | null>
87
}
98

10-
const nodeBuiltins = builtinModules.filter(id => !id.includes(':'))
11-
129
export class VitestTransport implements ModuleRunnerTransport {
1310
constructor(private options: VitestTransportOptions) {}
1411

@@ -21,7 +18,9 @@ export class VitestTransport implements ModuleRunnerTransport {
2118
}
2219
const { name, data } = event.data
2320
if (name === 'getBuiltins') {
24-
return { result: [...nodeBuiltins, /^node:/] }
21+
// we return an empty array here to avoid client-side builtin check,
22+
// as we need builtins to go through `fetchModule`
23+
return { result: [] }
2524
}
2625
if (name !== 'fetchModule') {
2726
return { error: new Error(`Unknown method: ${name}. Expected "fetchModule".`) }

0 commit comments

Comments
 (0)