@elsikora/setup-wizard
Version:
Setup Wizard - CLI scaffolding utility
60 lines (57 loc) • 3.06 kB
JavaScript
import { ECommitlintMode } from '../../../domain/enum/commitlint-mode.enum.js';
import { ECommitlintProvider } from '../../../domain/enum/commitlint-provider.enum.js';
import { ECommitlintTicketMissingBranchLintBehavior } from '../../../domain/enum/commitlint-ticket-missing-branch-lint-behavior.enum.js';
import { ECommitlintTicketNormalization } from '../../../domain/enum/commitlint-ticket-normalization.enum.js';
import { ECommitlintTicketSource } from '../../../domain/enum/commitlint-ticket-source.enum.js';
const DEFAULT_MAX_RETRIES = 3;
const DEFAULT_VALIDATION_MAX_RETRIES = 3;
const COMMITLINT_AI_DEFAULTS = {
maxRetries: DEFAULT_MAX_RETRIES,
mode: ECommitlintMode.AUTO,
model: "claude-opus-4-5",
provider: ECommitlintProvider.ANTHROPIC,
ticket: {
missingBranchLintBehavior: ECommitlintTicketMissingBranchLintBehavior.ERROR,
normalization: ECommitlintTicketNormalization.UPPER,
pattern: "[a-z]{2,}-[0-9]+",
patternFlags: "i",
source: ECommitlintTicketSource.BRANCH_LINT,
},
validationMaxRetries: DEFAULT_VALIDATION_MAX_RETRIES,
};
/**
* Generates commitlint-ai plugin configuration.
* The template mirrors current plugin options, including ticket extraction settings.
*/
const COMMITLINT_AI_CONFIG = {
template: (config) => {
const mode = config?.mode ?? COMMITLINT_AI_DEFAULTS.mode;
const model = config?.model ?? COMMITLINT_AI_DEFAULTS.model;
const provider = config?.provider ?? COMMITLINT_AI_DEFAULTS.provider;
const maxRetries = typeof config?.maxRetries === "number" ? config.maxRetries : COMMITLINT_AI_DEFAULTS.maxRetries;
const validationMaxRetries = typeof config?.validationMaxRetries === "number" ? config.validationMaxRetries : COMMITLINT_AI_DEFAULTS.validationMaxRetries;
const ticketConfig = config?.ticket;
const ticketSource = ticketConfig?.source ?? COMMITLINT_AI_DEFAULTS.ticket.source;
const ticketPattern = ticketConfig?.pattern ?? COMMITLINT_AI_DEFAULTS.ticket.pattern;
const ticketPatternFlags = ticketConfig?.patternFlags ?? COMMITLINT_AI_DEFAULTS.ticket.patternFlags;
const ticketNormalization = ticketConfig?.normalization ?? COMMITLINT_AI_DEFAULTS.ticket.normalization;
const ticketMissingBranchLintBehavior = ticketConfig?.missingBranchLintBehavior ?? COMMITLINT_AI_DEFAULTS.ticket.missingBranchLintBehavior;
return `export default {
maxRetries: ${maxRetries},
mode: ${JSON.stringify(mode)},
model: ${JSON.stringify(model)},
provider: ${JSON.stringify(provider)},
ticket: {
source: ${JSON.stringify(ticketSource)},
pattern: ${JSON.stringify(ticketPattern)},
patternFlags: ${JSON.stringify(ticketPatternFlags)},
normalization: ${JSON.stringify(ticketNormalization)},
missingBranchLintBehavior: ${JSON.stringify(ticketMissingBranchLintBehavior)},
},
validationMaxRetries: ${validationMaxRetries},
};`;
},
};
export { COMMITLINT_AI_CONFIG, COMMITLINT_AI_DEFAULTS };
//# sourceMappingURL=ai-config.constant.js.map