eslint-plugin-jsdoc 36.0.8 → 37.0.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/README.md +100 -27
- package/dist/iterateJsdoc.js +15 -11
- package/dist/iterateJsdoc.js.map +1 -1
- package/dist/jsdocUtils.js +8 -3
- package/dist/jsdocUtils.js.map +1 -1
- package/dist/rules/checkExamples.js +12 -3
- package/dist/rules/checkExamples.js.map +1 -1
- package/dist/rules/checkIndentation.js +2 -2
- package/dist/rules/checkIndentation.js.map +1 -1
- package/dist/rules/checkParamNames.js.map +1 -1
- package/dist/rules/checkPropertyNames.js.map +1 -1
- package/dist/rules/checkTypes.js +2 -1
- package/dist/rules/checkTypes.js.map +1 -1
- package/dist/rules/checkValues.js +1 -1
- package/dist/rules/checkValues.js.map +1 -1
- package/dist/rules/matchDescription.js +1 -1
- package/dist/rules/matchDescription.js.map +1 -1
- package/dist/rules/multilineBlocks.js.map +1 -1
- package/dist/rules/newlineAfterDescription.js +1 -1
- package/dist/rules/newlineAfterDescription.js.map +1 -1
- package/dist/rules/noDefaults.js +2 -2
- package/dist/rules/noDefaults.js.map +1 -1
- package/dist/rules/requireDescriptionCompleteSentence.js +4 -3
- package/dist/rules/requireDescriptionCompleteSentence.js.map +1 -1
- package/dist/rules/requireJsdoc.js +2 -2
- package/dist/rules/requireJsdoc.js.map +1 -1
- package/dist/tagNames.js +1 -1
- package/package.json +26 -23
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ JSDoc linting rules for ESLint.
|
|
|
18
18
|
* [`maxLines` and `minLines`](#eslint-plugin-jsdoc-settings-maxlines-and-minlines)
|
|
19
19
|
* [Mode](#eslint-plugin-jsdoc-settings-mode)
|
|
20
20
|
* [Alias Preference](#eslint-plugin-jsdoc-settings-alias-preference)
|
|
21
|
-
* [`@override`/`@augments`/`@extends`/`@implements` Without Accompanying `@param`/`@description`/`@example`/`@returns`](#eslint-plugin-jsdoc-settings-override-augments-extends-implements-without-accompanying-param-description-example-returns)
|
|
21
|
+
* [`@override`/`@augments`/`@extends`/`@implements`/`@ignore` Without Accompanying `@param`/`@description`/`@example`/`@returns`/`@throws`/`@yields`](#eslint-plugin-jsdoc-settings-override-augments-extends-implements-ignore-without-accompanying-param-description-example-returns-throws-yields)
|
|
22
22
|
* [Settings to Configure `check-types` and `no-undefined-types`](#eslint-plugin-jsdoc-settings-settings-to-configure-check-types-and-no-undefined-types)
|
|
23
23
|
* [`structuredTags`](#eslint-plugin-jsdoc-settings-structuredtags)
|
|
24
24
|
* [Advanced](#eslint-plugin-jsdoc-advanced)
|
|
@@ -250,10 +250,8 @@ how many line breaks to add when a block is missing.
|
|
|
250
250
|
types/namepaths (Closure allows types on some tags which the others do not,
|
|
251
251
|
so these tags will additionally be checked in "closure" mode)
|
|
252
252
|
- For type-checking rules, impacts parsing of types (through
|
|
253
|
-
[
|
|
254
|
-
dependency)
|
|
255
|
-
[not yet](https://github.com/gajus/eslint-plugin-jsdoc/issues/145)
|
|
256
|
-
[supported](https://github.com/jsdoctypeparser/jsdoctypeparser/issues/50)
|
|
253
|
+
[jsdoc-type-pratt-parser](https://github.com/simonseyock/jsdoc-type-pratt-parser)
|
|
254
|
+
dependency)
|
|
257
255
|
- Check preferred tag names
|
|
258
256
|
- Disallows namepath on `@interface` for "closure" mode in `valid-types` (and
|
|
259
257
|
avoids checking in other rules)
|
|
@@ -389,14 +387,15 @@ This setting is utilized by the the rule for tag name checking
|
|
|
389
387
|
- `require-returns-description`
|
|
390
388
|
- `require-returns-type`
|
|
391
389
|
|
|
392
|
-
<a name="eslint-plugin-jsdoc-settings-override-augments-extends-implements-without-accompanying-param-description-example-returns"></a>
|
|
393
|
-
### <code>@override</code>/<code>@augments</code>/<code>@extends</code>/<code>@implements</code> Without Accompanying <code>@param</code>/<code>@description</code>/<code>@example</code>/<code>@returns</code>
|
|
390
|
+
<a name="eslint-plugin-jsdoc-settings-override-augments-extends-implements-ignore-without-accompanying-param-description-example-returns-throws-yields"></a>
|
|
391
|
+
### <code>@override</code>/<code>@augments</code>/<code>@extends</code>/<code>@implements</code>/<code>@ignore</code> Without Accompanying <code>@param</code>/<code>@description</code>/<code>@example</code>/<code>@returns</code>/<code>@throws</code>/<code>@yields</code>
|
|
394
392
|
|
|
395
393
|
The following settings allows the element(s) they reference to be omitted
|
|
396
394
|
on the JSDoc comment block of the function or that of its parent class
|
|
397
395
|
for any of the "require" rules (i.e., `require-param`, `require-description`,
|
|
398
|
-
`require-example`,
|
|
396
|
+
`require-example`, `require-returns`, `require-throws`, `require-yields`).
|
|
399
397
|
|
|
398
|
+
* `settings.jsdoc.ignoreReplacesDocs` (`@ignore`) - Defaults to `true`
|
|
400
399
|
* `settings.jsdoc.overrideReplacesDocs` (`@override`) - Defaults to `true`
|
|
401
400
|
* `settings.jsdoc.augmentsExtendsReplacesDocs` (`@augments` or its alias
|
|
402
401
|
`@extends`) - Defaults to `false`.
|
|
@@ -409,6 +408,7 @@ The format of the configuration is as follows:
|
|
|
409
408
|
"rules": {},
|
|
410
409
|
"settings": {
|
|
411
410
|
"jsdoc": {
|
|
411
|
+
"ignoreReplacesDocs": true,
|
|
412
412
|
"overrideReplacesDocs": true,
|
|
413
413
|
"augmentsExtendsReplacesDocs": true,
|
|
414
414
|
"implementsReplacesDocs": true
|
|
@@ -577,7 +577,7 @@ properties:
|
|
|
577
577
|
declaration of the function expression for
|
|
578
578
|
`const quux = function () {}`, the associated comment would,
|
|
579
579
|
in both cases, generally be expected to be on the line above both, rather
|
|
580
|
-
than to be immediately preceding the
|
|
580
|
+
than to be immediately preceding the function (in the case of the
|
|
581
581
|
function). See [@es-joy/jsdoccomment](https://github.com/es-joy/jsdoccomment)
|
|
582
582
|
for the precise structure of the comment (and comment type) nodes.
|
|
583
583
|
|
|
@@ -945,6 +945,9 @@ function quux (foo) {
|
|
|
945
945
|
<a name="eslint-plugin-jsdoc-rules-check-examples"></a>
|
|
946
946
|
### <code>check-examples</code>
|
|
947
947
|
|
|
948
|
+
> **NOTE**: This rule currently does not work in ESLint 8 (we are waiting for
|
|
949
|
+
> [issue 14745](https://github.com/eslint/eslint/issues/14745)).
|
|
950
|
+
|
|
948
951
|
Ensures that (JavaScript) examples within JSDoc adhere to ESLint rules. Also
|
|
949
952
|
has options to lint the default values of optional `@param`/`@arg`/`@argument`
|
|
950
953
|
and `@property`/`@prop` tags or the values of `@default`/`@defaultvalue` tags.
|
|
@@ -1932,6 +1935,20 @@ function quux () {
|
|
|
1932
1935
|
* ```
|
|
1933
1936
|
*/
|
|
1934
1937
|
// "jsdoc/check-indentation": ["error"|"warn", {"excludeTags":[]}]
|
|
1938
|
+
|
|
1939
|
+
/**
|
|
1940
|
+
* @example
|
|
1941
|
+
* ```
|
|
1942
|
+
* @MyDecorator({
|
|
1943
|
+
* myOptions: 42
|
|
1944
|
+
* })
|
|
1945
|
+
* export class MyClass {}
|
|
1946
|
+
* ```
|
|
1947
|
+
*/
|
|
1948
|
+
function MyDecorator(options: { myOptions: number }) {
|
|
1949
|
+
return (Base: Function) => {};
|
|
1950
|
+
}
|
|
1951
|
+
// "jsdoc/check-indentation": ["error"|"warn", {"excludeTags":["example","MyDecorator"]}]
|
|
1935
1952
|
````
|
|
1936
1953
|
|
|
1937
1954
|
|
|
@@ -4751,7 +4768,7 @@ behavior.
|
|
|
4751
4768
|
See also the documentation on `settings.jsdoc.preferredTypes` which impacts
|
|
4752
4769
|
the behavior of `check-types`.
|
|
4753
4770
|
|
|
4754
|
-
Note that if there is an error [parsing](https://github.com/
|
|
4771
|
+
Note that if there is an error [parsing](https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser)
|
|
4755
4772
|
types for a tag, the function will silently ignore that tag, leaving it to
|
|
4756
4773
|
the `valid-types` rule to report parsing errors.
|
|
4757
4774
|
|
|
@@ -5737,7 +5754,7 @@ If present as an array, will be used in place of SPDX identifiers.
|
|
|
5737
5754
|
A string to be converted into a `RegExp` (with `u` flag) and whose first
|
|
5738
5755
|
parenthetical grouping, if present, will match the portion of the license
|
|
5739
5756
|
description to check (if no grouping is present, then the whole portion
|
|
5740
|
-
matched will be used). Defaults to `/([^\n]*)/gu`, i.e., the SPDX expression
|
|
5757
|
+
matched will be used). Defaults to `/([^\n\r]*)/gu`, i.e., the SPDX expression
|
|
5741
5758
|
is expected before any line breaks.
|
|
5742
5759
|
|
|
5743
5760
|
Note that the `/` delimiters are optional, but necessary to add flags.
|
|
@@ -5999,6 +6016,12 @@ function quux (foo) {
|
|
|
5999
6016
|
function quux (foo) {
|
|
6000
6017
|
|
|
6001
6018
|
}
|
|
6019
|
+
|
|
6020
|
+
/**
|
|
6021
|
+
* @module test
|
|
6022
|
+
* @license MIT
|
|
6023
|
+
*/
|
|
6024
|
+
'use strict';
|
|
6002
6025
|
````
|
|
6003
6026
|
|
|
6004
6027
|
|
|
@@ -6894,7 +6917,7 @@ class MyClass {
|
|
|
6894
6917
|
*/
|
|
6895
6918
|
myClassField = 1
|
|
6896
6919
|
}
|
|
6897
|
-
// "jsdoc/match-description": ["error"|"warn", {"contexts":["
|
|
6920
|
+
// "jsdoc/match-description": ["error"|"warn", {"contexts":["PropertyDefinition"]}]
|
|
6898
6921
|
// Message: JSDoc description does not satisfy the regex pattern.
|
|
6899
6922
|
|
|
6900
6923
|
/**
|
|
@@ -7162,7 +7185,7 @@ class MyClass {
|
|
|
7162
7185
|
*/
|
|
7163
7186
|
myClassField = 1
|
|
7164
7187
|
}
|
|
7165
|
-
// "jsdoc/match-description": ["error"|"warn", {"contexts":["
|
|
7188
|
+
// "jsdoc/match-description": ["error"|"warn", {"contexts":["PropertyDefinition"]}]
|
|
7166
7189
|
|
|
7167
7190
|
/**
|
|
7168
7191
|
* Foo.
|
|
@@ -7341,7 +7364,7 @@ be applied, however.
|
|
|
7341
7364
|
|||
|
|
7342
7365
|
|---|---|
|
|
7343
7366
|
|Context|everywhere|
|
|
7344
|
-
|Tags|(The tags
|
|
7367
|
+
|Tags|(The tags specified by `tags`, including any tag if `*` is set)|
|
|
7345
7368
|
|Recommended|false|
|
|
7346
7369
|
|Settings|`structuredTags`|
|
|
7347
7370
|
|Options|`match`|
|
|
@@ -9147,7 +9170,7 @@ The following types are always considered defined.
|
|
|
9147
9170
|
Note that preferred types indicated within `settings.jsdoc.preferredTypes` will
|
|
9148
9171
|
also be assumed to be defined.
|
|
9149
9172
|
|
|
9150
|
-
Also note that if there is an error [parsing](https://github.com/
|
|
9173
|
+
Also note that if there is an error [parsing](https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser)
|
|
9151
9174
|
types for a tag, the function will silently ignore that tag, leaving it to
|
|
9152
9175
|
the `valid-types` rule to report parsing errors.
|
|
9153
9176
|
|
|
@@ -10741,7 +10764,7 @@ An options object may have any of the following properties:
|
|
|
10741
10764
|
| Aliases | `desc` |
|
|
10742
10765
|
| Recommended | false |
|
|
10743
10766
|
| Options | `contexts`, `exemptedBy`, `descriptionStyle`, `checkConstructors`, `checkGetters`, `checkSetters` |
|
|
10744
|
-
| Settings | `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` |
|
|
10767
|
+
| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` |
|
|
10745
10768
|
|
|
10746
10769
|
The following patterns are considered problems:
|
|
10747
10770
|
|
|
@@ -11320,7 +11343,7 @@ report a missing example description after this is added.
|
|
|
11320
11343
|
|Tags|`example`|
|
|
11321
11344
|
|Recommended|false|
|
|
11322
11345
|
|Options|`exemptedBy`, `exemptNoArguments`, `avoidExampleOnConstructors`, `contexts`|
|
|
11323
|
-
|Settings|`overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`|
|
|
11346
|
+
|Settings|`ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`|
|
|
11324
11347
|
|
|
11325
11348
|
The following patterns are considered problems:
|
|
11326
11349
|
|
|
@@ -12793,7 +12816,7 @@ class Animal {
|
|
|
12793
12816
|
@SomeAnnotation('optionalParameter')
|
|
12794
12817
|
tail: boolean;
|
|
12795
12818
|
}
|
|
12796
|
-
// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["
|
|
12819
|
+
// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["PropertyDefinition"]}]
|
|
12797
12820
|
// Message: Missing JSDoc comment.
|
|
12798
12821
|
|
|
12799
12822
|
@Entity('users')
|
|
@@ -12887,7 +12910,7 @@ export class MyComponentComponent {
|
|
|
12887
12910
|
@Input()
|
|
12888
12911
|
public value = new EventEmitter();
|
|
12889
12912
|
}
|
|
12890
|
-
// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["
|
|
12913
|
+
// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["PropertyDefinition > Decorator[expression.callee.name=\"Input\"]"]}]
|
|
12891
12914
|
// Message: Missing JSDoc comment.
|
|
12892
12915
|
|
|
12893
12916
|
requestAnimationFrame(draw)
|
|
@@ -12931,6 +12954,12 @@ function comment () {
|
|
|
12931
12954
|
}
|
|
12932
12955
|
// "jsdoc/require-jsdoc": ["error"|"warn", {"enableFixer":false,"fixerMessage":" TODO: add comment"}]
|
|
12933
12956
|
// Message: Missing JSDoc comment.
|
|
12957
|
+
|
|
12958
|
+
export class InovaAutoCompleteComponent {
|
|
12959
|
+
public disabled = false;
|
|
12960
|
+
}
|
|
12961
|
+
// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["PropertyDefinition"],"publicOnly":true}]
|
|
12962
|
+
// Message: Missing JSDoc comment.
|
|
12934
12963
|
````
|
|
12935
12964
|
|
|
12936
12965
|
The following patterns are not considered problems:
|
|
@@ -12958,7 +12987,7 @@ export class Foo {
|
|
|
12958
12987
|
// "jsdoc/require-jsdoc": ["error"|"warn", {"contexts":["TSInterfaceDeclaration","TSMethodSignature","TSPropertySignature"],"publicOnly":{"ancestorsOnly":true}}]
|
|
12959
12988
|
|
|
12960
12989
|
/** This is comment */
|
|
12961
|
-
function
|
|
12990
|
+
function someFunction() {
|
|
12962
12991
|
interface FooBar {
|
|
12963
12992
|
fooBar: string;
|
|
12964
12993
|
}
|
|
@@ -14525,7 +14554,7 @@ supplied as default values. Defaults to `false`.
|
|
|
14525
14554
|
| Aliases | `arg`, `argument` |
|
|
14526
14555
|
|Recommended | true|
|
|
14527
14556
|
| Options | `autoIncrementBase`, `checkDestructured`, `checkDestructuredRoots`, `contexts`, `enableFixer`, `enableRootFixer`, `enableRestElementFixer`, `checkRestProperty`, `exemptedBy`, `checkConstructors`, `checkGetters`, `checkSetters`, `checkTypesPattern`, `unnamedRootBase`, `useDefaultObjectProperties`|
|
|
14528
|
-
| Settings | `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`|
|
|
14557
|
+
| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`|
|
|
14529
14558
|
|
|
14530
14559
|
The following patterns are considered problems:
|
|
14531
14560
|
|
|
@@ -14717,6 +14746,15 @@ function quux (foo) {
|
|
|
14717
14746
|
// Settings: {"jsdoc":{"overrideReplacesDocs":false}}
|
|
14718
14747
|
// Message: Missing JSDoc @param "foo" declaration.
|
|
14719
14748
|
|
|
14749
|
+
/**
|
|
14750
|
+
* @ignore
|
|
14751
|
+
*/
|
|
14752
|
+
function quux (foo) {
|
|
14753
|
+
|
|
14754
|
+
}
|
|
14755
|
+
// Settings: {"jsdoc":{"ignoreReplacesDocs":false}}
|
|
14756
|
+
// Message: Missing JSDoc @param "foo" declaration.
|
|
14757
|
+
|
|
14720
14758
|
/**
|
|
14721
14759
|
* @implements
|
|
14722
14760
|
*/
|
|
@@ -14756,6 +14794,20 @@ class A {
|
|
|
14756
14794
|
// Settings: {"jsdoc":{"overrideReplacesDocs":false}}
|
|
14757
14795
|
// Message: Missing JSDoc @param "foo" declaration.
|
|
14758
14796
|
|
|
14797
|
+
/**
|
|
14798
|
+
* @ignore
|
|
14799
|
+
*/
|
|
14800
|
+
class A {
|
|
14801
|
+
/**
|
|
14802
|
+
*
|
|
14803
|
+
*/
|
|
14804
|
+
quux (foo) {
|
|
14805
|
+
|
|
14806
|
+
}
|
|
14807
|
+
}
|
|
14808
|
+
// Settings: {"jsdoc":{"ignoreReplacesDocs":false}}
|
|
14809
|
+
// Message: Missing JSDoc @param "foo" declaration.
|
|
14810
|
+
|
|
14759
14811
|
/**
|
|
14760
14812
|
* @implements
|
|
14761
14813
|
*/
|
|
@@ -15296,6 +15348,14 @@ function quux (foo) {
|
|
|
15296
15348
|
}
|
|
15297
15349
|
// Settings: {"jsdoc":{"overrideReplacesDocs":true}}
|
|
15298
15350
|
|
|
15351
|
+
/**
|
|
15352
|
+
* @ignore
|
|
15353
|
+
*/
|
|
15354
|
+
function quux (foo) {
|
|
15355
|
+
|
|
15356
|
+
}
|
|
15357
|
+
// Settings: {"jsdoc":{"ignoreReplacesDocs":true}}
|
|
15358
|
+
|
|
15299
15359
|
/**
|
|
15300
15360
|
* @implements
|
|
15301
15361
|
*/
|
|
@@ -15404,6 +15464,19 @@ class A {
|
|
|
15404
15464
|
}
|
|
15405
15465
|
// Settings: {"jsdoc":{"overrideReplacesDocs":true}}
|
|
15406
15466
|
|
|
15467
|
+
/**
|
|
15468
|
+
* @ignore
|
|
15469
|
+
*/
|
|
15470
|
+
class A {
|
|
15471
|
+
/**
|
|
15472
|
+
*
|
|
15473
|
+
*/
|
|
15474
|
+
quux (foo) {
|
|
15475
|
+
|
|
15476
|
+
}
|
|
15477
|
+
}
|
|
15478
|
+
// Settings: {"jsdoc":{"ignoreReplacesDocs":true}}
|
|
15479
|
+
|
|
15407
15480
|
/**
|
|
15408
15481
|
* @implements
|
|
15409
15482
|
*/
|
|
@@ -17005,7 +17078,7 @@ Will also report if multiple `@returns` tags are present.
|
|
|
17005
17078
|
| Aliases | `return` |
|
|
17006
17079
|
|Recommended|true|
|
|
17007
17080
|
| Options | `checkConstructors`, `checkGetters`, `contexts`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync` |
|
|
17008
|
-
| Settings | `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` |
|
|
17081
|
+
| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` |
|
|
17009
17082
|
|
|
17010
17083
|
The following patterns are considered problems:
|
|
17011
17084
|
|
|
@@ -18049,7 +18122,7 @@ Requires that throw statements are documented.
|
|
|
18049
18122
|
| Aliases | `exception` |
|
|
18050
18123
|
|Recommended|true|
|
|
18051
18124
|
| Options | `contexts`, `exemptedBy` |
|
|
18052
|
-
| Settings | `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` |
|
|
18125
|
+
| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` |
|
|
18053
18126
|
|
|
18054
18127
|
The following patterns are considered problems:
|
|
18055
18128
|
|
|
@@ -18359,7 +18432,7 @@ option to expect a non-standard `@next` tag.
|
|
|
18359
18432
|
|Aliases|`yield`|
|
|
18360
18433
|
|Recommended|true|
|
|
18361
18434
|
| Options | `contexts`, `exemptedBy`, `withGeneratorTag`, `nextWithGeneratorTag`, `forceRequireYields`, `next` |
|
|
18362
|
-
| Settings | `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` |
|
|
18435
|
+
| Settings | `ignoreReplacesDocs`, `overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs` |
|
|
18363
18436
|
|
|
18364
18437
|
The following patterns are considered problems:
|
|
18365
18438
|
|
|
@@ -19934,10 +20007,10 @@ The following patterns are not considered problems:
|
|
|
19934
20007
|
|
|
19935
20008
|
Requires all types to be valid JSDoc, Closure, or TypeScript compiler types
|
|
19936
20009
|
without syntax errors. Note that what determines a valid type is handled by
|
|
19937
|
-
our type parsing engine, [
|
|
20010
|
+
our type parsing engine, [jsdoc-type-pratt-parser](https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser),
|
|
19938
20011
|
using [`settings.jsdoc.mode`](#eslint-plugin-jsdoc-settings-mode) to
|
|
19939
|
-
determine whether to use
|
|
19940
|
-
"jsdoc", "typescript", "closure" modes.
|
|
20012
|
+
determine whether to use jsdoc-type-pratt-parser's "permissive" parsing or
|
|
20013
|
+
the stricter "jsdoc", "typescript", "closure" modes.
|
|
19941
20014
|
|
|
19942
20015
|
The following tags have their "type" portions (the segment within brackets)
|
|
19943
20016
|
checked (though those portions may sometimes be confined to namepaths,
|
package/dist/iterateJsdoc.js
CHANGED
|
@@ -4,13 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = iterateJsdoc;
|
|
7
|
+
exports.getSettings = void 0;
|
|
7
8
|
Object.defineProperty(exports, "parseComment", {
|
|
8
9
|
enumerable: true,
|
|
9
10
|
get: function () {
|
|
10
11
|
return _jsdoccomment.parseComment;
|
|
11
12
|
}
|
|
12
13
|
});
|
|
13
|
-
exports.getSettings = void 0;
|
|
14
14
|
|
|
15
15
|
var _jsdoccomment = require("@es-joy/jsdoccomment");
|
|
16
16
|
|
|
@@ -87,6 +87,7 @@ const getUtils = (node, jsdoc, jsdocNode, settings, report, context, iteratingAl
|
|
|
87
87
|
const {
|
|
88
88
|
tagNamePreference,
|
|
89
89
|
overrideReplacesDocs,
|
|
90
|
+
ignoreReplacesDocs,
|
|
90
91
|
implementsReplacesDocs,
|
|
91
92
|
augmentsExtendsReplacesDocs,
|
|
92
93
|
maxLines,
|
|
@@ -476,7 +477,7 @@ const getUtils = (node, jsdoc, jsdocNode, settings, report, context, iteratingAl
|
|
|
476
477
|
utils.avoidDocs = () => {
|
|
477
478
|
var _context$options$0$ex, _context$options$;
|
|
478
479
|
|
|
479
|
-
if (overrideReplacesDocs !== false && (utils.hasTag('override') || utils.classHasTag('override')) || implementsReplacesDocs !== false && (utils.hasTag('implements') || utils.classHasTag('implements')) || augmentsExtendsReplacesDocs && (utils.hasATag(['augments', 'extends']) || utils.classHasTag('augments') || utils.classHasTag('extends'))) {
|
|
480
|
+
if (ignoreReplacesDocs !== false && (utils.hasTag('ignore') || utils.classHasTag('ignore')) || overrideReplacesDocs !== false && (utils.hasTag('override') || utils.classHasTag('override')) || implementsReplacesDocs !== false && (utils.hasTag('implements') || utils.classHasTag('implements')) || augmentsExtendsReplacesDocs && (utils.hasATag(['augments', 'extends']) || utils.classHasTag('augments') || utils.classHasTag('extends'))) {
|
|
480
481
|
return true;
|
|
481
482
|
}
|
|
482
483
|
|
|
@@ -651,9 +652,9 @@ const getUtils = (node, jsdoc, jsdocNode, settings, report, context, iteratingAl
|
|
|
651
652
|
};
|
|
652
653
|
|
|
653
654
|
const getSettings = context => {
|
|
654
|
-
var _context$settings$jsd, _context$settings$jsd2, _context$settings$jsd3, _context$settings$jsd4, _context$settings$jsd5, _context$settings$jsd6, _context$settings$jsd7, _context$settings$jsd8, _context$settings$jsd9, _context$settings$jsd10, _context$settings$jsd11, _context$settings$jsd12, _context$settings$jsd13, _context$settings$jsd14, _context$settings$jsd15, _context$settings$jsd16, _context$settings$jsd17;
|
|
655
|
+
var _context$settings$jsd, _context$settings$jsd2, _context$settings$jsd3, _context$settings$jsd4, _context$settings$jsd5, _context$settings$jsd6, _context$settings$jsd7, _context$settings$jsd8, _context$settings$jsd9, _context$settings$jsd10, _context$settings$jsd11, _context$settings$jsd12, _context$settings$jsd13, _context$settings$jsd14, _context$settings$jsd15, _context$settings$jsd16, _context$settings$jsd17, _context$settings$jsd18;
|
|
655
656
|
|
|
656
|
-
/* eslint-disable
|
|
657
|
+
/* eslint-disable canonical/sort-keys */
|
|
657
658
|
const settings = {
|
|
658
659
|
// All rules
|
|
659
660
|
ignorePrivate: Boolean((_context$settings$jsd = context.settings.jsdoc) === null || _context$settings$jsd === void 0 ? void 0 : _context$settings$jsd.ignorePrivate),
|
|
@@ -666,14 +667,16 @@ const getSettings = context => {
|
|
|
666
667
|
preferredTypes: (_context$settings$jsd9 = (_context$settings$jsd10 = context.settings.jsdoc) === null || _context$settings$jsd10 === void 0 ? void 0 : _context$settings$jsd10.preferredTypes) !== null && _context$settings$jsd9 !== void 0 ? _context$settings$jsd9 : {},
|
|
667
668
|
// `check-types`, `no-undefined-types`, `valid-types`
|
|
668
669
|
structuredTags: (_context$settings$jsd11 = (_context$settings$jsd12 = context.settings.jsdoc) === null || _context$settings$jsd12 === void 0 ? void 0 : _context$settings$jsd12.structuredTags) !== null && _context$settings$jsd11 !== void 0 ? _context$settings$jsd11 : {},
|
|
669
|
-
// `require-param`, `require-description`, `require-example`,
|
|
670
|
+
// `require-param`, `require-description`, `require-example`,
|
|
671
|
+
// `require-returns`, `require-throw`, `require-yields`
|
|
670
672
|
overrideReplacesDocs: (_context$settings$jsd13 = context.settings.jsdoc) === null || _context$settings$jsd13 === void 0 ? void 0 : _context$settings$jsd13.overrideReplacesDocs,
|
|
671
|
-
|
|
672
|
-
|
|
673
|
+
ignoreReplacesDocs: (_context$settings$jsd14 = context.settings.jsdoc) === null || _context$settings$jsd14 === void 0 ? void 0 : _context$settings$jsd14.ignoreReplacesDocs,
|
|
674
|
+
implementsReplacesDocs: (_context$settings$jsd15 = context.settings.jsdoc) === null || _context$settings$jsd15 === void 0 ? void 0 : _context$settings$jsd15.implementsReplacesDocs,
|
|
675
|
+
augmentsExtendsReplacesDocs: (_context$settings$jsd16 = context.settings.jsdoc) === null || _context$settings$jsd16 === void 0 ? void 0 : _context$settings$jsd16.augmentsExtendsReplacesDocs,
|
|
673
676
|
// Many rules, e.g., `check-tag-names`
|
|
674
|
-
mode: (_context$settings$
|
|
677
|
+
mode: (_context$settings$jsd17 = (_context$settings$jsd18 = context.settings.jsdoc) === null || _context$settings$jsd18 === void 0 ? void 0 : _context$settings$jsd18.mode) !== null && _context$settings$jsd17 !== void 0 ? _context$settings$jsd17 : context.parserPath.includes('@typescript-eslint') ? 'typescript' : 'jsdoc'
|
|
675
678
|
};
|
|
676
|
-
/* eslint-enable
|
|
679
|
+
/* eslint-enable canonical/sort-keys */
|
|
677
680
|
|
|
678
681
|
_jsdocUtils.default.setTagStructure(settings.mode);
|
|
679
682
|
|
|
@@ -721,7 +724,8 @@ const makeReport = (context, commentNode) => {
|
|
|
721
724
|
start: {
|
|
722
725
|
line: lineNumber
|
|
723
726
|
}
|
|
724
|
-
};
|
|
727
|
+
}; // Todo: Remove ignore once `check-examples` can be restored for ESLint 8+
|
|
728
|
+
// istanbul ignore if
|
|
725
729
|
|
|
726
730
|
if (jsdocLoc.column) {
|
|
727
731
|
const colNumber = commentNode.loc.start.column + jsdocLoc.column;
|
|
@@ -824,7 +828,7 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveContexts) => {
|
|
|
824
828
|
} = sourceCode;
|
|
825
829
|
const utils = getBasicUtils(context, settings);
|
|
826
830
|
jsdocNodes.forEach(jsdocNode => {
|
|
827
|
-
if (!/^\/\*\*\s
|
|
831
|
+
if (!/^\/\*\*\s/u.test(sourceCode.getText(jsdocNode))) {
|
|
828
832
|
return;
|
|
829
833
|
}
|
|
830
834
|
|