@code-pushup/models
Version:
Model definitions and validators for the Code PushUp CLI
40 lines • 1.76 kB
JavaScript
import { z } from 'zod';
import { auditOutputSchema } from './audit-output.js';
import { auditSchema } from './audit.js';
import { categoryConfigSchema } from './category-config.js';
import { commitSchema } from './commit.js';
import { groupSchema } from './group.js';
import { createCheck } from './implementation/checks.js';
import { executionMetaSchema, packageVersionSchema, } from './implementation/schemas.js';
import { findMissingSlugsInCategoryRefs } from './implementation/utils.js';
import { findMissingSlugsInGroupRefs, pluginMetaSchema, } from './plugin-config.js';
export const auditReportSchema = auditSchema.merge(auditOutputSchema);
export const pluginReportSchema = pluginMetaSchema
.merge(executionMetaSchema({
descriptionDate: 'Start date and time of plugin run',
descriptionDuration: 'Duration of the plugin run in ms',
}))
.merge(z.object({
audits: z.array(auditReportSchema).min(1),
groups: z.array(groupSchema).optional(),
}))
.check(createCheck(findMissingSlugsInGroupRefs));
export const reportSchema = packageVersionSchema({
versionDescription: 'NPM version of the CLI',
required: true,
})
.merge(executionMetaSchema({
descriptionDate: 'Start date and time of the collect run',
descriptionDuration: 'Duration of the collect run in ms',
}))
.merge(z.object({
plugins: z.array(pluginReportSchema).min(1),
categories: z.array(categoryConfigSchema).optional(),
commit: commitSchema
.describe('Git commit for which report was collected')
.nullable(),
label: z.string().optional().describe('Label (e.g. project name)'),
}))
.check(createCheck(findMissingSlugsInCategoryRefs))
.describe('Collect output data');
//# sourceMappingURL=report.js.map