@@ -3,6 +3,7 @@ import { writeFile } from 'node:fs/promises';
33import path from 'node:path' ;
44import {
55 type AuditOutputs ,
6+ type PersistConfig ,
67 type PluginConfig ,
78 type RunnerConfig ,
89 type RunnerFunction ,
@@ -14,6 +15,7 @@ import {
1415 executeProcess ,
1516 fileExists ,
1617 isVerbose ,
18+ objectToCliArgs ,
1719 readJsonFile ,
1820 removeDirectoryIfExists ,
1921 ui ,
@@ -32,12 +34,13 @@ export type ValidatedRunnerResult = Omit<RunnerResult, 'audits'> & {
3234
3335export async function executeRunnerConfig (
3436 cfg : RunnerConfig ,
37+ config : Required < Pick < PersistConfig , 'outputDir' > > ,
3538) : Promise < RunnerResult > {
3639 const { args, command, outputFile, outputTransform } = cfg ;
3740
3841 const { duration, date } = await executeProcess ( {
3942 command,
40- args,
43+ args : [ ... ( args ?? [ ] ) , ... objectToCliArgs ( config ) ] ,
4144 observer : {
4245 onStdout : stdout => {
4346 if ( isVerbose ( ) ) {
@@ -66,12 +69,13 @@ export async function executeRunnerConfig(
6669
6770export async function executeRunnerFunction (
6871 runner : RunnerFunction ,
72+ config : PersistConfig ,
6973) : Promise < RunnerResult > {
7074 const date = new Date ( ) . toISOString ( ) ;
7175 const start = performance . now ( ) ;
7276
7377 // execute plugin runner
74- const audits = await runner ( ) ;
78+ const audits = await runner ( config ) ;
7579
7680 // create runner result
7781 return {
@@ -96,12 +100,13 @@ export class AuditOutputsMissingAuditError extends Error {
96100
97101export async function executePluginRunner (
98102 pluginConfig : Pick < PluginConfig , 'audits' | 'runner' > ,
103+ persist : Required < Pick < PersistConfig , 'outputDir' > > ,
99104) : Promise < Omit < RunnerResult , 'audits' > & { audits : AuditOutputs } > {
100105 const { audits : pluginConfigAudits , runner } = pluginConfig ;
101106 const runnerResult : RunnerResult =
102107 typeof runner === 'object'
103- ? await executeRunnerConfig ( runner )
104- : await executeRunnerFunction ( runner ) ;
108+ ? await executeRunnerConfig ( runner , persist )
109+ : await executeRunnerFunction ( runner , persist ) ;
105110 const { audits : unvalidatedAuditOutputs , ...executionMeta } = runnerResult ;
106111
107112 const result = auditOutputsSchema . safeParse ( unvalidatedAuditOutputs ) ;
0 commit comments