UNPKG

@code-pushup/models

Version:

Model definitions and validators for the Code PushUp CLI

54 lines 1.99 kB
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