fix(coverage): simplify provider types (#9931) · vitest-dev/vitest@aaf9f18
@@ -95,24 +95,10 @@ export type CoverageReporterWithOptions<
95959696export type CoverageProviderName = 'v8' | 'istanbul' | 'custom' | undefined
979798-export type CoverageOptions<T extends CoverageProviderName = CoverageProviderName>
99-= T extends 'istanbul'
100- ? { provider: T } & CoverageIstanbulOptions
101- : T extends 'v8' ? {
102-/**
103- * Provider to use for coverage collection.
104- *
105- * @default 'v8'
106- */
107-provider: T
108-} & CoverageV8Options
109- : T extends 'custom'
110- ? { provider: T } & CustomProviderOptions
111- : { provider?: T } & CoverageV8Options
112-11398/** Fields that have default values. Internally these will always be defined. */
11499type FieldsWithDefaultValues
115-= | 'enabled'
100+= | 'provider'
101+| 'enabled'
116102| 'clean'
117103| 'cleanOnRerun'
118104| 'reportsDirectory'
@@ -121,14 +107,23 @@ type FieldsWithDefaultValues
121107| 'allowExternal'
122108| 'processingConcurrency'
123109124-export type ResolvedCoverageOptions<T extends CoverageProviderName = CoverageProviderName>
125-= CoverageOptions<T>
126-& Required<Pick<CoverageOptions<T>, FieldsWithDefaultValues>> & { // Resolved fields which may have different typings as public configuration API has
110+export type ResolvedCoverageOptions
111+= CoverageOptions
112+& Required<Pick<CoverageOptions, FieldsWithDefaultValues>>
113+& {
114+// Resolved fields which may have different typings as public configuration API has
127115reporter: CoverageReporterWithOptions[]
128116htmlDir?: string
129117}
130118131-export interface BaseCoverageOptions {
119+export interface CoverageOptions {
120+/**
121+ * Coverage provider to use.
122+ *
123+ * @default 'v8'
124+ */
125+provider?: 'v8' | 'istanbul' | 'custom'
126+132127/**
133128 * Enables coverage collection. Can be overridden using `--coverage` CLI option.
134129 *
@@ -285,16 +280,11 @@ export interface BaseCoverageOptions {
285280 * @default false
286281 */
287282changed?: boolean | string
288-}
289-290-export interface CoverageIstanbulOptions extends BaseCoverageOptions {}
291283292-export interface CoverageV8Options extends BaseCoverageOptions {}
293-294-export interface CustomProviderOptions
295-extends Pick<BaseCoverageOptions, FieldsWithDefaultValues | 'changed'> {
296-/** Name of the module or path to a file to load the custom provider from */
297-customProviderModule: string
284+/**
285+ * Name of the module or path to a file to load the custom provider from
286+ */
287+customProviderModule?: string
298288}
299289300290interface Thresholds {
@@ -324,3 +314,15 @@ interface Thresholds {
324314/** Thresholds for lines */
325315lines?: number
326316}
317+318+/** @deprecated Use `CoverageOptions` instead */
319+export interface CoverageV8Options extends CoverageOptions {}
320+321+/** @deprecated Use `CoverageOptions` instead */
322+export interface CoverageIstanbulOptions extends CoverageOptions {}
323+324+/** @deprecated Use `CoverageOptions` instead */
325+export interface BaseCoverageOptions extends CoverageOptions {}
326+327+/** @deprecated Use `CoverageOptions` instead */
328+export interface CustomProviderOptions extends CoverageOptions {}