UNPKG

2.89 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.getMaxLength = exports.getRules = exports.enumRuleIsActive = exports.ruleIsNotApplicable = exports.ruleIsApplicable = exports.ruleIsActive = exports.getHasName = exports.getRulePrefix = exports.getRuleName = void 0;
4const types_1 = require("@commitlint/types");
5/**
6 * Get name for a given rule id
7 * @param id of the rule
8 * @return name of the rule
9 */
10function getRuleName(id) {
11 const fragments = id.split('-');
12 return fragments.length > 1 ? fragments.slice(1).join('-') : fragments[0];
13}
14exports.getRuleName = getRuleName;
15/**
16 * Get prefix for a given rule id
17 * @param id of the rule
18 * @return prefix of the rule
19 */
20function getRulePrefix(id) {
21 const fragments = id.split('-');
22 return fragments.length > 1 ? fragments[0] : null;
23}
24exports.getRulePrefix = getRulePrefix;
25/**
26 * Get a predicate matching rule definitions with a given name
27 */
28function getHasName(name) {
29 return (rule) => getRuleName(rule[0]) === name;
30}
31exports.getHasName = getHasName;
32/**
33 * Check if a rule definition is active
34 * @param rule to check
35 * @return if the rule definition is active
36 */
37function ruleIsActive(rule) {
38 const [, value] = rule;
39 if (value && Array.isArray(value)) {
40 return value[0] > types_1.RuleConfigSeverity.Disabled;
41 }
42 return false;
43}
44exports.ruleIsActive = ruleIsActive;
45/**
46 * Check if a rule definition is applicable
47 * @param rule to check
48 * @return if the rule definition is applicable
49 */
50function ruleIsApplicable(rule) {
51 const [, value] = rule;
52 if (value && Array.isArray(value)) {
53 return value[1] === 'always';
54 }
55 return false;
56}
57exports.ruleIsApplicable = ruleIsApplicable;
58/**
59 * Check if a rule definition is applicable
60 * @param rule to check
61 * @return if the rule definition is applicable
62 */
63function ruleIsNotApplicable(rule) {
64 const [, value] = rule;
65 if (value && Array.isArray(value)) {
66 return value[1] === 'never';
67 }
68 return false;
69}
70exports.ruleIsNotApplicable = ruleIsNotApplicable;
71function enumRuleIsActive(rule) {
72 return (ruleIsActive(rule) &&
73 ruleIsApplicable(rule) &&
74 Array.isArray(rule[1][2]) &&
75 rule[1][2].length > 0);
76}
77exports.enumRuleIsActive = enumRuleIsActive;
78/**
79 * Get rules for a given prefix
80 * @param prefix to search in rule names
81 * @param rules rules to search in
82 * @return rules matching the prefix search
83 */
84function getRules(prefix, rules) {
85 return Object.entries(rules).filter((rule) => getRulePrefix(rule[0]) === prefix);
86}
87exports.getRules = getRules;
88function getMaxLength(rule) {
89 if (rule &&
90 ruleIsActive(rule) &&
91 ruleIsApplicable(rule) &&
92 typeof rule[1][2] === 'number') {
93 return rule[1][2];
94 }
95 return Infinity;
96}
97exports.getMaxLength = getMaxLength;
98//# sourceMappingURL=utils.js.map
\No newline at end of file