@@ -12,7 +12,6 @@ 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' )
1817
@@ -59,6 +58,13 @@ const nycReportOptions = (function getNycOption() {
5958
6059const nycFilename = join ( nycReportOptions [ 'temp-dir' ] , 'out.json' )
6160
61+ let coverageMap = ( ( ) => {
62+ const previousCoverage = existsSync ( nycFilename )
63+ ? JSON . parse ( readFileSync ( nycFilename , 'utf8' ) )
64+ : { }
65+ return istanbul . createCoverageMap ( previousCoverage )
66+ } ) ( )
67+
6268function saveCoverage ( coverage ) {
6369 if ( ! existsSync ( nycReportOptions . tempDir ) ) {
6470 mkdirSync ( nycReportOptions . tempDir , { recursive : true } )
@@ -122,7 +128,7 @@ const tasks = {
122128 resetCoverage ( { isInteractive } ) {
123129 if ( isInteractive ) {
124130 debug ( 'reset code coverage in interactive mode' )
125- const coverageMap = istanbul . createCoverageMap ( { } )
131+ coverageMap = istanbul . createCoverageMap ( { } )
126132 saveCoverage ( coverageMap )
127133 }
128134 /*
@@ -148,21 +154,7 @@ const tasks = {
148154
149155 fixSourcePaths ( coverage )
150156
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 )
163157 coverageMap . merge ( coverage )
164- saveCoverage ( coverageMap )
165- debug ( 'wrote coverage file %s' , nycFilename )
166158
167159 return null
168160 } ,
@@ -172,6 +164,7 @@ const tasks = {
172164 * NPM script to generate HTML report
173165 */
174166 coverageReport ( ) {
167+ saveCoverage ( coverageMap )
175168 if ( ! existsSync ( nycFilename ) ) {
176169 console . warn ( 'Cannot find coverage file %s' , nycFilename )
177170 console . warn ( 'Skipping coverage report' )
0 commit comments