@elsikora/commitizen-plugin-commitlint-ai
Version:
AI-powered Commitizen adapter with Commitlint integration
41 lines (37 loc) • 1.52 kB
JavaScript
;
var isPlainObject = require('lodash.isplainobject');
var defaultPromptConfigs = require('./defaultPromptConfigs.js');
const storeKey = Symbol("promptConfig");
const store = {
[storeKey]: defaultPromptConfigs.default,
};
function setPromptConfig(newPromptConfig) {
const { messages, questions, settings } = newPromptConfig;
if (messages) {
const requiredMessageKeys = Object.keys(defaultPromptConfigs.default.messages);
// eslint-disable-next-line @elsikora-unicorn/no-array-for-each
requiredMessageKeys.forEach((key) => {
const message = messages[key];
if (typeof message === "string") {
store[storeKey].messages[key] = message;
}
});
}
if (questions && isPlainObject(questions)) {
store[storeKey].questions = questions;
}
if (settings && isPlainObject(settings)) {
// eslint-disable-next-line @elsikora-sonar/anchor-precedence
if (settings.scopeEnumSeparator && !/^\/|\\|,$/.test(settings.scopeEnumSeparator)) {
console.log(`prompt.settings.scopeEnumSeparator must be one of ',', '\\', '/'.`);
// eslint-disable-next-line @elsikora-unicorn/no-process-exit,elsikora-node/no-process-exit
process.exit(1);
}
store[storeKey].settings = {
...defaultPromptConfigs.default.settings,
...settings,
};
}
}
exports.setPromptConfig = setPromptConfig;
//# sourceMappingURL=prompts.js.map