RequiredThe validate function is used to set the check’s status to pass, warn, or fail.The validate function will be run against all packages matching a selector.This function can be asynchronous.
If the function returns true, the check will be set to pass.
If the function returns any other value, the check will be set to warn or fail based on the configured level.
Copy
import type { Check } from 'commonality';export default { message: 'Package has a CODEOWNER', validate: (ctx) => Boolean(ctx.codeowners.length),} satisfies Check;
Returning a message object allows you to modify the check’s default message and provide additional context about the status of the check.
Copy
import type { Check } from 'commonality';import { json, diff } from 'commonality';export default { message: 'Package has internal config', validate: (ctx) => { // ...validation logic if (fileExists) { return { // This message will override the default message message: 'File "internal-config.json" does not exist', // This path will be shown directly underneath the message for quicker debugging path: ctx.package.path, // This will be shown as a suggestion for how to fix the issue suggestion: diff(source, expected) }; } },} satisfies Check;
A check’s fix function will only run on packages that where the check’s validate function has returned a falsey value. This function should update packages so that they pass the check’s validate function.This function can be asynchronous.
We provide helper utilities like json and text to make it easier to read and write to files in fix functions.
A string that can be set to “warning” or “error”.If set to "error", the CLI will exit with a non-zero exit code if this check is ever invalid. Default is "warning".