@code-pushup/models
Version:
Model definitions and validators for the Code PushUp CLI
54 lines • 1.99 kB
JavaScript
import { z } from 'zod/v4';
import { auditOutputsSchema } from './audit-output.js';
import { convertAsyncZodFunctionToSchema } from './implementation/function.js';
import { filePathSchema } from './implementation/schemas.js';
import { persistConfigSchema } from './persist-config.js';
export const outputTransformSchema = convertAsyncZodFunctionToSchema(z.function({
input: [z.unknown()],
output: z.union([auditOutputsSchema, z.promise(auditOutputsSchema)]),
})).meta({ title: 'OutputTransform' });
export const runnerArgsSchema = z
.object({
persist: persistConfigSchema
.required()
.meta({ description: 'Persist config with defaults applied' }),
})
.meta({
title: 'RunnerArgs',
description: 'Arguments passed to runner',
});
export const runnerConfigSchema = z
.object({
command: z.string().meta({ description: 'Shell command to execute' }),
args: z
.array(z.string())
.meta({ description: 'Command arguments' })
.optional(),
outputFile: filePathSchema.meta({ description: 'Runner output path' }),
outputTransform: outputTransformSchema.optional(),
configFile: filePathSchema
.meta({ description: 'Runner config path' })
.optional(),
})
.meta({
title: 'RunnerConfig',
description: 'How to execute runner using shell script',
});
export const runnerFunctionSchema = convertAsyncZodFunctionToSchema(z.function({
input: [runnerArgsSchema],
output: z.union([auditOutputsSchema, z.promise(auditOutputsSchema)]),
})).meta({
title: 'RunnerFunction',
description: 'Callback function for async runner execution in JS/TS',
});
export const runnerFilesPathsSchema = z
.object({
runnerConfigPath: filePathSchema.meta({
description: 'Runner config path',
}),
runnerOutputPath: filePathSchema.meta({
description: 'Runner output path',
}),
})
.meta({ title: 'RunnerFilesPaths' });
//# sourceMappingURL=runner-config.js.map