UNPKG

git-commit-guide

Version:

Commitizen adapter following the conventional-changelog format and also asking for JIRA issue with Smart Commits.

63 lines (55 loc) 2.19 kB
'format cjs'; let engine = require('./engine'); let conventionalCommitTypes = require('./types'); let defaults = require('./defaults'); let configLoader = require('commitizen').configLoader; let config = configLoader.load(); function getEnvOrConfig(env, configVar, defaultValue) { const isEnvSet = Boolean(env); const isConfigSet = typeof configVar === 'boolean'; if (isEnvSet) return env === 'true'; if (isConfigSet) return configVar; return defaultValue; } const options = { types: conventionalCommitTypes, jiraMode: getEnvOrConfig(process.env.CZ_JIRA_MODE, config.jiraMode, defaults.jiraMode), skipScope: getEnvOrConfig(process.env.CZ_SKIP_SCOPE, config.skipScope, defaults.skipScope), defaultType: process.env.CZ_TYPE || config.defaultType, defaultScope: process.env.CZ_SCOPE || config.defaultScope, defaultSubject: process.env.CZ_SUBJECT || config.defaultSubject, defaultBody: process.env.CZ_BODY || config.defaultBody, defaultIssues: process.env.CZ_ISSUES || config.defaultIssues, maxHeaderWidth: (process.env.CZ_MAX_HEADER_WIDTH && parseInt(process.env.CZ_MAX_HEADER_WIDTH)) || config.maxHeaderWidth || defaults.maxHeaderWidth, minHeaderWidth: (process.env.CZ_MIN_HEADER_WIDTH && parseInt(process.env.CZ_MIN_HEADER_WIDTH)) || config.minHeaderWidth || defaults.minHeaderWidth, maxLineWidth: (process.env.CZ_MAX_LINE_WIDTH && parseInt(process.env.CZ_MAX_LINE_WIDTH)) || config.maxLineWidth || defaults.maxLineWidth, jiraOptional: getEnvOrConfig(process.env.CZ_JIRA_OPTIONAL, config.jiraOptional, defaults.jiraOptional) }; (function(options) { try { let commitlintLoad = require('@commitlint/load'); commitlintLoad().then(function(clConfig) { if (clConfig.rules) { let maxHeaderLengthRule = clConfig.rules['header-max-length']; if ( typeof maxHeaderLengthRule === 'object' && maxHeaderLengthRule.length >= 3 && !process.env.CZ_MAX_HEADER_WIDTH && !config.maxHeaderWidth ) { options.maxHeaderWidth = maxHeaderLengthRule[2]; } } }); } catch (err) {} })(options); module.exports = engine(options);