Skip to content

Commit df34c1c

Browse files
fix: Data merge concurrency limit to prevent OOM (#1293)
Fixes #1263
1 parent befbf08 commit df34c1c

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

index.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -408,11 +408,16 @@ class NYC {
408408

409409
async getCoverageMapFromAllCoverageFiles (baseDirectory) {
410410
const map = libCoverage.createCoverageMap({})
411+
const files = await this.coverageFiles(baseDirectory)
411412

412-
const data = await this.coverageData(baseDirectory)
413-
data.forEach(report => {
414-
map.merge(report)
415-
})
413+
await pMap(
414+
files,
415+
async f => {
416+
const report = await this.coverageFileLoad(f, baseDirectory)
417+
map.merge(report)
418+
},
419+
{ concurrency: os.cpus().length }
420+
)
416421

417422
map.data = await this.sourceMaps.remapCoverage(map.data)
418423

@@ -503,6 +508,7 @@ class NYC {
503508
}
504509
}
505510

511+
// TODO: Remove from nyc v16
506512
async coverageData (baseDirectory) {
507513
const files = await this.coverageFiles(baseDirectory)
508514
return pMap(

0 commit comments

Comments
 (0)