|
|
|
|
@ -6,12 +6,8 @@ import { getPackagesSync } from '@vben/node-utils';
|
|
|
|
|
|
|
|
|
|
const { packages } = getPackagesSync();
|
|
|
|
|
|
|
|
|
|
const pkgs = packages.map((pkg) => {
|
|
|
|
|
return pkg.packageJson.name?.replace('@vben-core/', '');
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const scopes = [
|
|
|
|
|
...pkgs,
|
|
|
|
|
const allowedScopes = [
|
|
|
|
|
...packages.map((pkg) => pkg.packageJson.name),
|
|
|
|
|
'project',
|
|
|
|
|
'style',
|
|
|
|
|
'lint',
|
|
|
|
|
@ -33,6 +29,7 @@ const scopeComplete = execSync('git status --porcelain || true')
|
|
|
|
|
|
|
|
|
|
const userConfig: UserConfig = {
|
|
|
|
|
extends: ['@commitlint/config-conventional'],
|
|
|
|
|
plugins: ['commitlint-plugin-function-rules'],
|
|
|
|
|
prompt: {
|
|
|
|
|
/** @use `pnpm commit :f` */
|
|
|
|
|
alias: {
|
|
|
|
|
@ -103,15 +100,27 @@ const userConfig: UserConfig = {
|
|
|
|
|
*/
|
|
|
|
|
'footer-leading-blank': [1, 'always'],
|
|
|
|
|
/**
|
|
|
|
|
* type[scope]: [function] description [No more than 108 characters]
|
|
|
|
|
* type[scope]: [function] description
|
|
|
|
|
* ^^^^^
|
|
|
|
|
*/
|
|
|
|
|
'header-max-length': [2, 'always', 108],
|
|
|
|
|
'function-rules/scope-enum': [
|
|
|
|
|
2, // level: error
|
|
|
|
|
'always',
|
|
|
|
|
(parsed: { scope: string }) => {
|
|
|
|
|
if (!parsed.scope || allowedScopes.includes(parsed.scope)) {
|
|
|
|
|
return [true];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return [false, `scope must be one of ${allowedScopes.join(', ')}`];
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
/**
|
|
|
|
|
* type[scope]: [function] description
|
|
|
|
|
* type[scope]: [function] description [No more than 108 characters]
|
|
|
|
|
* ^^^^^
|
|
|
|
|
*/
|
|
|
|
|
'scope-enum': [2, 'always', scopes],
|
|
|
|
|
'header-max-length': [2, 'always', 108],
|
|
|
|
|
|
|
|
|
|
'scope-enum': [0],
|
|
|
|
|
'subject-case': [0],
|
|
|
|
|
'subject-empty': [2, 'never'],
|
|
|
|
|
'type-empty': [2, 'never'],
|
|
|
|
|
|