@code-pushup/models
Version:
Model definitions and validators for the Code PushUp CLI
25 lines • 1.47 kB
JavaScript
import { z } from 'zod';
import { createDuplicateSlugsCheck, createDuplicatesCheck, } from './implementation/checks.js';
import { metaSchema, scorableSchema, weightedRefSchema, } from './implementation/schemas.js';
import { formatSlugsList } from './implementation/utils.js';
export const groupRefSchema = weightedRefSchema('Weighted reference to a group', "Reference slug to a group within this plugin (e.g. 'max-lines')").meta({ title: 'GroupRef' });
export const groupMetaSchema = metaSchema({
titleDescription: 'Descriptive name for the group',
descriptionDescription: 'Description of the group (markdown)',
docsUrlDescription: 'Group documentation site',
description: 'Group metadata',
isSkippedDescription: 'Indicates whether the group is skipped',
}).meta({ title: 'GroupMeta' });
export const groupSchema = scorableSchema('A group aggregates a set of audits into a single score which can be referenced from a category. ' +
'E.g. the group slug "performance" groups audits and can be referenced in a category', groupRefSchema, createDuplicatesCheck(({ slug }) => slug, duplicates => `Group has duplicate references to audits: ${formatSlugsList(duplicates)}`))
.merge(groupMetaSchema)
.meta({ title: 'Group' });
export const groupsSchema = z
.array(groupSchema)
.check(createDuplicateSlugsCheck('Group'))
.optional()
.meta({
title: 'Groups',
description: 'List of groups',
});
//# sourceMappingURL=group.js.map