Skip to content

Commit 9ac091e

Browse files
committed
docs: rules
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
1 parent 5bb8717 commit 9ac091e

File tree

2 files changed

+250
-4
lines changed

2 files changed

+250
-4
lines changed

.eslintrc.base.cjs

+1
Original file line numberDiff line numberDiff line change
@@ -1019,6 +1019,7 @@ const config = {
10191019
'@typescript-eslint/no-unsafe-call': 0,
10201020
'@typescript-eslint/no-unsafe-member-access': 0,
10211021
'@typescript-eslint/no-unsafe-return': 0,
1022+
'@typescript-eslint/no-unused-expressions': 0,
10221023
'@typescript-eslint/non-nullable-type-assertion-style': 0,
10231024
'@typescript-eslint/prefer-includes': 0,
10241025
'@typescript-eslint/prefer-nullish-coalescing': 0,

README.md

+249-4
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,31 @@ Shareable [`commitlint`][1] config enforcing [conventional commits][2]
1818
- [Install](#install)
1919
- [Use](#use)
2020
- [Customizing scopes and types](#customizing-scopes-and-types)
21+
- [Rules](#rules)
22+
- [Problems](#problems)
23+
- [`body-full-stop`](#body-full-stop)
24+
- [`body-leading-blank`](#body-leading-blank)
25+
- [`body-max-length`](#body-max-length)
26+
- [`body-max-line-length`](#body-max-line-length)
27+
- [`footer-leading-blank`](#footer-leading-blank)
28+
- [`footer-max-length`](#footer-max-length)
29+
- [`footer-max-line-length`](#footer-max-line-length)
30+
- [`header-full-stop`](#header-full-stop)
31+
- [`header-max-length`](#header-max-length)
32+
- [`scope-case`](#scope-case)
33+
- [`scope-enum`](#scope-enum)
34+
- [`scope-max-length`](#scope-max-length)
35+
- [`scope-min-length`](#scope-min-length)
36+
- [`signed-off-by`](#signed-off-by)
37+
- [`subject-empty`](#subject-empty)
38+
- [`subject-full-stop`](#subject-full-stop)
39+
- [`subject-min-length`](#subject-min-length)
40+
- [`trailer-exists`](#trailer-exists)
41+
- [`type-case`](#type-case)
42+
- [`type-empty`](#type-empty)
43+
- [`type-enum`](#type-enum)
44+
- [`type-max-length`](#type-max-length)
45+
- [`type-min-length`](#type-min-length)
2146
- [API](#api)
2247
- [`config`](#config)
2348
- `defaultIgnores`
@@ -117,6 +142,225 @@ You may need to set [`TS_NODE_PROJECT`][10] if running `commitlint` from the com
117142

118143
See [`docs/examples/commitlint.config.cjs`](docs/examples/commitlint.config.cjs) for an example config written in pure CommonJS.
119144

145+
## Rules
146+
147+
Rules **not** documented below are disabled by default. Consult the [rules reference][11] for a list of all rules.
148+
149+
### Problems
150+
151+
The following rules are considered problems for `@flex-development/commitlint-config` and will yield a non-zero exit
152+
code when not met.
153+
154+
#### `body-full-stop`
155+
156+
- **condition**: `body` ends with `value`
157+
- **rule**: `never`
158+
- **value**:
159+
160+
```ts
161+
'.'
162+
```
163+
164+
#### `body-leading-blank`
165+
166+
- **condition**: `body` begins with blank line
167+
- **rule**: `always`
168+
169+
#### `body-max-length`
170+
171+
- **condition**: `body` has `value` or less characters
172+
- **rule**: `always`
173+
- **value**:
174+
175+
```ts
176+
Number.MAX_SAFE_INTEGER
177+
```
178+
179+
#### `body-max-line-length`
180+
181+
- **condition**: `body` lines has `value` or less characters
182+
- **rule**: `always`
183+
- **value**:
184+
185+
```ts
186+
2050
187+
```
188+
189+
#### `footer-leading-blank`
190+
191+
- **condition**: `footer` begins with blank line
192+
- **rule**: `always`
193+
194+
#### `footer-max-length`
195+
196+
- **condition**: `footer` has `value` or less characters
197+
- **rule**: `always`
198+
- **value**:
199+
200+
```ts
201+
Number.MAX_SAFE_INTEGER
202+
```
203+
204+
#### `footer-max-line-length`
205+
206+
- **condition**: `footer` lines has `value` or less characters
207+
- **rule**: `always`
208+
- **value**:
209+
210+
```ts
211+
2050
212+
```
213+
214+
#### `header-full-stop`
215+
216+
- **condition**: `header` ends with `value`
217+
- **rule**: `never`
218+
- **value**:
219+
220+
```ts
221+
'.'
222+
```
223+
224+
#### `header-max-length`
225+
226+
- **condition**: `header` has `value` or less characters
227+
- **rule**: `always`
228+
- **value**:
229+
230+
```ts
231+
100
232+
```
233+
234+
#### `scope-case`
235+
236+
- **condition**: `scope` is in case that is in `value`
237+
- **rule**: `always`
238+
- **value**:
239+
240+
```ts
241+
['kebab-case', 'lower-case']
242+
```
243+
244+
#### `scope-enum`
245+
246+
- **condition**: `scope` is found in `value`
247+
- **rule**: `always`
248+
- **value**:
249+
250+
```ts
251+
scopes()
252+
```
253+
254+
#### `scope-max-length`
255+
256+
- **condition**: `scope` has `value` or less characters
257+
- **rule**: `always`
258+
- **value**:
259+
260+
```ts
261+
max(scopes())
262+
```
263+
264+
#### `scope-min-length`
265+
266+
- **condition**: `scope` has `value` or more characters
267+
- **rule**: `always`
268+
- **value**:
269+
270+
```ts
271+
min(scopes())
272+
```
273+
274+
#### `signed-off-by`
275+
276+
- **condition**: `message` has `value`
277+
- **rule**: `always`
278+
- **value**:
279+
280+
```ts
281+
'Signed-off-by:'
282+
```
283+
284+
#### `subject-empty`
285+
286+
- **condition**: `subject` is empty
287+
- **rule**: `never`
288+
289+
#### `subject-full-stop`
290+
291+
- **condition**: `subject` ends with `value`
292+
- **rule**: `never`
293+
- **value**:
294+
295+
```ts
296+
'.'
297+
```
298+
299+
#### `subject-min-length`
300+
301+
- **condition**: `subject` has `value` or more characters
302+
- **rule**: `always`
303+
- **value**:
304+
305+
```ts
306+
2
307+
```
308+
309+
#### `trailer-exists`
310+
311+
- **condition**: `message` has trailer `value`
312+
- **rule**: `always`
313+
- **value**:
314+
315+
```ts
316+
'Signed-off-by:'
317+
```
318+
319+
#### `type-case`
320+
321+
- **description**: `type` is in case `value`
322+
- **rule**: `always`
323+
- **value**:
324+
325+
```ts
326+
'lower-case'
327+
```
328+
329+
#### `type-empty`
330+
331+
- **condition**: `type` is empty
332+
- **rule**: `never`
333+
334+
#### `type-enum`
335+
336+
- **condition**: `type` is found in `value`
337+
- **rule**: `always`
338+
- **value**:
339+
340+
```ts
341+
types()
342+
```
343+
344+
#### `type-max-length`
345+
346+
- **condition**: `type` has `value` or less characters
347+
- **rule**: `always`
348+
- **value**:
349+
350+
```ts
351+
max(types)
352+
```
353+
354+
#### `type-min-length`
355+
356+
- **condition**: `type` has `value` or more characters
357+
- **rule**: `always`
358+
- **value**:
359+
360+
```ts
361+
min(types())
362+
```
363+
120364
## API
121365

122366
This package exports the following identifiers:
@@ -152,7 +396,7 @@ Properties:
152396
- `prompt`
153397
- `rules`
154398

155-
See the [configuration reference][11] for more details.
399+
See the [configuration reference][12] for more details.
156400

157401
### Utilities
158402

@@ -222,7 +466,7 @@ Returns an array containing valid commit types.
222466
223467
## Types
224468

225-
This package is fully typed with [TypeScript][12].
469+
This package is fully typed with [TypeScript][13].
226470

227471
### Enums
228472

@@ -264,5 +508,6 @@ See [`CONTRIBUTING.md`](CONTRIBUTING.md).
264508
[8]: https://commitlint.js.org/#/reference-rules?id=scope-enum
265509
[9]: https://commitlint.js.org/#/reference-rules?id=type-enum
266510
[10]: https://typestrong.org/ts-node/docs/options#project
267-
[11]: https://commitlint.js.org/#/reference-configuration
268-
[12]: https://www.typescriptlang.org
511+
[11]: https://commitlint.js.org/#/reference-rules
512+
[12]: https://commitlint.js.org/#/reference-configuration
513+
[13]: https://www.typescriptlang.org

0 commit comments

Comments
 (0)