@@ -6,6 +6,10 @@ let bodyMaxLineLength = 64;
6
6
let headerMaxLineLength = 50 ;
7
7
let footerMaxLineLength = 150 ;
8
8
9
+ function notNullStringErrorMessage ( stringType : string ) : string {
10
+ return `This is unexpected because ${ stringType } should never be null` ;
11
+ }
12
+
9
13
module . exports = {
10
14
parserPreset : "conventional-changelog-conventionalcommits" ,
11
15
rules : {
@@ -59,20 +63,35 @@ module.exports = {
59
63
{
60
64
rules : {
61
65
"body-prose" : ( { raw } : { raw : any } ) => {
62
- let rawStr = Helpers . convertAnyToString ( raw , "raw" ) . trim ( ) ;
66
+ let rawUncastedStr = Helpers . convertAnyToString ( raw , "raw" ) ;
67
+ let rawStr = Helpers . assertNotNull (
68
+ rawUncastedStr ,
69
+ notNullStringErrorMessage ( "raw" )
70
+ ) . trim ( ) ;
71
+
63
72
return Plugins . bodyProse ( rawStr ) ;
64
73
} ,
65
74
66
75
"commit-hash-alone" : ( { raw } : { raw : any } ) => {
67
- let rawStr = Helpers . convertAnyToString ( raw , "raw" ) ;
76
+ let rawUncastedStr = Helpers . convertAnyToString ( raw , "raw" ) ;
77
+ let rawStr = Helpers . assertNotNull (
78
+ rawUncastedStr ,
79
+ notNullStringErrorMessage ( "raw" )
80
+ ) ;
81
+
68
82
return Plugins . commitHashAlone ( rawStr ) ;
69
83
} ,
70
84
71
85
"empty-wip" : ( { header } : { header : any } ) => {
72
- let headerStr = Helpers . convertAnyToString (
86
+ let headerUncastedStr = Helpers . convertAnyToString (
73
87
header ,
74
88
"header"
75
89
) ;
90
+ let headerStr = Helpers . assertNotNull (
91
+ headerUncastedStr ,
92
+ notNullStringErrorMessage ( "header" )
93
+ ) ;
94
+
76
95
return Plugins . emptyWip ( headerStr ) ;
77
96
} ,
78
97
@@ -81,108 +100,166 @@ module.exports = {
81
100
_ : any ,
82
101
maxLineLength : number
83
102
) => {
84
- let headerStr = Helpers . convertAnyToString (
103
+ let headerUncastedStr = Helpers . convertAnyToString (
85
104
header ,
86
105
"header"
87
106
) ;
107
+ let headerStr = Helpers . assertNotNull (
108
+ headerUncastedStr ,
109
+ notNullStringErrorMessage ( "header" )
110
+ ) ;
111
+
88
112
return Plugins . headerMaxLengthWithSuggestions (
89
113
headerStr ,
90
114
maxLineLength
91
115
) ;
92
116
} ,
93
117
94
- "footer-notes-misplacement" : ( { raw } : { raw : any } ) => {
95
- let rawStr = Helpers . convertAnyToString ( raw , "raw" ) . trim ( ) ;
96
- return Plugins . footerNotesMisplacement ( rawStr ) ;
118
+ "footer-notes-misplacement" : ( { body } : { body : any } ) => {
119
+ let bodyStr = Helpers . convertAnyToString ( body , "body" ) ;
120
+ return Plugins . footerNotesMisplacement ( bodyStr ) ;
97
121
} ,
98
122
99
- "footer-references-existence" : ( { raw } : { raw : any } ) => {
100
- let rawStr = Helpers . convertAnyToString ( raw , "raw" ) . trim ( ) ;
101
- return Plugins . footerReferencesExistence ( rawStr ) ;
123
+ "footer-references-existence" : ( { body } : { body : any } ) => {
124
+ let bodyStr = Helpers . convertAnyToString ( body , "body" ) ;
125
+
126
+ return Plugins . footerReferencesExistence ( bodyStr ) ;
102
127
} ,
103
128
104
129
"prefer-slash-over-backslash" : ( {
105
130
header,
106
131
} : {
107
132
header : any ;
108
133
} ) => {
109
- let headerStr = Helpers . convertAnyToString (
134
+ let headerUncastedStr = Helpers . convertAnyToString (
110
135
header ,
111
136
"header"
112
137
) ;
138
+ let headerStr = Helpers . assertNotNull (
139
+ headerUncastedStr ,
140
+ notNullStringErrorMessage ( "header" )
141
+ ) ;
142
+
113
143
return Plugins . preferSlashOverBackslash ( headerStr ) ;
114
144
} ,
115
145
116
146
"proper-issue-refs" : ( { raw } : { raw : any } ) => {
117
- let rawStr = Helpers . convertAnyToString ( raw , "raw" ) . trim ( ) ;
147
+ let rawUncastedStr = Helpers . convertAnyToString ( raw , "raw" ) ;
148
+ let rawStr = Helpers . assertNotNull (
149
+ rawUncastedStr ,
150
+ notNullStringErrorMessage ( "raw" )
151
+ ) . trim ( ) ;
152
+
118
153
return Plugins . properIssueRefs ( rawStr ) ;
119
154
} ,
120
155
121
156
"title-uppercase" : ( { header } : { header : any } ) => {
122
- let headerStr = Helpers . convertAnyToString (
157
+ let headerUncastedStr = Helpers . convertAnyToString (
123
158
header ,
124
159
"header"
125
160
) ;
161
+ let headerStr = Helpers . assertNotNull (
162
+ headerUncastedStr ,
163
+ notNullStringErrorMessage ( "header" )
164
+ ) ;
165
+
126
166
return Plugins . titleUppercase ( headerStr ) ;
127
167
} ,
128
168
129
169
"too-many-spaces" : ( { raw } : { raw : any } ) => {
130
- let rawStr = Helpers . convertAnyToString ( raw , "raw" ) ;
170
+ let rawUncastedStr = Helpers . convertAnyToString ( raw , "raw" ) ;
171
+ let rawStr = Helpers . assertNotNull (
172
+ rawUncastedStr ,
173
+ notNullStringErrorMessage ( "raw" )
174
+ ) ;
175
+
131
176
return Plugins . tooManySpaces ( rawStr ) ;
132
177
} ,
133
178
134
179
"type-space-after-colon" : ( { header } : { header : any } ) => {
135
- let headerStr = Helpers . convertAnyToString (
180
+ let headerUncastedStr = Helpers . convertAnyToString (
136
181
header ,
137
182
"header"
138
183
) ;
184
+ let headerStr = Helpers . assertNotNull (
185
+ headerUncastedStr ,
186
+ notNullStringErrorMessage ( "header" )
187
+ ) ;
188
+
139
189
return Plugins . typeSpaceAfterColon ( headerStr ) ;
140
190
} ,
141
191
142
192
"type-with-square-brackets" : ( { header } : { header : any } ) => {
143
- let headerStr = Helpers . convertAnyToString (
193
+ let headerUncastedStr = Helpers . convertAnyToString (
144
194
header ,
145
195
"header"
146
196
) ;
197
+ let headerStr = Helpers . assertNotNull (
198
+ headerUncastedStr ,
199
+ notNullStringErrorMessage ( "header" )
200
+ ) ;
201
+
147
202
return Plugins . typeWithSquareBrackets ( headerStr ) ;
148
203
} ,
149
204
150
205
// NOTE: we use 'header' instead of 'subject' as a workaround to this bug: https://github.com/conventional-changelog/commitlint/issues/3404
151
206
"subject-lowercase" : ( { header } : { header : any } ) => {
152
- let headerStr = Helpers . convertAnyToString (
207
+ let headerUncastedStr = Helpers . convertAnyToString (
153
208
header ,
154
209
"header"
155
210
) ;
211
+ let headerStr = Helpers . assertNotNull (
212
+ headerUncastedStr ,
213
+ notNullStringErrorMessage ( "header" )
214
+ ) ;
156
215
return Plugins . subjectLowercase ( headerStr ) ;
157
216
} ,
158
217
159
218
"type-space-after-comma" : ( { header } : { header : any } ) => {
160
- let headerStr = Helpers . convertAnyToString (
219
+ let headerUncastedStr = Helpers . convertAnyToString (
161
220
header ,
162
221
"header"
163
222
) ;
223
+ let headerStr = Helpers . assertNotNull (
224
+ headerUncastedStr ,
225
+ notNullStringErrorMessage ( "header" )
226
+ ) ;
227
+
164
228
return Plugins . typeSpaceAfterComma ( headerStr ) ;
165
229
} ,
166
230
167
231
"body-soft-max-line-length" : (
168
- { raw } : { raw : any } ,
232
+ { body } : { body : any } ,
169
233
_ : any ,
170
234
maxLineLength : number
171
235
) => {
172
- let rawStr = Helpers . convertAnyToString ( raw , "raw" ) . trim ( ) ;
173
- return Plugins . bodySoftMaxLineLength ( rawStr , maxLineLength ) ;
236
+ let bodyStr = Helpers . convertAnyToString ( body , "body" ) ;
237
+ return Plugins . bodySoftMaxLineLength (
238
+ bodyStr ,
239
+ maxLineLength
240
+ ) ;
174
241
} ,
175
242
176
243
"trailing-whitespace" : ( { raw } : { raw : any } ) => {
177
- let rawStr = Helpers . convertAnyToString ( raw , "raw" ) ;
244
+ let rawUncastedStr = Helpers . convertAnyToString ( raw , "raw" ) ;
245
+ let rawStr = Helpers . assertNotNull (
246
+ rawUncastedStr ,
247
+ notNullStringErrorMessage ( "raw" )
248
+ ) ;
249
+
178
250
return Plugins . trailingWhitespace ( rawStr ) ;
179
251
} ,
180
252
181
253
"type-space-before-paren" : ( { header } : { header : any } ) => {
182
- let headerStr = Helpers . convertAnyToString (
254
+ let headerUncastedStr = Helpers . convertAnyToString (
183
255
header ,
184
256
"header"
185
257
) ;
258
+ let headerStr = Helpers . assertNotNull (
259
+ headerUncastedStr ,
260
+ notNullStringErrorMessage ( "header" )
261
+ ) ;
262
+
186
263
return Plugins . typeSpaceBeforeParen ( headerStr ) ;
187
264
} ,
188
265
} ,
0 commit comments