@code-pushup/models
Version:
Model definitions and validators for the Code PushUp CLI
28 lines • 1.04 kB
JavaScript
import { hasDuplicateStrings } from './utils.js';
export function createCheck(findErrorFn) {
return ctx => {
const error = findErrorFn(ctx.value);
if (error) {
// eslint-disable-next-line functional/immutable-data, no-param-reassign
ctx.issues = [
...ctx.issues,
{
code: 'custom',
message: error.message,
input: ctx.value,
},
];
}
};
}
export function createDuplicatesCheck(keyFn, errorMsgFn) {
return createCheck(items => {
const keys = items.map(keyFn);
const duplicates = hasDuplicateStrings(keys);
return duplicates && { message: errorMsgFn(duplicates) };
});
}
export function createDuplicateSlugsCheck(name) {
return createDuplicatesCheck(({ slug }) => slug, duplicates => `${name} slugs must be unique, but received duplicates: ${duplicates.map(slug => JSON.stringify(slug)).join(', ')}`);
}
//# sourceMappingURL=checks.js.map