@@ -95,24 +95,10 @@ export type CoverageReporterWithOptions<
9595
9696export type CoverageProviderName = 'v8' | 'istanbul' | 'custom' | undefined
9797
98- 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'
123109
124- 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 }
130118
131- 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 { }
291283
292- 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}
299289
300290interface 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 { }
0 commit comments