@@ -12,9 +12,9 @@ const {
1212 includeAllFiles
1313} = require ( './task-utils' )
1414const { fixSourcePaths } = require ( './support-utils' )
15- const { removePlaceholders } = require ( './common-utils' )
1615
1716const debug = require ( 'debug' ) ( 'code-coverage' )
17+ require ( 'debug' ) . enable ( 'code-coverage' )
1818
1919// these are standard folder and file names used by NYC tools
2020const processWorkingDirectory = process . cwd ( )
@@ -59,6 +59,13 @@ const nycReportOptions = (function getNycOption() {
5959
6060const nycFilename = join ( nycReportOptions [ 'temp-dir' ] , 'out.json' )
6161
62+ let coverageMap = ( ( ) => {
63+ const previousCoverage = existsSync ( nycFilename )
64+ ? JSON . parse ( readFileSync ( nycFilename , 'utf8' ) )
65+ : { }
66+ return istanbul . createCoverageMap ( previousCoverage )
67+ } ) ( )
68+
6269function saveCoverage ( coverage ) {
6370 if ( ! existsSync ( nycReportOptions . tempDir ) ) {
6471 mkdirSync ( nycReportOptions . tempDir , { recursive : true } )
@@ -122,7 +129,7 @@ const tasks = {
122129 resetCoverage ( { isInteractive } ) {
123130 if ( isInteractive ) {
124131 debug ( 'reset code coverage in interactive mode' )
125- const coverageMap = istanbul . createCoverageMap ( { } )
132+ coverageMap = istanbul . createCoverageMap ( { } )
126133 saveCoverage ( coverageMap )
127134 }
128135 /*
@@ -148,21 +155,7 @@ const tasks = {
148155
149156 fixSourcePaths ( coverage )
150157
151- const previousCoverage = existsSync ( nycFilename )
152- ? JSON . parse ( readFileSync ( nycFilename , 'utf8' ) )
153- : { }
154-
155- // previous code coverage object might have placeholder entries
156- // for files that we have not seen yet,
157- // but the user expects to include in the coverage report
158- // the merge function messes up, so we should remove any placeholder entries
159- // and re-insert them again when creating the report
160- removePlaceholders ( previousCoverage )
161-
162- const coverageMap = istanbul . createCoverageMap ( previousCoverage )
163158 coverageMap . merge ( coverage )
164- saveCoverage ( coverageMap )
165- debug ( 'wrote coverage file %s' , nycFilename )
166159
167160 return null
168161 } ,
@@ -172,6 +165,7 @@ const tasks = {
172165 * NPM script to generate HTML report
173166 */
174167 coverageReport ( ) {
168+ saveCoverage ( coverageMap )
175169 if ( ! existsSync ( nycFilename ) ) {
176170 console . warn ( 'Cannot find coverage file %s' , nycFilename )
177171 console . warn ( 'Skipping coverage report' )
0 commit comments