@@ -14,10 +14,12 @@ const eventHandler = createEventHandler<Events>();
1414
1515export default abstract class Coverage extends Reporter
1616 implements CoverageProperties {
17- readonly reportType : ReportType = 'text' ;
17+
18+ abstract readonly reportType : ReportType ;
1819
1920 executor : Node ;
2021 filename : string ;
22+ directory : string ;
2123 watermarks : Watermarks ;
2224
2325 constructor ( executor : Node , options : CoverageOptions = { } ) {
@@ -26,11 +28,20 @@ export default abstract class Coverage extends Reporter
2628 if ( options . filename ) {
2729 this . filename = options . filename ;
2830 }
31+ if ( options . directory ) {
32+ this . directory = options . directory ;
33+ }
2934 if ( options . watermarks ) {
3035 this . watermarks = options . watermarks ;
3136 }
3237 }
3338
39+ getReporterOptions ( ) : { [ key : string ] : any ; } {
40+ return {
41+ file : this . filename
42+ } ;
43+ }
44+
3445 createCoverageReport (
3546 type : ReportType ,
3647 data : CoverageMapData | CoverageMap
@@ -46,11 +57,12 @@ export default abstract class Coverage extends Reporter
4657 const transformed = this . executor . sourceMapStore . transformCoverage ( map ) ;
4758
4859 const context = createContext ( {
60+ dir : this . directory ,
4961 sourceFinder : transformed . sourceFinder ,
5062 watermarks : this . watermarks
5163 } ) ;
5264 const tree = summarizers . pkg ( transformed . map ) ;
53- const report = create ( type , { file : this . filename } ) ;
65+ const report = create ( type , this . getReporterOptions ( ) ) ;
5466 tree . visit ( report , context ) ;
5567 }
5668
@@ -67,6 +79,9 @@ export interface CoverageProperties extends ReporterProperties {
6779 /** A filename to write coverage data to */
6880 filename ?: string ;
6981
82+ /** A direcotry to write coverage data to */
83+ directory ?: string ;
84+
7085 /** Watermarks used to check coverage */
7186 watermarks ?: Watermarks ;
7287}
0 commit comments