fix(coverage): simplify provider types (#9931) · vitest-dev/vitest@aaf9f18

@@ -95,24 +95,10 @@ export type CoverageReporterWithOptions<

95959696

export 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. */

11499

type 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

127115

reporter: CoverageReporterWithOptions[]

128116

htmlDir?: 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

*/

287282

changed?: 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

}

299289300290

interface Thresholds {

@@ -324,3 +314,15 @@ interface Thresholds {

324314

/** Thresholds for lines */

325315

lines?: 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 {}