eslint-plugin-jsdoc 50.6.17 → 50.7.1
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/alignTransform.cjs +10 -10
- package/dist/alignTransform.cjs.map +1 -1
- package/dist/exportParser.cjs +141 -135
- package/dist/exportParser.cjs.map +1 -1
- package/dist/generateRule.cjs +10 -12
- package/dist/generateRule.cjs.map +1 -1
- package/dist/getDefaultTagStructureForMode.cjs +73 -73
- package/dist/getDefaultTagStructureForMode.cjs.map +1 -1
- package/dist/getJsdocProcessorPlugin.cjs +121 -110
- package/dist/getJsdocProcessorPlugin.cjs.map +1 -1
- package/dist/index.cjs +17 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/iterateJsdoc.cjs +87 -66
- package/dist/iterateJsdoc.cjs.map +1 -1
- package/dist/jsdocUtils.cjs +144 -142
- package/dist/jsdocUtils.cjs.map +1 -1
- package/dist/rules/checkAlignment.cjs +2 -2
- package/dist/rules/checkAlignment.cjs.map +1 -1
- package/dist/rules/checkExamples.cjs +22 -28
- package/dist/rules/checkExamples.cjs.map +1 -1
- package/dist/rules/checkIndentation.cjs +2 -2
- package/dist/rules/checkIndentation.cjs.map +1 -1
- package/dist/rules/checkLineAlignment.cjs +14 -14
- package/dist/rules/checkLineAlignment.cjs.map +1 -1
- package/dist/rules/checkParamNames.cjs +21 -15
- package/dist/rules/checkParamNames.cjs.map +1 -1
- package/dist/rules/checkPropertyNames.cjs +2 -2
- package/dist/rules/checkPropertyNames.cjs.map +1 -1
- package/dist/rules/checkTagNames.cjs +11 -11
- package/dist/rules/checkTagNames.cjs.map +1 -1
- package/dist/rules/checkTemplateNames.cjs +21 -22
- package/dist/rules/checkTemplateNames.cjs.map +1 -1
- package/dist/rules/checkTypes.cjs +10 -10
- package/dist/rules/checkTypes.cjs.map +1 -1
- package/dist/rules/checkValues.cjs +11 -14
- package/dist/rules/checkValues.cjs.map +1 -1
- package/dist/rules/convertToJsdocComments.cjs +26 -27
- package/dist/rules/convertToJsdocComments.cjs.map +1 -1
- package/dist/rules/emptyTags.cjs +6 -6
- package/dist/rules/emptyTags.cjs.map +1 -1
- package/dist/rules/importsAsDependencies.cjs.map +1 -1
- package/dist/rules/informativeDocs.cjs +12 -12
- package/dist/rules/informativeDocs.cjs.map +1 -1
- package/dist/rules/linesBeforeBlock.cjs +12 -12
- package/dist/rules/linesBeforeBlock.cjs.map +1 -1
- package/dist/rules/matchDescription.cjs +1 -1
- package/dist/rules/matchDescription.cjs.map +1 -1
- package/dist/rules/matchName.cjs +4 -4
- package/dist/rules/matchName.cjs.map +1 -1
- package/dist/rules/multilineBlocks.cjs +10 -10
- package/dist/rules/multilineBlocks.cjs.map +1 -1
- package/dist/rules/noBadBlocks.cjs +3 -3
- package/dist/rules/noBadBlocks.cjs.map +1 -1
- package/dist/rules/noMultiAsterisks.cjs +6 -6
- package/dist/rules/noMultiAsterisks.cjs.map +1 -1
- package/dist/rules/noRestrictedSyntax.cjs +2 -2
- package/dist/rules/noRestrictedSyntax.cjs.map +1 -1
- package/dist/rules/noTypes.cjs.map +1 -1
- package/dist/rules/noUndefinedTypes.cjs +17 -20
- package/dist/rules/noUndefinedTypes.cjs.map +1 -1
- package/dist/rules/requireAsteriskPrefix.cjs +4 -4
- package/dist/rules/requireAsteriskPrefix.cjs.map +1 -1
- package/dist/rules/requireDescription.cjs +2 -2
- package/dist/rules/requireDescription.cjs.map +1 -1
- package/dist/rules/requireDescriptionCompleteSentence.cjs +8 -8
- package/dist/rules/requireDescriptionCompleteSentence.cjs.map +1 -1
- package/dist/rules/requireFileOverview.cjs +6 -6
- package/dist/rules/requireFileOverview.cjs.map +1 -1
- package/dist/rules/requireHyphenBeforeParamDescription.cjs +1 -4
- package/dist/rules/requireHyphenBeforeParamDescription.cjs.map +1 -1
- package/dist/rules/requireJsdoc.cjs +19 -19
- package/dist/rules/requireJsdoc.cjs.map +1 -1
- package/dist/rules/requireParam.cjs +12 -12
- package/dist/rules/requireParam.cjs.map +1 -1
- package/dist/rules/requireProperty.cjs +1 -1
- package/dist/rules/requireProperty.cjs.map +1 -1
- package/dist/rules/requireReturns.cjs +3 -3
- package/dist/rules/requireReturns.cjs.map +1 -1
- package/dist/rules/requireReturnsCheck.cjs +1 -1
- package/dist/rules/requireReturnsCheck.cjs.map +1 -1
- package/dist/rules/requireReturnsDescription.cjs +1 -1
- package/dist/rules/requireReturnsDescription.cjs.map +1 -1
- package/dist/rules/requireTemplate.cjs +16 -15
- package/dist/rules/requireTemplate.cjs.map +1 -1
- package/dist/rules/requireYields.cjs +4 -4
- package/dist/rules/requireYields.cjs.map +1 -1
- package/dist/rules/requireYieldsCheck.cjs +6 -6
- package/dist/rules/requireYieldsCheck.cjs.map +1 -1
- package/dist/rules/sortTags.cjs +13 -13
- package/dist/rules/sortTags.cjs.map +1 -1
- package/dist/rules/tagLines.cjs +11 -11
- package/dist/rules/tagLines.cjs.map +1 -1
- package/dist/rules/textEscaping.cjs +2 -2
- package/dist/rules/textEscaping.cjs.map +1 -1
- package/dist/rules/validTypes.cjs +15 -15
- package/dist/rules/validTypes.cjs.map +1 -1
- package/dist/tagNames.cjs +1 -1
- package/dist/tagNames.cjs.map +1 -1
- package/dist/utils/hasReturnValue.cjs +176 -176
- package/dist/utils/hasReturnValue.cjs.map +1 -1
- package/eslint.config.js +36 -32
- package/package.json +29 -29
- package/pnpm-workspace.yaml +1 -0
- package/src/alignTransform.js +15 -15
- package/src/exportParser.js +386 -373
- package/src/getDefaultTagStructureForMode.js +45 -45
- package/src/getJsdocProcessorPlugin.js +175 -128
- package/src/index.js +66 -37
- package/src/iterateJsdoc.js +61 -28
- package/src/jsdocUtils.js +354 -338
- package/src/rules/checkAlignment.js +2 -2
- package/src/rules/checkExamples.js +16 -20
- package/src/rules/checkIndentation.js +2 -2
- package/src/rules/checkLineAlignment.js +10 -10
- package/src/rules/checkParamNames.js +22 -14
- package/src/rules/checkPropertyNames.js +1 -1
- package/src/rules/checkTagNames.js +7 -7
- package/src/rules/checkTemplateNames.js +52 -38
- package/src/rules/checkTypes.js +7 -7
- package/src/rules/checkValues.js +16 -17
- package/src/rules/convertToJsdocComments.js +47 -37
- package/src/rules/emptyTags.js +14 -7
- package/src/rules/importsAsDependencies.js +3 -1
- package/src/rules/informativeDocs.js +58 -58
- package/src/rules/linesBeforeBlock.js +25 -17
- package/src/rules/matchDescription.js +1 -1
- package/src/rules/matchName.js +2 -2
- package/src/rules/multilineBlocks.js +10 -10
- package/src/rules/noBadBlocks.js +3 -3
- package/src/rules/noMultiAsterisks.js +4 -4
- package/src/rules/noRestrictedSyntax.js +1 -1
- package/src/rules/noTypes.js +1 -1
- package/src/rules/noUndefinedTypes.js +29 -23
- package/src/rules/requireAsteriskPrefix.js +3 -3
- package/src/rules/requireDescription.js +1 -1
- package/src/rules/requireDescriptionCompleteSentence.js +6 -6
- package/src/rules/requireFileOverview.js +3 -3
- package/src/rules/requireHyphenBeforeParamDescription.js +2 -5
- package/src/rules/requireJsdoc.js +14 -14
- package/src/rules/requireParam.js +9 -9
- package/src/rules/requireProperty.js +1 -1
- package/src/rules/requireReturns.js +1 -1
- package/src/rules/requireReturnsCheck.js +1 -1
- package/src/rules/requireReturnsDescription.js +1 -1
- package/src/rules/requireTemplate.js +59 -38
- package/src/rules/requireYields.js +3 -3
- package/src/rules/requireYieldsCheck.js +1 -1
- package/src/rules/sortTags.js +7 -7
- package/src/rules/tagLines.js +8 -8
- package/src/rules/textEscaping.js +2 -0
- package/src/rules/validTypes.js +29 -29
- package/src/tagNames.js +2 -2
- package/src/utils/hasReturnValue.js +298 -283
package/src/rules/sortTags.js
CHANGED
|
@@ -19,11 +19,11 @@ export default iterateJsdoc(({
|
|
|
19
19
|
* reportIntraTagGroupSpacing: boolean,
|
|
20
20
|
* }}
|
|
21
21
|
*/ {
|
|
22
|
-
linesBetween = 1,
|
|
23
|
-
tagSequence = defaultTagOrder,
|
|
24
22
|
alphabetizeExtras = false,
|
|
25
|
-
|
|
23
|
+
linesBetween = 1,
|
|
26
24
|
reportIntraTagGroupSpacing = true,
|
|
25
|
+
reportTagGroupSpacing = true,
|
|
26
|
+
tagSequence = defaultTagOrder,
|
|
27
27
|
} = context.options[0] || {};
|
|
28
28
|
|
|
29
29
|
const tagList = tagSequence.flatMap((obj) => {
|
|
@@ -142,10 +142,10 @@ export default iterateJsdoc(({
|
|
|
142
142
|
return tag.source.reduce((acc, {
|
|
143
143
|
tokens: {
|
|
144
144
|
description,
|
|
145
|
-
name,
|
|
146
|
-
type,
|
|
147
145
|
end,
|
|
146
|
+
name,
|
|
148
147
|
tag: tg,
|
|
148
|
+
type,
|
|
149
149
|
},
|
|
150
150
|
}) => {
|
|
151
151
|
const empty = !tg && !type && !name && !description;
|
|
@@ -342,10 +342,10 @@ export default iterateJsdoc(({
|
|
|
342
342
|
{
|
|
343
343
|
tokens: {
|
|
344
344
|
description,
|
|
345
|
-
name,
|
|
346
|
-
type,
|
|
347
345
|
end,
|
|
346
|
+
name,
|
|
348
347
|
tag: tg,
|
|
348
|
+
type,
|
|
349
349
|
},
|
|
350
350
|
},
|
|
351
351
|
] of jsdoc.source.entries()) {
|
package/src/rules/tagLines.js
CHANGED
|
@@ -8,10 +8,10 @@ export default iterateJsdoc(({
|
|
|
8
8
|
const [
|
|
9
9
|
alwaysNever = 'never',
|
|
10
10
|
{
|
|
11
|
+
applyToEndTag = true,
|
|
11
12
|
count = 1,
|
|
12
13
|
endLines = 0,
|
|
13
14
|
startLines = 0,
|
|
14
|
-
applyToEndTag = true,
|
|
15
15
|
tags = {},
|
|
16
16
|
} = {},
|
|
17
17
|
] = context.options;
|
|
@@ -34,11 +34,11 @@ export default iterateJsdoc(({
|
|
|
34
34
|
idx,
|
|
35
35
|
{
|
|
36
36
|
tokens: {
|
|
37
|
-
tag,
|
|
38
|
-
name,
|
|
39
|
-
type,
|
|
40
37
|
description,
|
|
41
38
|
end,
|
|
39
|
+
name,
|
|
40
|
+
tag,
|
|
41
|
+
type,
|
|
42
42
|
},
|
|
43
43
|
},
|
|
44
44
|
] of tg.source.entries()) {
|
|
@@ -48,7 +48,7 @@ export default iterateJsdoc(({
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
if (lastTag && [
|
|
51
|
-
'
|
|
51
|
+
'always', 'any',
|
|
52
52
|
].includes(tags[lastTag.slice(1)]?.lines)) {
|
|
53
53
|
continue;
|
|
54
54
|
}
|
|
@@ -160,11 +160,11 @@ export default iterateJsdoc(({
|
|
|
160
160
|
{
|
|
161
161
|
number,
|
|
162
162
|
tokens: {
|
|
163
|
-
tag,
|
|
164
|
-
name,
|
|
165
|
-
type,
|
|
166
163
|
description,
|
|
167
164
|
end,
|
|
165
|
+
name,
|
|
166
|
+
tag,
|
|
167
|
+
type,
|
|
168
168
|
},
|
|
169
169
|
},
|
|
170
170
|
] of tg.source.entries()) {
|
|
@@ -76,6 +76,7 @@ export default iterateJsdoc(({
|
|
|
76
76
|
if (tag.tag === 'example') {
|
|
77
77
|
continue;
|
|
78
78
|
}
|
|
79
|
+
|
|
79
80
|
if (/** @type {string[]} */ (
|
|
80
81
|
utils.getTagDescription(tag, true)
|
|
81
82
|
).some((desc) => {
|
|
@@ -106,6 +107,7 @@ export default iterateJsdoc(({
|
|
|
106
107
|
if (tag.tag === 'example') {
|
|
107
108
|
continue;
|
|
108
109
|
}
|
|
110
|
+
|
|
109
111
|
if (/** @type {string[]} */ (
|
|
110
112
|
utils.getTagDescription(tag, true)
|
|
111
113
|
).some((desc) => {
|
package/src/rules/validTypes.js
CHANGED
|
@@ -11,10 +11,10 @@ const inlineTags = new Set([
|
|
|
11
11
|
]);
|
|
12
12
|
|
|
13
13
|
const jsdocTypePrattKeywords = new Set([
|
|
14
|
-
'typeof',
|
|
15
|
-
'readonly',
|
|
16
14
|
'import',
|
|
17
15
|
'is',
|
|
16
|
+
'readonly',
|
|
17
|
+
'typeof',
|
|
18
18
|
]);
|
|
19
19
|
|
|
20
20
|
const asExpression = /as\s+/u;
|
|
@@ -79,8 +79,8 @@ const suppressTypes = new Set([
|
|
|
79
79
|
|
|
80
80
|
// Not documented?
|
|
81
81
|
'unusedPrivateMembers',
|
|
82
|
-
'useOfGoogProvide',
|
|
83
82
|
'uselessCode',
|
|
83
|
+
'useOfGoogProvide',
|
|
84
84
|
'visibility',
|
|
85
85
|
'with',
|
|
86
86
|
]);
|
|
@@ -103,11 +103,11 @@ const tryParsePathIgnoreError = (path) => {
|
|
|
103
103
|
|
|
104
104
|
// eslint-disable-next-line complexity
|
|
105
105
|
export default iterateJsdoc(({
|
|
106
|
+
context,
|
|
106
107
|
jsdoc,
|
|
107
108
|
report,
|
|
108
|
-
utils,
|
|
109
|
-
context,
|
|
110
109
|
settings,
|
|
110
|
+
utils,
|
|
111
111
|
}) => {
|
|
112
112
|
const {
|
|
113
113
|
allowEmptyNamepaths = false,
|
|
@@ -134,35 +134,35 @@ export default iterateJsdoc(({
|
|
|
134
134
|
|
|
135
135
|
if (tagName) {
|
|
136
136
|
switch (tagName) {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
137
|
+
case 'memberof':
|
|
138
|
+
case 'memberof!': {
|
|
139
|
+
const endChar = namepath.slice(-1);
|
|
140
|
+
if ([
|
|
141
|
+
'#', '.', '~',
|
|
142
|
+
].includes(endChar)) {
|
|
143
|
+
handled = tryParsePathIgnoreError(namepath.slice(0, -1));
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
break;
|
|
141
147
|
}
|
|
142
148
|
|
|
143
|
-
|
|
144
|
-
|
|
149
|
+
case 'module': case 'requires': {
|
|
150
|
+
if (!namepath.startsWith('module:')) {
|
|
151
|
+
handled = tryParsePathIgnoreError(`module:${namepath}`);
|
|
152
|
+
}
|
|
145
153
|
|
|
146
|
-
|
|
147
|
-
const endChar = namepath.slice(-1);
|
|
148
|
-
if ([
|
|
149
|
-
'#', '.', '~',
|
|
150
|
-
].includes(endChar)) {
|
|
151
|
-
handled = tryParsePathIgnoreError(namepath.slice(0, -1));
|
|
154
|
+
break;
|
|
152
155
|
}
|
|
153
156
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
].includes(startChar)) {
|
|
162
|
-
handled = tryParsePathIgnoreError(namepath.slice(1));
|
|
157
|
+
case 'borrows': {
|
|
158
|
+
const startChar = namepath.charAt(0);
|
|
159
|
+
if ([
|
|
160
|
+
'#', '.', '~',
|
|
161
|
+
].includes(startChar)) {
|
|
162
|
+
handled = tryParsePathIgnoreError(namepath.slice(1));
|
|
163
|
+
}
|
|
163
164
|
}
|
|
164
165
|
}
|
|
165
|
-
}
|
|
166
166
|
}
|
|
167
167
|
|
|
168
168
|
if (!handled) {
|
|
@@ -314,8 +314,8 @@ export default iterateJsdoc(({
|
|
|
314
314
|
// `require-param-name` (`@property` would similarly seem to require one,
|
|
315
315
|
// but is handled by `require-property-name`)
|
|
316
316
|
if (tagMustHaveNamePosition !== false && !tag.name && !allowEmptyNamepaths && ![
|
|
317
|
-
'
|
|
318
|
-
'
|
|
317
|
+
'arg', 'argument', 'param',
|
|
318
|
+
'prop', 'property',
|
|
319
319
|
].includes(tag.tag) &&
|
|
320
320
|
(tag.tag !== 'see' || !utils.getTagDescription(tag).includes('{@link'))
|
|
321
321
|
) {
|
package/src/tagNames.js
CHANGED
|
@@ -179,10 +179,10 @@ const {
|
|
|
179
179
|
inheritdoc,
|
|
180
180
|
internal,
|
|
181
181
|
overload,
|
|
182
|
-
satisfies,
|
|
183
|
-
|
|
184
182
|
// Will be inverted to prefer `return`
|
|
185
183
|
returns,
|
|
184
|
+
|
|
185
|
+
satisfies,
|
|
186
186
|
/* eslint-enable no-unused-vars */
|
|
187
187
|
...typeScriptTagsInClosure
|
|
188
188
|
} = typeScriptTags;
|