Model definitions and validators for the Code PushUp CLI.
For a full list of models defined by this package, see the auto-generated Code PushUp models reference.
If you've already installed another @code-pushup/*
package, then you may have already installed @code-pushup/models
indirectly.
If not, you can always install it separately:
npm install --save-dev @code-pushup/models
yarn add --dev @code-pushup/models
pnpm add --save-dev @code-pushup/models
Import the type definitions if using TypeScript:
-
in
code-pushup.config.ts
:import type { CoreConfig } from '@code-pushup/models'; export default { // ... this is type-checked ... } satisfies CoreConfig;
-
in custom plugin:
import type { PluginConfig } from '@code-pushup/models'; export default function myCustomPlugin(): PluginConfig { return { // ... this is type-checked ... }; }
import type { AuditOutput } from '@code-pushup/models'; async function myCustomPluginRunner() { const audits: AuditOutput[] = await collectAudits(); await writeFile(RUNNER_OUTPUT_FILE, JSON.strinfigy(audits)); }
If you need runtime validation, use the underlying Zod schemas:
import { coreConfigSchema } from '@code-pushup/models';
const json = JSON.parse(readFileSync('code-pushup.config.json'));
const config = coreConfigSchema.parse(json); // throws ZodError if invalid