( options: RunnerOptions, )
| 87 | } |
| 88 | |
| 89 | export async function runnerFunction( |
| 90 | options: RunnerOptions, |
| 91 | ): Promise<AuditOutputs> { |
| 92 | const fileSizeAuditOutput: AuditOutput = { |
| 93 | slug: fileSizeAuditSlug, |
| 94 | score: 1, |
| 95 | value: 0, |
| 96 | displayValue: displayValue(0), |
| 97 | }; |
| 98 | |
| 99 | const issues = await fileSizeIssues(options); |
| 100 | // early exit if no issues |
| 101 | if (issues.length === 0) { |
| 102 | return [fileSizeAuditOutput]; |
| 103 | } |
| 104 | |
| 105 | const errorCount = issues.filter(filterSeverityError).length; |
| 106 | return [ |
| 107 | { |
| 108 | ...fileSizeAuditOutput, |
| 109 | score: factorOf(issues, filterSeverityError), |
| 110 | value: errorCount, |
| 111 | displayValue: displayValue(errorCount), |
| 112 | details: { |
| 113 | issues, |
| 114 | }, |
| 115 | }, |
| 116 | ]; |
| 117 | } |
| 118 | |
| 119 | function filterSeverityError(issue: Issue): issue is Issue { |
| 120 | return issue.severity === 'error'; |
no test coverage detected