aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/@vitest/mocker/dist/register.js
blob: 841b687053934e917b2dfc9f8870bae0b0c500af (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { createMockInstance } from '@vitest/spy';
import { M as ModuleMocker, r as rpc, c as createCompilerHints, h as hot } from './chunk-mocker.js';
import './index.js';
import './chunk-registry.js';
import './chunk-pathe.M-eThtNZ.js';

function registerModuleMocker(interceptor) {
	const mocker = new ModuleMocker(interceptor(__VITEST_GLOBAL_THIS_ACCESSOR__), {
		resolveId(id, importer) {
			return rpc("vitest:mocks:resolveId", {
				id,
				importer
			});
		},
		resolveMock(id, importer, options) {
			return rpc("vitest:mocks:resolveMock", {
				id,
				importer,
				options
			});
		},
		async invalidate(ids) {
			return rpc("vitest:mocks:invalidate", { ids });
		}
	}, createMockInstance, { root: __VITEST_MOCKER_ROOT__ });
	globalThis[__VITEST_GLOBAL_THIS_ACCESSOR__] = mocker;
	registerNativeFactoryResolver(mocker);
	return createCompilerHints({ globalThisKey: __VITEST_GLOBAL_THIS_ACCESSOR__ });
}
function registerNativeFactoryResolver(mocker) {
	hot.on("vitest:interceptor:resolve", async (url) => {
		const exports$1 = await mocker.resolveFactoryModule(url);
		const keys = Object.keys(exports$1);
		hot.send("vitest:interceptor:resolved", {
			url,
			keys
		});
	});
}

export { registerModuleMocker, registerNativeFactoryResolver };