UNPKG

@nuofe/ndk-commit-tool

Version:
90 lines (77 loc) 2.57 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _ndkLogger = _interopRequireDefault(require("@nuofe/ndk-logger")); var _inquirer = _interopRequireDefault(require("inquirer")); const { prompt, Separator } = _inquirer.default; const debug = _ndkLogger.default.debug('ndk-commit-tool:message:generate'); const COMMIT_TYPES = { feat: '添加新功能(需要升级版本号 y 位)', break: '变更功能(需要升级版本号 x 位)', fix: '修复缺陷(需要升级版本号 z 位)', docs: '增加或修改文档', style: '调整代码格式', refactor: '重构代码(不会对现有功能产生影响)', perf: '优化性能(不会对现有功能产生影响)', test: '增加或修改测试', chore: '调整构建过程或辅助工具' }; const getCommitType = async () => { const choices = Object.entries(COMMIT_TYPES).map(([key, value]) => ({ name: `${key}: ${value}`, value: key })); const { commitType } = await prompt({ type: 'list', name: 'commitType', message: '请选择提交类型:', choices: choices.concat(new Separator()) }); return commitType; }; const getCommitMessage = async () => { const { commitMessage } = await prompt({ type: 'input', name: 'commitMessage', message: '请输入5个字符以上的提交说明:', validate: value => !value || value.trim().length < 5 ? '提交说明不能少于5个字!' : true }); return commitMessage ? commitMessage.trim() : ''; }; const getIssues = async () => { const { issues } = await prompt({ type: 'input', name: 'issues', message: '请输入涉及的 issues (多个用逗号分隔,如: #123, #456 ):', filter: value => value ? value.split(',').map(item => item.trim()).join(', ') : '', validate: value => { if (value) { const mistake = value.split(',').filter(item => !/^#\d+$/.test(item.trim())); return mistake && mistake.length > 0 ? '输入的内容不正确!' : true; } return true; } }); return issues ? issues.trim() : ''; }; var _default = async () => { const commitType = await getCommitType(); const commitMessage = await getCommitMessage(); const issues = await getIssues(); const message = `${commitType}: ${commitMessage}${issues ? ` ${issues}` : ''}`; debug('message: %s', message); return message; }; exports.default = _default;