import type { CoverageProviderModule } from 'vitest/node' import type { V8CoverageProvider } from './provider' import { loadProvider } from './load-provider' let enabled = false function triggerCommand(command: string, args: any[] = []): Promise { return (globalThis as any).__vitest_browser_runner__.commands.triggerCommand(command, args) } const mod: CoverageProviderModule = { async startCoverage() { if (enabled) { return } enabled = true await triggerCommand('__vitest_startV8Coverage') }, async takeCoverage(): Promise { return triggerCommand('__vitest_takeV8Coverage', [window.location.href]) }, async stopCoverage({ isolate }) { if (isolate === false) { return } await triggerCommand('__vitest_stopV8Coverage') }, async getProvider(): Promise { return loadProvider() }, } export default mod