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

Function resolveCoverageProviderModule

packages/vitest/src/utils/coverage.ts:36–86  ·  view source on GitHub ↗
(
  options: SerializedCoverageConfig | undefined,
  loader: RuntimeCoverageModuleLoader,
)

Source from the content-addressed store, hash-verified

34}
35
36export async function resolveCoverageProviderModule(
37 options: SerializedCoverageConfig | undefined,
38 loader: RuntimeCoverageModuleLoader,
39): Promise<RuntimeCoverageProviderModule | null> {
40 if (!options?.enabled || !options.provider) {
41 return null
42 }
43
44 const provider = options.provider
45
46 if (provider === 'v8' || provider === 'istanbul') {
47 let builtInModule = CoverageProviderMap[provider]
48
49 if (provider === 'v8' && loader.isBrowser) {
50 builtInModule += '/browser'
51 }
52
53 const { default: coverageModule }
54 = loader.isBrowser
55 ? await loader.import(builtInModule)
56 : await import(/* @vite-ignore */ builtInModule)
57
58 if (!coverageModule) {
59 throw new Error(
60 `Failed to load ${CoverageProviderMap[provider]}. Default export is missing.`,
61 )
62 }
63
64 return coverageModule
65 }
66
67 let customProviderModule
68
69 try {
70 customProviderModule = await loader.import(options.customProviderModule!)
71 }
72 catch (error) {
73 throw new Error(
74 `Failed to load custom CoverageProviderModule from ${options.customProviderModule}`,
75 { cause: error },
76 )
77 }
78
79 if (customProviderModule.default == null) {
80 throw new Error(
81 `Custom CoverageProviderModule loaded from ${options.customProviderModule} was not the default export`,
82 )
83 }
84
85 return customProviderModule.default
86}

Callers 4

takeCoverageInsideWorkerFunction · 0.90
stopCoverageInsideWorkerFunction · 0.90
getCoverageProviderFunction · 0.90

Calls 1

importMethod · 0.45

Tested by

no test coverage detected