11import { bold } from 'ansis' ;
2- import type {
3- Audit ,
4- AuditOutput ,
5- AuditReport ,
6- CacheConfigObject ,
7- PersistConfig ,
8- PluginConfig ,
9- PluginReport ,
2+ import {
3+ type AuditOutput ,
4+ type AuditReport ,
5+ type CacheConfigObject ,
6+ DEFAULT_PERSIST_CONFIG ,
7+ type PersistConfig ,
8+ type PluginConfig ,
9+ type PluginReport ,
10+ type RunnerArgs ,
1011} from '@code-pushup/models' ;
1112import {
1213 type ProgressBar ,
@@ -48,10 +49,9 @@ export async function executePlugin(
4849 pluginConfig : PluginConfig ,
4950 opt : {
5051 cache : CacheConfigObject ;
51- persist : Required < Pick < PersistConfig , 'outputDir' > > ;
52+ persist : PersistConfig ;
5253 } ,
5354) : Promise < PluginReport > {
54- const { cache, persist } = opt ;
5555 const {
5656 runner,
5757 audits : pluginConfigAudits ,
@@ -61,15 +61,19 @@ export async function executePlugin(
6161 scoreTargets,
6262 ...pluginMeta
6363 } = pluginConfig ;
64- const { write : cacheWrite = false , read : cacheRead = false } = cache ;
65- const { outputDir } = persist ;
64+ const { write : cacheWrite = false , read : cacheRead = false } = opt . cache ;
65+
66+ const args : RunnerArgs = {
67+ persist : { ...DEFAULT_PERSIST_CONFIG , ...opt . persist } ,
68+ } ;
69+ const { outputDir } = args . persist ;
6670
6771 const { audits, ...executionMeta } = cacheRead
6872 ? // IF not null, take the result from cache
6973 ( ( await readRunnerResults ( pluginMeta . slug , outputDir ) ) ??
7074 // ELSE execute the plugin runner
71- ( await executePluginRunner ( pluginConfig , persist ) ) )
72- : await executePluginRunner ( pluginConfig , persist ) ;
75+ ( await executePluginRunner ( pluginConfig , args ) ) )
76+ : await executePluginRunner ( pluginConfig , args ) ;
7377
7478 if ( cacheWrite ) {
7579 await writeRunnerResults ( pluginMeta . slug , outputDir , {
@@ -87,9 +91,8 @@ export async function executePlugin(
8791 const auditReports : AuditReport [ ] = scoredAuditsWithTarget . map (
8892 ( auditOutput : AuditOutput ) => ( {
8993 ...auditOutput ,
90- ...( pluginConfigAudits . find (
91- audit => audit . slug === auditOutput . slug ,
92- ) as Audit ) ,
94+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
95+ ...pluginConfigAudits . find ( audit => audit . slug === auditOutput . slug ) ! ,
9396 } ) ,
9497 ) ;
9598
@@ -107,7 +110,7 @@ export async function executePlugin(
107110const wrapProgress = async (
108111 cfg : {
109112 plugin : PluginConfig ;
110- persist : Required < Pick < PersistConfig , 'outputDir' > > ;
113+ persist : PersistConfig ;
111114 cache : CacheConfigObject ;
112115 } ,
113116 steps : number ,
@@ -155,7 +158,7 @@ const wrapProgress = async (
155158export async function executePlugins (
156159 cfg : {
157160 plugins : PluginConfig [ ] ;
158- persist : Required < Pick < PersistConfig , 'outputDir' > > ;
161+ persist : PersistConfig ;
159162 cache : CacheConfigObject ;
160163 } ,
161164 options ?: { progress ?: boolean } ,
0 commit comments