Skip to content

Latest commit

 

History

History
 
 

models

@code-pushup/models

npm downloads dependencies

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.

Setup

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

Usage

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