@healthmatch/jira-prepare-commit-msg
Version:
Husky Git hook to add JIRA ticket ID into the commit message
51 lines (50 loc) • 1.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.loadConfig = void 0;
const cosmiconfig_1 = require("cosmiconfig");
const log_1 = require("./log");
const defaultConfig = {
messagePattern: '[$J]\n$M',
jiraTicketPattern: '([A-Z]+-\\d+)',
commentChar: '#',
isConventionalCommit: false,
useGitRoot: true,
};
function resolveConfig(configPath) {
try {
return require.resolve(configPath);
}
catch (_a) {
return configPath;
}
}
async function loadConfig(configPath) {
try {
const explorer = cosmiconfig_1.cosmiconfig('jira-prepare-commit-msg', {
searchPlaces: [
'package.json',
'.jirapreparecommitmsgrc',
'.jirapreparecommitmsgrc.json',
'.jirapreparecommitmsgrc.yaml',
'.jirapreparecommitmsgrc.yml',
'jira-prepare-commit-msg.config.js',
],
});
const config = configPath ? await explorer.load(resolveConfig(configPath)) : await explorer.search();
log_1.debug(`Loaded config: ${JSON.stringify(config)}`);
if (config && !config.isEmpty) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const result = Object.assign(Object.assign({}, defaultConfig), config.config);
log_1.debug(`Used config: ${JSON.stringify(result)}`);
return result;
}
}
catch (err) {
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
log_1.error(`Loading configuration failed with error: ${err}`);
}
const result = Object.assign({}, defaultConfig);
log_1.debug(`Used config: ${JSON.stringify(result)}`);
return result;
}
exports.loadConfig = loadConfig;