UNPKG

@commitlint/cz-commitlint

Version:

Commitizen adapter using the commitlint.config.js

55 lines 2.39 kB
import { getPromptMessages, getPromptQuestions } from '../store/prompts.js'; import { getRule } from '../store/rules.js'; import getCaseFn from '../utils/case-fn.js'; import getFullStopFn from '../utils/full-stop-fn.js'; import { enumRuleIsActive, getEnumList, getMaxLength, getMinLength, ruleIsActive, ruleIsApplicable, ruleIsDisabled, } from '../utils/rules.js'; export default function (rulePrefix) { const questions = getPromptQuestions(); const questionSettings = questions[rulePrefix]; const emptyRule = getRule(rulePrefix, 'empty'); const mustBeEmpty = emptyRule && ruleIsActive(emptyRule) && ruleIsApplicable(emptyRule); if (mustBeEmpty) { return null; } const canBeSkip = !emptyRule || ruleIsDisabled(emptyRule); const enumRule = getRule(rulePrefix, 'enum'); const enumRuleList = enumRule && enumRuleIsActive(enumRule) ? getEnumList(enumRule) : null; let enumList; if (enumRuleList) { const enumDescriptions = questionSettings?.['enum']; if (enumDescriptions) { const enumNames = Object.keys(enumDescriptions); const longest = Math.max(...enumRuleList.map((enumName) => enumName.length)); // TODO emoji + title enumList = enumRuleList .sort((a, b) => enumNames.indexOf(a) - enumNames.indexOf(b)) .map((enumName) => { const enumDescription = enumDescriptions[enumName]?.description; if (enumDescription) { return { name: `${enumName}:`.padEnd(longest + 4) + enumDescription, value: enumName, short: enumName, }; } else { return enumName; } }); } else { enumList = [...enumRuleList]; } } return { skip: canBeSkip, enumList, title: questionSettings?.['description'] ?? `${rulePrefix}:`, caseFn: getCaseFn(getRule(rulePrefix, 'case')), fullStopFn: getFullStopFn(getRule(rulePrefix, 'full-stop')), minLength: getMinLength(getRule(rulePrefix, 'min-length')), maxLength: getMaxLength(getRule(rulePrefix, 'max-length')), messages: getPromptMessages(), }; } //# sourceMappingURL=getRuleQuestionConfig.js.map