1- import { DiagnosticCategory } from 'typescript' ;
21import type {
32 Audit ,
43 AuditOutput ,
@@ -7,48 +6,43 @@ import type {
76 Issue ,
87 RunnerFunction ,
98} from '@code-pushup/models' ;
10- import type { TypescriptPluginOptions } from '../config.js' ;
11- import { AUDITS } from '../constants.js' ;
129import type { AuditSlug } from '../types.js' ;
13- import { filterAuditsBySlug } from '../utils.js' ;
14- import { getDiagnostics } from './typescript-runner.js' ;
10+ import {
11+ type DiagnosticsOptions ,
12+ getDiagnostics ,
13+ } from './typescript-runner.js' ;
1514import {
1615 AUDIT_LOOKUP ,
1716 getIssueFromDiagnostic ,
18- transformTSErrorCodeToAuditSlug ,
17+ tSCodeToAuditSlug ,
1918} from './utils.js' ;
2019
21- export function createRunnerFunction (
22- options : TypescriptPluginOptions & { audits : Audit [ ] } ,
23- ) : RunnerFunction {
20+ export type RunnerOptions = DiagnosticsOptions & {
21+ filteredAudits : Audit [ ] ;
22+ } ;
23+
24+ export function createRunnerFunction ( options : RunnerOptions ) : RunnerFunction {
2425 return async ( ) : Promise < AuditOutputs > => {
25- const diagnostics = await getDiagnostics ( options ) ;
26+ const { filteredAudits, tsConfigPath } = options ;
27+ const diagnostics = await getDiagnostics ( { tsConfigPath } ) ;
2628
2729 const result : Record <
2830 AuditSlug ,
2931 Pick < AuditReport , 'slug' | 'details' >
3032 > = diagnostics
31- . filter (
32- ( { category } ) =>
33- category === DiagnosticCategory . Warning ||
34- category === DiagnosticCategory . Error ,
35- )
3633 // filter out unsupported errors
3734 . filter ( ( { code } ) => AUDIT_LOOKUP . get ( code ) !== undefined )
3835 . reduce (
3936 ( acc , diag ) => {
40- const slug = transformTSErrorCodeToAuditSlug ( diag . code ) ;
41- const issue = getIssueFromDiagnostic ( diag ) ;
42-
37+ const slug = tSCodeToAuditSlug ( diag . code ) ;
4338 const existingIssues : Issue [ ] =
4439 ( acc [ slug ] && acc [ slug ] . details ?. issues ) || ( [ ] as Issue [ ] ) ;
45-
4640 return {
4741 ...acc ,
4842 [ slug ] : {
4943 slug,
5044 details : {
51- issues : [ ...existingIssues , issue ] ,
45+ issues : [ ...existingIssues , getIssueFromDiagnostic ( diag ) ] ,
5246 } ,
5347 } ,
5448 } ;
@@ -59,7 +53,7 @@ export function createRunnerFunction(
5953 > ,
6054 ) ;
6155
62- return AUDITS . filter ( filterAuditsBySlug ( options . onlyAudits ) ) . map ( audit => {
56+ return filteredAudits . map ( audit => {
6357 const { details } = result [ audit . slug as AuditSlug ] ?? { } ;
6458 const issues = details ?. issues ?? [ ] ;
6559 return {
0 commit comments