Check object
Properties
message
Required
A string that will be shown as the default title for the check when running the CLI and Commonality Studio.
validate
Required
The 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.
Parameters
Returns
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.
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.
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;
fix
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.
Parameters
import type { Check } from 'commonality';
import { json } from 'commonality';
export default {
return {
//...
fix: async (ctx) => {
const tsConfig = await json(ctx.package.path, 'tsconfig.json').get();
if (!tsConfig) {
return;
}
await tsConfig.merge({ extends: base });
},
};
} satisfies Check;
level
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"
.
Was this page helpful?