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