@@ -18,14 +18,16 @@ import type { LCOVStat, LCOVStats } from './types.js';
1818 *
1919 * @param results Paths to LCOV results
2020 * @param coverageTypes types of coverage to be considered
21+ * @param continueFail force execution to continue on possibly non-critical failures, defaults to true
2122 * @returns Audit outputs with complete coverage data.
2223 */
2324export async function lcovResultsToAuditOutputs (
2425 results : CoverageResult [ ] ,
2526 coverageTypes : CoverageType [ ] ,
27+ continueFail : boolean = true ,
2628) : Promise < AuditOutputs > {
2729 // Parse lcov files
28- const lcovResults = await parseLcovFiles ( results ) ;
30+ const lcovResults = await parseLcovFiles ( results , continueFail ) ;
2931
3032 // Merge multiple coverage reports for the same file
3133 const mergedResults = mergeLcovResults ( lcovResults ) ;
@@ -50,10 +52,12 @@ export async function lcovResultsToAuditOutputs(
5052/**
5153 *
5254 * @param results Paths to LCOV results
55+ * @param continueFail force execution to continue on possibly non-critical failures, defaults to true
5356 * @returns Array of parsed LCOVRecords.
5457 */
5558export async function parseLcovFiles (
5659 results : CoverageResult [ ] ,
60+ continueFail : boolean = true ,
5761) : Promise < LCOVRecord [ ] > {
5862 const parsedResults = await Promise . all (
5963 results . map ( async result => {
@@ -76,13 +80,18 @@ export async function parseLcovFiles(
7680 } ) ,
7781 ) ;
7882 if ( parsedResults . length !== results . length ) {
79- throw new Error ( 'Some provided LCOV results were not valid.' ) ;
83+ const message = 'Some provided coverage LCOV results were not valid.' ;
84+ if ( continueFail ) {
85+ ui ( ) . logger . warning ( message ) ;
86+ } else {
87+ throw new Error ( message ) ;
88+ }
8089 }
8190
8291 const flatResults = parsedResults . flat ( ) ;
8392
8493 if ( flatResults . length === 0 ) {
85- throw new Error ( 'All provided results are empty.' ) ;
94+ throw new Error ( 'All provided coverage results are empty.' ) ;
8695 }
8796
8897 return flatResults ;
0 commit comments