-
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathcommitlint.config.js
104 lines (99 loc) · 2.64 KB
/
commitlint.config.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
const { getProjects } = require('@nx/devkit');
const { FsTree } = require('nx/src/generators/tree');
/*
* Type-Enums and their documentation as reusable const.
*/
const typeEnumDescription = {
feat: {
description: 'Adding new functionality',
title: 'Feature',
emoji: '🐣',
},
docs: {
description: 'Documentation only changes',
title: 'Documentation',
emoji: '📜',
},
format: {
description:
'Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)',
title: 'Formatting',
emoji: '💎',
},
refactor: {
description: 'A code change that neither fixes a bug nor adds a feature',
title: 'Code Refactoring',
emoji: '♻',
},
perf: {
description: 'A code change that improves performance',
title: 'Performance Improvements',
emoji: '🚀',
},
deprecate: {
description: 'A code change that deprecates APIs or is related to their deprecation',
title: 'Code Deprecations',
emoji: '🕸',
},
test: {
description: 'Adding missing tests or correcting existing tests',
title: 'Tests',
emoji: '🛂',
},
build: {
description: 'Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)',
title: 'Builds',
emoji: '📦',
},
ci: {
description:
'Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)',
title: 'Continuous Integrations',
emoji: '🏭',
},
chore: {
description: "Other changes that don't modify src or test files",
title: 'Chores',
emoji: '⚙',
},
revert: {
description: 'Reverts a previous commit',
title: 'Reverts',
emoji: '🗑',
},
fix: {
description: 'A code change that fixes an error or bug',
title: 'Fix',
emoji: '💉',
},
};
/*
* Scope-Enums defined from constants and Nx projects.
*/
const baseScopes = ['release'];
const scopeEnum = () => {
const tree = new FsTree('.');
const projects = getProjects(tree);
return [...baseScopes, ...projects.keys()];
};
const Configuration = {
/*
* Resolve and load @commitlint/config-conventional from node_modules.
* Referenced packages must be installed
*/
extends: ['@commitlint/config-conventional'],
/*
* Override rules from @commitlint/config-conventional
*/
rules: {
/*
* Customized types matching CU folders
*/
'type-enum': [2, 'always', Object.keys(typeEnumDescription)],
/*
* Scope enums derived from projects registered in `workspace.json`
*/
'scope-enum': [2, 'always', scopeEnum()],
},
};
module.exports = Configuration;