UNPKG

2.03 kBJavaScriptView Raw
1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3 return (mod && mod.__esModule) ? mod : { "default": mod };
4};
5Object.defineProperty(exports, "__esModule", { value: true });
6exports.input = void 0;
7const load_1 = __importDefault(require("@commitlint/load"));
8const format_1 = __importDefault(require("./library/format"));
9const get_prompt_1 = __importDefault(require("./library/get-prompt"));
10const settings_1 = __importDefault(require("./settings"));
11const utils_1 = require("./library/utils");
12const InputCustomPrompt_1 = __importDefault(require("./inquirer/InputCustomPrompt"));
13/**
14 * Get user input by interactive prompt based on
15 * conventional-changelog-lint rules.
16 * @param prompter
17 * @return commit message
18 */
19async function input(prompter) {
20 const { rules } = await (0, load_1.default)();
21 const parts = ['type', 'scope', 'subject', 'body', 'footer'];
22 const headerParts = ['type', 'scope', 'subject'];
23 const headerLengthRule = (0, utils_1.getRules)('header', rules).find((0, utils_1.getHasName)('max-length'));
24 const maxLength = (0, utils_1.getMaxLength)(headerLengthRule);
25 try {
26 const questions = [];
27 prompter.registerPrompt('input-custom', InputCustomPrompt_1.default);
28 for (const input of parts) {
29 const inputSetting = settings_1.default[input];
30 const inputRules = (0, utils_1.getRules)(input, rules);
31 if (headerParts.includes(input) && maxLength < Infinity) {
32 inputSetting.header = {
33 length: maxLength,
34 };
35 }
36 const question = (0, get_prompt_1.default)(input, inputRules, inputSetting);
37 if (question) {
38 questions.push(question);
39 }
40 }
41 const results = await prompter(questions);
42 return (0, format_1.default)(results);
43 }
44 catch (err) {
45 console.error(err);
46 return '';
47 }
48}
49exports.input = input;
50//# sourceMappingURL=input.js.map
\No newline at end of file