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