@@ -12,7 +12,6 @@ const {
12
12
includeAllFiles
13
13
} = require ( './task-utils' )
14
14
const { fixSourcePaths } = require ( './support-utils' )
15
- const { removePlaceholders } = require ( './common-utils' )
16
15
17
16
const debug = require ( 'debug' ) ( 'code-coverage' )
18
17
@@ -59,6 +58,13 @@ const nycReportOptions = (function getNycOption() {
59
58
60
59
const nycFilename = join ( nycReportOptions [ 'temp-dir' ] , 'out.json' )
61
60
61
+ let coverageMap = ( ( ) => {
62
+ const previousCoverage = existsSync ( nycFilename )
63
+ ? JSON . parse ( readFileSync ( nycFilename , 'utf8' ) )
64
+ : { }
65
+ return istanbul . createCoverageMap ( previousCoverage )
66
+ } ) ( )
67
+
62
68
function saveCoverage ( coverage ) {
63
69
if ( ! existsSync ( nycReportOptions . tempDir ) ) {
64
70
mkdirSync ( nycReportOptions . tempDir , { recursive : true } )
@@ -122,7 +128,7 @@ const tasks = {
122
128
resetCoverage ( { isInteractive } ) {
123
129
if ( isInteractive ) {
124
130
debug ( 'reset code coverage in interactive mode' )
125
- const coverageMap = istanbul . createCoverageMap ( { } )
131
+ coverageMap = istanbul . createCoverageMap ( { } )
126
132
saveCoverage ( coverageMap )
127
133
}
128
134
/*
@@ -148,21 +154,7 @@ const tasks = {
148
154
149
155
fixSourcePaths ( coverage )
150
156
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 )
163
157
coverageMap . merge ( coverage )
164
- saveCoverage ( coverageMap )
165
- debug ( 'wrote coverage file %s' , nycFilename )
166
158
167
159
return null
168
160
} ,
@@ -172,6 +164,7 @@ const tasks = {
172
164
* NPM script to generate HTML report
173
165
*/
174
166
coverageReport ( ) {
167
+ saveCoverage ( coverageMap )
175
168
if ( ! existsSync ( nycFilename ) ) {
176
169
console . warn ( 'Cannot find coverage file %s' , nycFilename )
177
170
console . warn ( 'Skipping coverage report' )
0 commit comments