@elsikora/commitizen-plugin-commitlint-ai
Version:
AI-powered Commitizen adapter with Commitlint integration
39 lines (36 loc) • 1.46 kB
JavaScript
import isPlainObject from 'lodash.isplainobject';
import defaultPromptConfigs from './defaultPromptConfigs.js';
const storeKey = Symbol("promptConfig");
const store = {
[storeKey]: defaultPromptConfigs,
};
function setPromptConfig(newPromptConfig) {
const { messages, questions, settings } = newPromptConfig;
if (messages) {
const requiredMessageKeys = Object.keys(defaultPromptConfigs.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.settings,
...settings,
};
}
}
export { setPromptConfig };
//# sourceMappingURL=prompts.js.map