@code-pushup/models
Version:
Model definitions and validators for the Code PushUp CLI
34 lines • 1.61 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)]),
}));
export const runnerArgsSchema = z
.object({
persist: persistConfigSchema
.required()
.describe('Persist config with defaults applied'),
})
.describe('Arguments passed to runner');
export const runnerConfigSchema = z
.object({
command: z.string().describe('Shell command to execute'),
args: z.array(z.string()).describe('Command arguments').optional(),
outputFile: filePathSchema.describe('Runner output path'),
outputTransform: outputTransformSchema.optional(),
configFile: filePathSchema.describe('Runner config path').optional(),
})
.describe('How to execute runner using shell script');
export const runnerFunctionSchema = convertAsyncZodFunctionToSchema(z.function({
input: [runnerArgsSchema],
output: z.union([auditOutputsSchema, z.promise(auditOutputsSchema)]),
})).describe('Callback function for async runner execution in JS/TS');
export const runnerFilesPathsSchema = z.object({
runnerConfigPath: filePathSchema.describe('Runner config path'),
runnerOutputPath: filePathSchema.describe('Runner output path'),
});
//# sourceMappingURL=runner-config.js.map