UNPKG

@elora-cloud/elora-cli

Version:
54 lines (47 loc) 1.51 kB
import { readFileSync } from 'node:fs'; import process from 'node:process'; import { isMonorepoProject, isMonorepo } from '../../common/index.mjs'; import 'chalk'; import consola from 'consola'; import 'ora'; import '../../common/constant.mjs'; // eslint-disable-next-line regexp/no-unused-capturing-group const commitRE = /^(revert: )?(fix|feat|docs|perf|test|types|style|build|chore|release|refactor|breaking change)(\(.+\))?: .{1,50}/; const mergeRE = /Merge /; const monorepoExample = ` 例子如下: - fix(cli): 子项目cli的changelog - feat(ui): 子项目UI库的changelog - fix: 全局的changelog `; const baseExample = ` 例子如下: - fix: 这是提交的项目信息 - feat: 子项目UI库的changelog `; async function commitLint(gitParams) { await isMonorepoProject(); const commitMsg = readFileSync(gitParams, 'utf-8').trim(); if (!commitRE.test(commitMsg) && !mergeRE.test(commitMsg)) { const example = isMonorepo() ? monorepoExample : baseExample; consola.error(`提交代码的格式不正确: "${commitMsg}". 您需要按照下面的格式进行提交您本地的代码. ${example} 支持提交的类型: - fix:修复 bug - feat:新特性或者新功能 - docs:文档 - perf:性能 - test:测试 - types:类型 - build:构建 - chore:杂项 - release:发布 - refactor:重构 - breaking change:破坏性变更 - Merge branch 'foo' into 'bar' `); process.exit(1); } } export { commitLint };