@@ -6,16 +6,24 @@ import type { ExternalModulesExecutor } from '../external-executor'
66import type { ModuleExecutionInfo } from './moduleDebug'
77import type { VitestModuleEvaluator } from './moduleEvaluator'
88import type { VitestTransportOptions } from './moduleTransport'
9- import { ModuleRunner } from 'vite/module-runner'
9+ import * as viteModuleRunner from 'vite/module-runner'
1010import { VitestMocker } from './moduleMocker'
1111import { VitestTransport } from './moduleTransport'
1212
13+ // eslint-disable-next-line ts/ban-ts-comment
14+ // @ts -ignore available since Vite 7.1 https://github.com/vitejs/vite/pull/20260
15+ export type CreateImportMeta = NonNullable < viteModuleRunner . ModuleRunnerOptions [ 'createImportMeta' ] >
16+ // eslint-disable-next-line ts/ban-ts-comment
17+ // @ts -ignore
18+ export const createNodeImportMeta : CreateImportMeta = viteModuleRunner . createNodeImportMeta
19+
1320// @ts -expect-error overriding private method
14- export class VitestModuleRunner extends ModuleRunner {
21+ export class VitestModuleRunner extends viteModuleRunner . ModuleRunner {
1522 public mocker : VitestMocker
1623 public moduleExecutionInfo : ModuleExecutionInfo
1724
18- constructor ( private options : VitestModuleRunnerOptions ) {
25+ constructor ( private vitestOptions : VitestModuleRunnerOptions ) {
26+ const options = vitestOptions
1927 const transport = new VitestTransport ( options . transport )
2028 const evaluatedModules = options . evaluatedModules
2129 super (
@@ -24,6 +32,9 @@ export class VitestModuleRunner extends ModuleRunner {
2432 hmr : false ,
2533 evaluatedModules,
2634 sourcemapInterceptor : 'prepareStackTrace' ,
35+ // eslint-disable-next-line ts/ban-ts-comment
36+ // @ts -ignore
37+ createImportMeta : vitestOptions . createImportMeta ,
2738 } ,
2839 options . evaluator ,
2940 )
@@ -56,7 +67,7 @@ export class VitestModuleRunner extends ModuleRunner {
5667 }
5768
5869 public async import ( rawId : string ) : Promise < any > {
59- const resolved = await this . options . transport . resolveId ( rawId )
70+ const resolved = await this . vitestOptions . transport . resolveId ( rawId )
6071 if ( ! resolved ) {
6172 return super . import ( rawId )
6273 }
@@ -145,6 +156,7 @@ export interface VitestModuleRunnerOptions {
145156 mocker ?: VitestMocker
146157 vm ?: VitestVmOptions
147158 spyModule ?: typeof import ( '@vitest/spy' )
159+ createImportMeta ?: CreateImportMeta
148160}
149161
150162export interface VitestVmOptions {
0 commit comments