eslint-plugin-jsdoc 55.3.0 → 56.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/WarnSettings.d.ts +16 -0
- package/dist/cjs/WarnSettings.js +30 -0
- package/dist/cjs/alignTransform.d.ts +33 -0
- package/dist/cjs/alignTransform.js +285 -0
- package/dist/cjs/defaultTagOrder.d.ts +4 -0
- package/dist/cjs/defaultTagOrder.js +152 -0
- package/dist/cjs/exportParser.d.ts +40 -0
- package/dist/cjs/exportParser.js +754 -0
- package/dist/cjs/getDefaultTagStructureForMode.d.ts +10 -0
- package/dist/cjs/getDefaultTagStructureForMode.js +840 -0
- package/dist/cjs/getJsdocProcessorPlugin.cjs +4 -0
- package/dist/cjs/getJsdocProcessorPlugin.d.cts +1 -0
- package/dist/cjs/getJsdocProcessorPlugin.d.ts +66 -0
- package/dist/cjs/getJsdocProcessorPlugin.js +553 -0
- package/dist/cjs/index-cjs.d.ts +16 -0
- package/dist/cjs/index-cjs.js +492 -0
- package/dist/cjs/index.cjs.cjs +6 -0
- package/dist/cjs/index.cjs.d.cts +2 -0
- package/dist/cjs/iterateJsdoc.cjs +38 -0
- package/dist/cjs/iterateJsdoc.d.cts +2 -0
- package/dist/cjs/iterateJsdoc.d.ts +462 -0
- package/dist/cjs/iterateJsdoc.js +1981 -0
- package/dist/cjs/jsdocUtils.d.ts +454 -0
- package/dist/cjs/jsdocUtils.js +1470 -0
- package/dist/cjs/rules/checkAccess.d.ts +2 -0
- package/dist/cjs/rules/checkAccess.js +35 -0
- package/dist/cjs/rules/checkAlignment.d.ts +2 -0
- package/dist/cjs/rules/checkAlignment.js +63 -0
- package/dist/cjs/rules/checkExamples.d.ts +3 -0
- package/dist/cjs/rules/checkExamples.js +486 -0
- package/dist/cjs/rules/checkIndentation.d.ts +2 -0
- package/dist/cjs/rules/checkIndentation.js +66 -0
- package/dist/cjs/rules/checkLineAlignment.d.ts +9 -0
- package/dist/cjs/rules/checkLineAlignment.js +297 -0
- package/dist/cjs/rules/checkParamNames.d.ts +2 -0
- package/dist/cjs/rules/checkParamNames.js +320 -0
- package/dist/cjs/rules/checkPropertyNames.d.ts +2 -0
- package/dist/cjs/rules/checkPropertyNames.js +105 -0
- package/dist/cjs/rules/checkSyntax.d.ts +2 -0
- package/dist/cjs/rules/checkSyntax.js +27 -0
- package/dist/cjs/rules/checkTagNames.d.ts +2 -0
- package/dist/cjs/rules/checkTagNames.js +252 -0
- package/dist/cjs/rules/checkTemplateNames.d.ts +2 -0
- package/dist/cjs/rules/checkTemplateNames.js +189 -0
- package/dist/cjs/rules/checkTypes.d.ts +2 -0
- package/dist/cjs/rules/checkTypes.js +421 -0
- package/dist/cjs/rules/checkValues.d.ts +2 -0
- package/dist/cjs/rules/checkValues.js +163 -0
- package/dist/cjs/rules/convertToJsdocComments.d.ts +251 -0
- package/dist/cjs/rules/convertToJsdocComments.js +313 -0
- package/dist/cjs/rules/emptyTags.d.ts +2 -0
- package/dist/cjs/rules/emptyTags.js +79 -0
- package/dist/cjs/rules/implementsOnClasses.d.ts +2 -0
- package/dist/cjs/rules/implementsOnClasses.js +63 -0
- package/dist/cjs/rules/importsAsDependencies.d.ts +2 -0
- package/dist/cjs/rules/importsAsDependencies.js +105 -0
- package/dist/cjs/rules/informativeDocs.d.ts +2 -0
- package/dist/cjs/rules/informativeDocs.js +153 -0
- package/dist/cjs/rules/linesBeforeBlock.d.ts +2 -0
- package/dist/cjs/rules/linesBeforeBlock.js +106 -0
- package/dist/cjs/rules/matchDescription.d.ts +2 -0
- package/dist/cjs/rules/matchDescription.js +240 -0
- package/dist/cjs/rules/matchName.d.ts +2 -0
- package/dist/cjs/rules/matchName.js +122 -0
- package/dist/cjs/rules/multilineBlocks.d.ts +2 -0
- package/dist/cjs/rules/multilineBlocks.js +339 -0
- package/dist/cjs/rules/noBadBlocks.d.ts +2 -0
- package/dist/cjs/rules/noBadBlocks.js +88 -0
- package/dist/cjs/rules/noBlankBlockDescriptions.d.ts +2 -0
- package/dist/cjs/rules/noBlankBlockDescriptions.js +56 -0
- package/dist/cjs/rules/noBlankBlocks.d.ts +2 -0
- package/dist/cjs/rules/noBlankBlocks.js +41 -0
- package/dist/cjs/rules/noDefaults.d.ts +2 -0
- package/dist/cjs/rules/noDefaults.js +84 -0
- package/dist/cjs/rules/noMissingSyntax.d.ts +9 -0
- package/dist/cjs/rules/noMissingSyntax.js +164 -0
- package/dist/cjs/rules/noMultiAsterisks.d.ts +2 -0
- package/dist/cjs/rules/noMultiAsterisks.js +83 -0
- package/dist/cjs/rules/noRestrictedSyntax.d.ts +2 -0
- package/dist/cjs/rules/noRestrictedSyntax.js +75 -0
- package/dist/cjs/rules/noTypes.d.ts +2 -0
- package/dist/cjs/rules/noTypes.js +88 -0
- package/dist/cjs/rules/noUndefinedTypes.d.ts +2 -0
- package/dist/cjs/rules/noUndefinedTypes.js +451 -0
- package/dist/cjs/rules/requireAsteriskPrefix.d.ts +2 -0
- package/dist/cjs/rules/requireAsteriskPrefix.js +144 -0
- package/dist/cjs/rules/requireDescription.d.ts +2 -0
- package/dist/cjs/rules/requireDescription.js +136 -0
- package/dist/cjs/rules/requireDescriptionCompleteSentence.d.ts +2 -0
- package/dist/cjs/rules/requireDescriptionCompleteSentence.js +258 -0
- package/dist/cjs/rules/requireExample.d.ts +2 -0
- package/dist/cjs/rules/requireExample.js +103 -0
- package/dist/cjs/rules/requireFileOverview.d.ts +2 -0
- package/dist/cjs/rules/requireFileOverview.js +117 -0
- package/dist/cjs/rules/requireHyphenBeforeParamDescription.d.ts +2 -0
- package/dist/cjs/rules/requireHyphenBeforeParamDescription.js +144 -0
- package/dist/cjs/rules/requireJsdoc.d.ts +25 -0
- package/dist/cjs/rules/requireJsdoc.js +629 -0
- package/dist/cjs/rules/requireParam.d.ts +3 -0
- package/dist/cjs/rules/requireParam.js +480 -0
- package/dist/cjs/rules/requireParamDescription.d.ts +2 -0
- package/dist/cjs/rules/requireParamDescription.js +77 -0
- package/dist/cjs/rules/requireParamName.d.ts +2 -0
- package/dist/cjs/rules/requireParamName.js +52 -0
- package/dist/cjs/rules/requireParamType.d.ts +2 -0
- package/dist/cjs/rules/requireParamType.js +77 -0
- package/dist/cjs/rules/requireProperty.d.ts +2 -0
- package/dist/cjs/rules/requireProperty.js +44 -0
- package/dist/cjs/rules/requirePropertyDescription.d.ts +2 -0
- package/dist/cjs/rules/requirePropertyDescription.js +22 -0
- package/dist/cjs/rules/requirePropertyName.d.ts +2 -0
- package/dist/cjs/rules/requirePropertyName.js +22 -0
- package/dist/cjs/rules/requirePropertyType.d.ts +2 -0
- package/dist/cjs/rules/requirePropertyType.js +22 -0
- package/dist/cjs/rules/requireReturns.d.ts +2 -0
- package/dist/cjs/rules/requireReturns.js +197 -0
- package/dist/cjs/rules/requireReturnsCheck.d.ts +2 -0
- package/dist/cjs/rules/requireReturnsCheck.js +108 -0
- package/dist/cjs/rules/requireReturnsDescription.d.ts +2 -0
- package/dist/cjs/rules/requireReturnsDescription.js +58 -0
- package/dist/cjs/rules/requireReturnsType.d.ts +2 -0
- package/dist/cjs/rules/requireReturnsType.js +52 -0
- package/dist/cjs/rules/requireTemplate.d.ts +2 -0
- package/dist/cjs/rules/requireTemplate.js +173 -0
- package/dist/cjs/rules/requireThrows.d.ts +2 -0
- package/dist/cjs/rules/requireThrows.js +101 -0
- package/dist/cjs/rules/requireYields.d.ts +2 -0
- package/dist/cjs/rules/requireYields.js +172 -0
- package/dist/cjs/rules/requireYieldsCheck.d.ts +2 -0
- package/dist/cjs/rules/requireYieldsCheck.js +164 -0
- package/dist/cjs/rules/sortTags.d.ts +2 -0
- package/dist/cjs/rules/sortTags.js +392 -0
- package/dist/cjs/rules/tagLines.d.ts +2 -0
- package/dist/cjs/rules/tagLines.js +259 -0
- package/dist/cjs/rules/textEscaping.d.ts +2 -0
- package/dist/cjs/rules/textEscaping.js +125 -0
- package/dist/cjs/rules/typeFormatting.d.ts +2 -0
- package/dist/cjs/rules/typeFormatting.js +328 -0
- package/dist/cjs/rules/validTypes.d.ts +2 -0
- package/dist/cjs/rules/validTypes.js +333 -0
- package/dist/cjs/tagNames.d.ts +15 -0
- package/dist/cjs/tagNames.js +209 -0
- package/dist/cjs/utils/hasReturnValue.d.ts +19 -0
- package/dist/cjs/utils/hasReturnValue.js +469 -0
- package/dist/getJsdocProcessorPlugin.cts +3 -0
- package/dist/index.cjs.cts +3 -0
- package/dist/iterateJsdoc.cts +6 -0
- package/dist/rules/typeFormatting.cjs +82 -38
- package/dist/rules/typeFormatting.cjs.map +1 -1
- package/dist/rules.d.ts +4 -7
- package/package.json +24 -13
- package/src/getJsdocProcessorPlugin.cts +3 -0
- package/src/index.cjs.cts +3 -0
- package/src/iterateJsdoc.cts +6 -0
- package/src/rules/typeFormatting.js +104 -40
- package/src/rules.d.ts +4 -7
|
@@ -19,10 +19,13 @@ export default iterateJsdoc(({
|
|
|
19
19
|
genericDot = false,
|
|
20
20
|
objectFieldIndent = '',
|
|
21
21
|
objectFieldQuote = null,
|
|
22
|
-
objectFieldSeparator =
|
|
22
|
+
objectFieldSeparator = 'comma',
|
|
23
|
+
objectFieldSeparatorTrailingPunctuation = false,
|
|
23
24
|
propertyQuotes = null,
|
|
24
25
|
separatorForSingleObjectField = false,
|
|
25
26
|
stringQuotes = 'single',
|
|
27
|
+
typeBracketSpacing = '',
|
|
28
|
+
unionSpacing = ' ',
|
|
26
29
|
} = context.options[0] || {};
|
|
27
30
|
|
|
28
31
|
const {
|
|
@@ -54,7 +57,10 @@ export default iterateJsdoc(({
|
|
|
54
57
|
return tokens.name || tokens.description;
|
|
55
58
|
});
|
|
56
59
|
|
|
57
|
-
const nameAndDesc =
|
|
60
|
+
const nameAndDesc = beginNameOrDescIdx === -1 ?
|
|
61
|
+
null :
|
|
62
|
+
tag.source.slice(beginNameOrDescIdx);
|
|
63
|
+
|
|
58
64
|
const initialNumber = tag.source[0].number;
|
|
59
65
|
const src = [
|
|
60
66
|
// Get inevitably present tag from first `tag.source`
|
|
@@ -69,7 +75,7 @@ export default iterateJsdoc(({
|
|
|
69
75
|
postName: '',
|
|
70
76
|
postType: '',
|
|
71
77
|
} : {}),
|
|
72
|
-
type: '{' + firstTypeLine + (!typeLines.length && lastTypeLine === undefined ? '}' : ''),
|
|
78
|
+
type: '{' + typeBracketSpacing + firstTypeLine + (!typeLines.length && lastTypeLine === undefined ? typeBracketSpacing + '}' : ''),
|
|
73
79
|
},
|
|
74
80
|
},
|
|
75
81
|
// Get any intervening type lines
|
|
@@ -97,14 +103,14 @@ export default iterateJsdoc(({
|
|
|
97
103
|
// Merge any final type line and name and description
|
|
98
104
|
if (
|
|
99
105
|
// Name and description may be already included if present with the tag
|
|
100
|
-
beginNameOrDescIdx > 0
|
|
106
|
+
nameAndDesc && beginNameOrDescIdx > 0
|
|
101
107
|
) {
|
|
102
108
|
src.push({
|
|
103
109
|
number: src.length + 1,
|
|
104
110
|
source: '',
|
|
105
111
|
tokens: {
|
|
106
112
|
...nameAndDesc[0].tokens,
|
|
107
|
-
type: lastTypeLine + '}',
|
|
113
|
+
type: lastTypeLine + typeBracketSpacing + '}',
|
|
108
114
|
},
|
|
109
115
|
});
|
|
110
116
|
|
|
@@ -125,7 +131,7 @@ export default iterateJsdoc(({
|
|
|
125
131
|
}),
|
|
126
132
|
);
|
|
127
133
|
}
|
|
128
|
-
} else {
|
|
134
|
+
} else if (nameAndDesc) {
|
|
129
135
|
if (lastTypeLine) {
|
|
130
136
|
src.push({
|
|
131
137
|
number: src.length + 1,
|
|
@@ -136,7 +142,7 @@ export default iterateJsdoc(({
|
|
|
136
142
|
postTag: '',
|
|
137
143
|
start: indent + ' ',
|
|
138
144
|
tag: '',
|
|
139
|
-
type: lastTypeLine + '}',
|
|
145
|
+
type: lastTypeLine + typeBracketSpacing + '}',
|
|
140
146
|
},
|
|
141
147
|
});
|
|
142
148
|
}
|
|
@@ -171,6 +177,14 @@ export default iterateJsdoc(({
|
|
|
171
177
|
return tg;
|
|
172
178
|
});
|
|
173
179
|
|
|
180
|
+
const initialEndSource = jsdoc.source.find(({
|
|
181
|
+
tokens: {
|
|
182
|
+
end,
|
|
183
|
+
},
|
|
184
|
+
}) => {
|
|
185
|
+
return end;
|
|
186
|
+
});
|
|
187
|
+
|
|
174
188
|
jsdoc.source = [
|
|
175
189
|
...jsdoc.source.slice(0, firstTagIdx),
|
|
176
190
|
...jsdoc.tags.flatMap(({
|
|
@@ -179,24 +193,34 @@ export default iterateJsdoc(({
|
|
|
179
193
|
return source;
|
|
180
194
|
}),
|
|
181
195
|
];
|
|
196
|
+
|
|
197
|
+
if (initialEndSource && !jsdoc.source.at(-1)?.tokens?.end) {
|
|
198
|
+
jsdoc.source.push(initialEndSource);
|
|
199
|
+
}
|
|
182
200
|
};
|
|
183
201
|
|
|
184
202
|
/** @type {string[]} */
|
|
185
203
|
const errorMessages = [];
|
|
186
|
-
|
|
204
|
+
|
|
205
|
+
if (typeBracketSpacing && (!tag.type.startsWith(typeBracketSpacing) || !tag.type.endsWith(typeBracketSpacing))) {
|
|
206
|
+
errorMessages.push(`Must have initial and final "${typeBracketSpacing}" spacing`);
|
|
207
|
+
} else if (!typeBracketSpacing && ((/^\s/v).test(tag.type) || (/\s$/v).test(tag.type))) {
|
|
208
|
+
errorMessages.push('Must have no initial spacing');
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
// eslint-disable-next-line complexity -- Todo
|
|
187
212
|
traverse(parsedType, (nde) => {
|
|
188
|
-
let typeFound = true;
|
|
189
213
|
let errorMessage = '';
|
|
190
|
-
|
|
191
|
-
/** @type {import('jsdoc-type-pratt-parser').RootResult} */ (nde),
|
|
192
|
-
);
|
|
214
|
+
|
|
193
215
|
switch (nde.type) {
|
|
194
216
|
case 'JsdocTypeGeneric': {
|
|
195
217
|
const typeNode = /** @type {import('jsdoc-type-pratt-parser').GenericResult} */ (nde);
|
|
196
218
|
if ('value' in typeNode.left && typeNode.left.value === 'Array') {
|
|
197
|
-
typeNode.meta.brackets
|
|
198
|
-
|
|
199
|
-
|
|
219
|
+
if (typeNode.meta.brackets !== arrayBrackets) {
|
|
220
|
+
typeNode.meta.brackets = arrayBrackets;
|
|
221
|
+
errorMessage = `Array bracket style should be ${arrayBrackets}`;
|
|
222
|
+
}
|
|
223
|
+
} else if (typeNode.meta.dot !== genericDot) {
|
|
200
224
|
typeNode.meta.dot = genericDot;
|
|
201
225
|
errorMessage = `Dot usage should be ${genericDot}`;
|
|
202
226
|
}
|
|
@@ -206,22 +230,31 @@ export default iterateJsdoc(({
|
|
|
206
230
|
|
|
207
231
|
case 'JsdocTypeObject': {
|
|
208
232
|
const typeNode = /** @type {import('jsdoc-type-pratt-parser').ObjectResult} */ (nde);
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
233
|
+
if (
|
|
234
|
+
/* c8 ignore next -- Guard */
|
|
235
|
+
(typeNode.meta.separator ?? 'comma') !== objectFieldSeparator ||
|
|
236
|
+
(typeNode.meta.separatorForSingleObjectField ?? false) !== separatorForSingleObjectField ||
|
|
237
|
+
(typeNode.meta.propertyIndent ?? '') !== objectFieldIndent ||
|
|
238
|
+
(typeNode.meta.trailingPunctuation ?? false) !== objectFieldSeparatorTrailingPunctuation
|
|
239
|
+
) {
|
|
240
|
+
typeNode.meta.separator = objectFieldSeparator;
|
|
241
|
+
typeNode.meta.separatorForSingleObjectField = separatorForSingleObjectField;
|
|
242
|
+
typeNode.meta.propertyIndent = objectFieldIndent;
|
|
243
|
+
typeNode.meta.trailingPunctuation = objectFieldSeparatorTrailingPunctuation;
|
|
244
|
+
errorMessage = `Inconsistent ${objectFieldSeparator} separator usage`;
|
|
245
|
+
}
|
|
246
|
+
|
|
213
247
|
break;
|
|
214
248
|
}
|
|
215
249
|
|
|
216
250
|
case 'JsdocTypeObjectField': {
|
|
217
251
|
const typeNode = /** @type {import('jsdoc-type-pratt-parser').ObjectFieldResult} */ (nde);
|
|
218
|
-
if (objectFieldQuote ||
|
|
219
|
-
(typeof typeNode.key === 'string' && !(/\s/v).test(typeNode.key))
|
|
252
|
+
if ((objectFieldQuote ||
|
|
253
|
+
(typeof typeNode.key === 'string' && !(/\s/v).test(typeNode.key))) &&
|
|
254
|
+
typeNode.meta.quote !== (objectFieldQuote ?? undefined)
|
|
220
255
|
) {
|
|
221
256
|
typeNode.meta.quote = objectFieldQuote ?? undefined;
|
|
222
257
|
errorMessage = `Inconsistent object field quotes ${objectFieldQuote}`;
|
|
223
|
-
} else {
|
|
224
|
-
typeFound = false;
|
|
225
258
|
}
|
|
226
259
|
|
|
227
260
|
break;
|
|
@@ -230,13 +263,12 @@ export default iterateJsdoc(({
|
|
|
230
263
|
case 'JsdocTypeProperty': {
|
|
231
264
|
const typeNode = /** @type {import('jsdoc-type-pratt-parser').PropertyResult} */ (nde);
|
|
232
265
|
|
|
233
|
-
if (propertyQuotes ||
|
|
234
|
-
(typeof typeNode.value === 'string' && !(/\s/v).test(typeNode.value))
|
|
266
|
+
if ((propertyQuotes ||
|
|
267
|
+
(typeof typeNode.value === 'string' && !(/\s/v).test(typeNode.value))) &&
|
|
268
|
+
typeNode.meta.quote !== (propertyQuotes ?? undefined)
|
|
235
269
|
) {
|
|
236
270
|
typeNode.meta.quote = propertyQuotes ?? undefined;
|
|
237
271
|
errorMessage = `Inconsistent ${propertyQuotes} property quotes usage`;
|
|
238
|
-
} else {
|
|
239
|
-
typeFound = false;
|
|
240
272
|
}
|
|
241
273
|
|
|
242
274
|
break;
|
|
@@ -244,40 +276,64 @@ export default iterateJsdoc(({
|
|
|
244
276
|
|
|
245
277
|
case 'JsdocTypeStringValue': {
|
|
246
278
|
const typeNode = /** @type {import('jsdoc-type-pratt-parser').StringValueResult} */ (nde);
|
|
247
|
-
typeNode.meta.quote
|
|
248
|
-
|
|
279
|
+
if (typeNode.meta.quote !== stringQuotes) {
|
|
280
|
+
typeNode.meta.quote = stringQuotes;
|
|
281
|
+
errorMessage = `Inconsistent ${stringQuotes} string quotes usage`;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
break;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
case 'JsdocTypeUnion': {
|
|
288
|
+
const typeNode = /** @type {import('jsdoc-type-pratt-parser').UnionResult} */ (nde);
|
|
289
|
+
/* c8 ignore next -- Guard */
|
|
290
|
+
if ((typeNode.meta?.spacing ?? ' ') !== unionSpacing) {
|
|
291
|
+
typeNode.meta = {
|
|
292
|
+
spacing: unionSpacing,
|
|
293
|
+
};
|
|
294
|
+
errorMessage = `Inconsistent "${unionSpacing}" union spacing usage`;
|
|
295
|
+
}
|
|
296
|
+
|
|
249
297
|
break;
|
|
250
298
|
}
|
|
251
299
|
|
|
252
300
|
default:
|
|
253
|
-
typeFound = false;
|
|
254
301
|
break;
|
|
255
302
|
}
|
|
256
303
|
|
|
257
|
-
if (
|
|
258
|
-
|
|
259
|
-
if (initialType !== convertedType) {
|
|
260
|
-
needToReport = true;
|
|
261
|
-
errorMessages.push(errorMessage);
|
|
262
|
-
}
|
|
304
|
+
if (errorMessage) {
|
|
305
|
+
errorMessages.push(errorMessage);
|
|
263
306
|
}
|
|
264
307
|
});
|
|
265
308
|
|
|
266
|
-
|
|
309
|
+
const differentResult = tag.type !==
|
|
310
|
+
typeBracketSpacing + stringify(parsedType) + typeBracketSpacing;
|
|
311
|
+
|
|
312
|
+
if (errorMessages.length && differentResult) {
|
|
267
313
|
for (const errorMessage of errorMessages) {
|
|
268
314
|
utils.reportJSDoc(
|
|
269
|
-
errorMessage, tag, enableFixer ? fix : null,
|
|
315
|
+
errorMessage, tag, enableFixer ? fix : null,
|
|
270
316
|
);
|
|
271
317
|
}
|
|
318
|
+
// Stringification may have been equal previously (and thus no error reported)
|
|
319
|
+
// because the stringification doesn't preserve everything
|
|
320
|
+
} else if (differentResult) {
|
|
321
|
+
utils.reportJSDoc(
|
|
322
|
+
'There was an error with type formatting', tag, enableFixer ? fix : null,
|
|
323
|
+
);
|
|
272
324
|
}
|
|
273
325
|
};
|
|
274
326
|
|
|
275
327
|
const tags = utils.getPresentTags([
|
|
276
328
|
'param',
|
|
277
329
|
'returns',
|
|
330
|
+
'type',
|
|
331
|
+
'typedef',
|
|
278
332
|
]);
|
|
279
333
|
for (const tag of tags) {
|
|
280
|
-
|
|
334
|
+
if (tag.type) {
|
|
335
|
+
checkTypeFormats(tag);
|
|
336
|
+
}
|
|
281
337
|
}
|
|
282
338
|
}, {
|
|
283
339
|
iterateAllJsdocs: true,
|
|
@@ -320,9 +376,11 @@ export default iterateJsdoc(({
|
|
|
320
376
|
'linebreak',
|
|
321
377
|
'semicolon',
|
|
322
378
|
'semicolon-and-linebreak',
|
|
323
|
-
null,
|
|
324
379
|
],
|
|
325
380
|
},
|
|
381
|
+
objectFieldSeparatorTrailingPunctuation: {
|
|
382
|
+
type: 'boolean',
|
|
383
|
+
},
|
|
326
384
|
propertyQuotes: {
|
|
327
385
|
enum: [
|
|
328
386
|
'double',
|
|
@@ -339,6 +397,12 @@ export default iterateJsdoc(({
|
|
|
339
397
|
'single',
|
|
340
398
|
],
|
|
341
399
|
},
|
|
400
|
+
typeBracketSpacing: {
|
|
401
|
+
type: 'string',
|
|
402
|
+
},
|
|
403
|
+
unionSpacing: {
|
|
404
|
+
type: 'string',
|
|
405
|
+
},
|
|
342
406
|
},
|
|
343
407
|
type: 'object',
|
|
344
408
|
},
|
package/src/rules.d.ts
CHANGED
|
@@ -765,16 +765,13 @@ export interface Rules {
|
|
|
765
765
|
genericDot?: boolean;
|
|
766
766
|
objectFieldIndent?: string;
|
|
767
767
|
objectFieldQuote?: "double" | "single" | null;
|
|
768
|
-
objectFieldSeparator?:
|
|
769
|
-
|
|
770
|
-
| "comma-and-linebreak"
|
|
771
|
-
| "linebreak"
|
|
772
|
-
| "semicolon"
|
|
773
|
-
| "semicolon-and-linebreak"
|
|
774
|
-
| null;
|
|
768
|
+
objectFieldSeparator?: "comma" | "comma-and-linebreak" | "linebreak" | "semicolon" | "semicolon-and-linebreak";
|
|
769
|
+
objectFieldSeparatorTrailingPunctuation?: boolean;
|
|
775
770
|
propertyQuotes?: "double" | "single" | null;
|
|
776
771
|
separatorForSingleObjectField?: boolean;
|
|
777
772
|
stringQuotes?: "double" | "single";
|
|
773
|
+
typeBracketSpacing?: string;
|
|
774
|
+
unionSpacing?: string;
|
|
778
775
|
}
|
|
779
776
|
];
|
|
780
777
|
|