validate-conventional-commit
Version:
Smallest simplest conventional commit validator to use with eg Husky
26 lines (19 loc) • 630 B
JavaScript
/* eslint-disable no-console */
let commitMessage = '';
if (process.stdin.isTTY) {
console.error('No input was sent to commit message validator');
process.exit(1);
}
for await (const item of process.stdin) {
commitMessage += item;
}
if (commitMessage.trim() === '') {
console.error('Empty commit message');
process.exit(1);
}
const conventionalCommitMessage = /^(?<type>\w+)(?:\((?<scope>\w+)\))?(?<breaking>!?): (?<description>[^\n]+)/;
if (!conventionalCommitMessage.test(commitMessage)) {
console.error('Invalid commit message, does not follow conventional commits');
process.exit(1);
}