forked from commitizen/cz-conventional-changelog
-
Notifications
You must be signed in to change notification settings - Fork 62
/
index.js
113 lines (106 loc) · 3.19 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
'format cjs';
var engine = require('./engine');
var conventionalCommitTypes = require('./types');
var defaults = require('./defaults');
var configLoader = require('commitizen').configLoader;
var 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,
scopes: config.scopes,
jiraMode: getEnvOrConfig(
process.env.CZ_JIRA_MODE,
config.jiraMode,
defaults.jiraMode
),
skipScope: getEnvOrConfig(
process.env.CZ_SKIP_SCOPE,
config.skipScope,
defaults.skipScope
),
skipType: getEnvOrConfig(
process.env.CZ_SKIP_TYPE,
config.skipType,
defaults.skipType
),
skipDescription: getEnvOrConfig(
process.env.CZ_SKIP_DESCRIPTION,
config.skipDescription,
defaults.skipDescription
),
skipBreaking: getEnvOrConfig(
process.env.CZ_SKIP_BREAKING,
config.skipBreaking,
defaults.skipBreaking
),
customScope: getEnvOrConfig(
process.env.CZ_CUSTOM_SCOPE,
config.customScope,
defaults.customScope
),
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
),
jiraPrefix:
process.env.CZ_JIRA_PREFIX || config.jiraPrefix || defaults.jiraPrefix,
jiraLocation:
process.env.CZ_JIRA_LOCATION ||
config.jiraLocation ||
defaults.jiraLocation,
jiraPrepend:
process.env.CZ_JIRA_PREPEND || config.jiraPrepend || defaults.jiraPrepend,
jiraAppend:
process.env.CZ_JIRA_APPEND || config.jiraAppend || defaults.jiraAppend,
exclamationMark: getEnvOrConfig(
process.env.CZ_EXCLAMATION_MARK,
config.exclamationMark,
defaults.exclamationMark
)
};
(function(options) {
try {
var commitlintLoad = require('@commitlint/load');
commitlintLoad().then(function(clConfig) {
if (clConfig.rules) {
var 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);