eslint-plugin-tsdoc-require-2 1.0.2 → 1.0.3

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.
Files changed (174) hide show
  1. package/README.md +115 -73
  2. package/dist/internal/require-tag-factory.cjs +309 -0
  3. package/dist/internal/require-tag-factory.d.ts +26 -0
  4. package/dist/internal/require-tag-factory.d.ts.map +1 -0
  5. package/dist/internal/require-tag-factory.js +302 -0
  6. package/dist/internal/require-tag-factory.js.map +1 -0
  7. package/dist/plugin.cjs +33 -11
  8. package/dist/plugin.d.ts +2 -1
  9. package/dist/plugin.d.ts.map +1 -1
  10. package/dist/plugin.js +33 -11
  11. package/dist/plugin.js.map +1 -1
  12. package/dist/rules/require-tag-rules.cjs +88 -0
  13. package/dist/rules/require-tag-rules.d.ts +35 -0
  14. package/dist/rules/require-tag-rules.d.ts.map +1 -0
  15. package/dist/rules/require-tag-rules.js +85 -0
  16. package/dist/rules/require-tag-rules.js.map +1 -0
  17. package/dist/rules/require.cjs +16 -3
  18. package/dist/rules/require.d.ts +1 -0
  19. package/dist/rules/require.d.ts.map +1 -1
  20. package/dist/rules/require.js +16 -3
  21. package/dist/rules/require.js.map +1 -1
  22. package/dist/rules/required-tags/require-alpha.cjs +32 -0
  23. package/dist/rules/required-tags/require-alpha.d.ts +4 -0
  24. package/dist/rules/required-tags/require-alpha.d.ts.map +1 -0
  25. package/dist/rules/required-tags/require-alpha.js +30 -0
  26. package/dist/rules/required-tags/require-alpha.js.map +1 -0
  27. package/dist/rules/required-tags/require-beta.cjs +32 -0
  28. package/dist/rules/required-tags/require-beta.d.ts +4 -0
  29. package/dist/rules/required-tags/require-beta.d.ts.map +1 -0
  30. package/dist/rules/required-tags/require-beta.js +30 -0
  31. package/dist/rules/required-tags/require-beta.js.map +1 -0
  32. package/dist/rules/required-tags/require-decorator.cjs +32 -0
  33. package/dist/rules/required-tags/require-decorator.d.ts +4 -0
  34. package/dist/rules/required-tags/require-decorator.d.ts.map +1 -0
  35. package/dist/rules/required-tags/require-decorator.js +30 -0
  36. package/dist/rules/required-tags/require-decorator.js.map +1 -0
  37. package/dist/rules/required-tags/require-default-value.cjs +32 -0
  38. package/dist/rules/required-tags/require-default-value.d.ts +4 -0
  39. package/dist/rules/required-tags/require-default-value.d.ts.map +1 -0
  40. package/dist/rules/required-tags/require-default-value.js +30 -0
  41. package/dist/rules/required-tags/require-default-value.js.map +1 -0
  42. package/dist/rules/required-tags/require-deprecated.cjs +32 -0
  43. package/dist/rules/required-tags/require-deprecated.d.ts +4 -0
  44. package/dist/rules/required-tags/require-deprecated.d.ts.map +1 -0
  45. package/dist/rules/required-tags/require-deprecated.js +30 -0
  46. package/dist/rules/required-tags/require-deprecated.js.map +1 -0
  47. package/dist/rules/required-tags/require-event-property.cjs +32 -0
  48. package/dist/rules/required-tags/require-event-property.d.ts +4 -0
  49. package/dist/rules/required-tags/require-event-property.d.ts.map +1 -0
  50. package/dist/rules/required-tags/require-event-property.js +30 -0
  51. package/dist/rules/required-tags/require-event-property.js.map +1 -0
  52. package/dist/rules/required-tags/require-example.cjs +32 -0
  53. package/dist/rules/required-tags/require-example.d.ts +4 -0
  54. package/dist/rules/required-tags/require-example.d.ts.map +1 -0
  55. package/dist/rules/required-tags/require-example.js +30 -0
  56. package/dist/rules/required-tags/require-example.js.map +1 -0
  57. package/dist/rules/required-tags/require-experimental.cjs +32 -0
  58. package/dist/rules/required-tags/require-experimental.d.ts +4 -0
  59. package/dist/rules/required-tags/require-experimental.d.ts.map +1 -0
  60. package/dist/rules/required-tags/require-experimental.js +30 -0
  61. package/dist/rules/required-tags/require-experimental.js.map +1 -0
  62. package/dist/rules/required-tags/require-inherit-doc.cjs +32 -0
  63. package/dist/rules/required-tags/require-inherit-doc.d.ts +4 -0
  64. package/dist/rules/required-tags/require-inherit-doc.d.ts.map +1 -0
  65. package/dist/rules/required-tags/require-inherit-doc.js +30 -0
  66. package/dist/rules/required-tags/require-inherit-doc.js.map +1 -0
  67. package/dist/rules/required-tags/require-internal.cjs +32 -0
  68. package/dist/rules/required-tags/require-internal.d.ts +4 -0
  69. package/dist/rules/required-tags/require-internal.d.ts.map +1 -0
  70. package/dist/rules/required-tags/require-internal.js +30 -0
  71. package/dist/rules/required-tags/require-internal.js.map +1 -0
  72. package/dist/rules/required-tags/require-label.cjs +32 -0
  73. package/dist/rules/required-tags/require-label.d.ts +4 -0
  74. package/dist/rules/required-tags/require-label.d.ts.map +1 -0
  75. package/dist/rules/required-tags/require-label.js +30 -0
  76. package/dist/rules/required-tags/require-label.js.map +1 -0
  77. package/dist/rules/required-tags/require-link.cjs +32 -0
  78. package/dist/rules/required-tags/require-link.d.ts +4 -0
  79. package/dist/rules/required-tags/require-link.d.ts.map +1 -0
  80. package/dist/rules/required-tags/require-link.js +30 -0
  81. package/dist/rules/required-tags/require-link.js.map +1 -0
  82. package/dist/rules/required-tags/require-override.cjs +32 -0
  83. package/dist/rules/required-tags/require-override.d.ts +4 -0
  84. package/dist/rules/required-tags/require-override.d.ts.map +1 -0
  85. package/dist/rules/required-tags/require-override.js +30 -0
  86. package/dist/rules/required-tags/require-override.js.map +1 -0
  87. package/dist/rules/required-tags/require-package-documentation.cjs +32 -0
  88. package/dist/rules/required-tags/require-package-documentation.d.ts +4 -0
  89. package/dist/rules/required-tags/require-package-documentation.d.ts.map +1 -0
  90. package/dist/rules/required-tags/require-package-documentation.js +30 -0
  91. package/dist/rules/required-tags/require-package-documentation.js.map +1 -0
  92. package/dist/rules/required-tags/require-param.cjs +32 -0
  93. package/dist/rules/required-tags/require-param.d.ts +4 -0
  94. package/dist/rules/required-tags/require-param.d.ts.map +1 -0
  95. package/dist/rules/required-tags/require-param.js +30 -0
  96. package/dist/rules/required-tags/require-param.js.map +1 -0
  97. package/dist/rules/required-tags/require-private-remarks.cjs +32 -0
  98. package/dist/rules/required-tags/require-private-remarks.d.ts +4 -0
  99. package/dist/rules/required-tags/require-private-remarks.d.ts.map +1 -0
  100. package/dist/rules/required-tags/require-private-remarks.js +30 -0
  101. package/dist/rules/required-tags/require-private-remarks.js.map +1 -0
  102. package/dist/rules/required-tags/require-public.cjs +32 -0
  103. package/dist/rules/required-tags/require-public.d.ts +4 -0
  104. package/dist/rules/required-tags/require-public.d.ts.map +1 -0
  105. package/dist/rules/required-tags/require-public.js +30 -0
  106. package/dist/rules/required-tags/require-public.js.map +1 -0
  107. package/dist/rules/required-tags/require-readonly.cjs +32 -0
  108. package/dist/rules/required-tags/require-readonly.d.ts +4 -0
  109. package/dist/rules/required-tags/require-readonly.d.ts.map +1 -0
  110. package/dist/rules/required-tags/require-readonly.js +30 -0
  111. package/dist/rules/required-tags/require-readonly.js.map +1 -0
  112. package/dist/rules/required-tags/require-remarks.cjs +32 -0
  113. package/dist/rules/required-tags/require-remarks.d.ts +4 -0
  114. package/dist/rules/required-tags/require-remarks.d.ts.map +1 -0
  115. package/dist/rules/required-tags/require-remarks.js +30 -0
  116. package/dist/rules/required-tags/require-remarks.js.map +1 -0
  117. package/dist/rules/required-tags/require-returns.cjs +32 -0
  118. package/dist/rules/required-tags/require-returns.d.ts +4 -0
  119. package/dist/rules/required-tags/require-returns.d.ts.map +1 -0
  120. package/dist/rules/required-tags/require-returns.js +30 -0
  121. package/dist/rules/required-tags/require-returns.js.map +1 -0
  122. package/dist/rules/required-tags/require-sealed.cjs +32 -0
  123. package/dist/rules/required-tags/require-sealed.d.ts +4 -0
  124. package/dist/rules/required-tags/require-sealed.d.ts.map +1 -0
  125. package/dist/rules/required-tags/require-sealed.js +30 -0
  126. package/dist/rules/required-tags/require-sealed.js.map +1 -0
  127. package/dist/rules/required-tags/require-see.cjs +32 -0
  128. package/dist/rules/required-tags/require-see.d.ts +4 -0
  129. package/dist/rules/required-tags/require-see.d.ts.map +1 -0
  130. package/dist/rules/required-tags/require-see.js +30 -0
  131. package/dist/rules/required-tags/require-see.js.map +1 -0
  132. package/dist/rules/required-tags/require-throws.cjs +32 -0
  133. package/dist/rules/required-tags/require-throws.d.ts +4 -0
  134. package/dist/rules/required-tags/require-throws.d.ts.map +1 -0
  135. package/dist/rules/required-tags/require-throws.js +30 -0
  136. package/dist/rules/required-tags/require-throws.js.map +1 -0
  137. package/dist/rules/required-tags/require-type-param.cjs +32 -0
  138. package/dist/rules/required-tags/require-type-param.d.ts +4 -0
  139. package/dist/rules/required-tags/require-type-param.d.ts.map +1 -0
  140. package/dist/rules/required-tags/require-type-param.js +30 -0
  141. package/dist/rules/required-tags/require-type-param.js.map +1 -0
  142. package/dist/rules/required-tags/require-virtual.cjs +32 -0
  143. package/dist/rules/required-tags/require-virtual.d.ts +4 -0
  144. package/dist/rules/required-tags/require-virtual.d.ts.map +1 -0
  145. package/dist/rules/required-tags/require-virtual.js +30 -0
  146. package/dist/rules/required-tags/require-virtual.js.map +1 -0
  147. package/docs/rules/require.md +39 -5
  148. package/docs/rules/required-tags/require-alpha.md +57 -0
  149. package/docs/rules/required-tags/require-beta.md +57 -0
  150. package/docs/rules/required-tags/require-decorator.md +57 -0
  151. package/docs/rules/required-tags/require-default-value.md +57 -0
  152. package/docs/rules/required-tags/require-deprecated.md +57 -0
  153. package/docs/rules/required-tags/require-event-property.md +57 -0
  154. package/docs/rules/required-tags/require-example.md +57 -0
  155. package/docs/rules/required-tags/require-experimental.md +57 -0
  156. package/docs/rules/required-tags/require-inherit-doc.md +57 -0
  157. package/docs/rules/required-tags/require-internal.md +57 -0
  158. package/docs/rules/required-tags/require-label.md +57 -0
  159. package/docs/rules/required-tags/require-link.md +57 -0
  160. package/docs/rules/required-tags/require-override.md +57 -0
  161. package/docs/rules/required-tags/require-package-documentation.md +57 -0
  162. package/docs/rules/required-tags/require-param.md +57 -0
  163. package/docs/rules/required-tags/require-private-remarks.md +57 -0
  164. package/docs/rules/required-tags/require-public.md +57 -0
  165. package/docs/rules/required-tags/require-readonly.md +57 -0
  166. package/docs/rules/required-tags/require-remarks.md +57 -0
  167. package/docs/rules/required-tags/require-returns.md +57 -0
  168. package/docs/rules/required-tags/require-sealed.md +57 -0
  169. package/docs/rules/required-tags/require-see.md +57 -0
  170. package/docs/rules/required-tags/require-throws.md +57 -0
  171. package/docs/rules/required-tags/require-type-param.md +57 -0
  172. package/docs/rules/required-tags/require-virtual.md +57 -0
  173. package/docs/rules/required-tags.md +76 -0
  174. package/package.json +23 -11
@@ -0,0 +1,57 @@
1
+ # tsdoc-require-2/require-public
2
+
3
+ Require the `@public` tag in TSDoc blocks for exported declarations.
4
+
5
+ ## Rule details
6
+
7
+ By default, this rule reports exported declarations (and supported default exports) that have TSDoc but are missing `@public`. Set `includeNonExported: true` to also check non-exported top-level declarations.
8
+
9
+ It supports the same options as [`tsdoc-require-2/require`](../require.md):
10
+
11
+ - `enforceFor`: choose which declaration kinds are checked.
12
+ - `includeNonExported`: when `true`, also check non-exported top-level declarations (default: `false`).
13
+
14
+ ## Options
15
+
16
+ ```json
17
+ {
18
+ "rules": {
19
+ "tsdoc-require-2/require-public": [
20
+ "error",
21
+ {
22
+ "enforceFor": ["class", "function", "interface", "type", "enum", "variable", "object"]
23
+ }
24
+ ]
25
+ }
26
+ }
27
+ ```
28
+
29
+ ## Examples
30
+
31
+ ### ❌ Incorrect
32
+
33
+ ```ts
34
+ /**
35
+ * Performs a task.
36
+ */
37
+ export function runTask(value: string): string {
38
+ return value;
39
+ }
40
+ ```
41
+
42
+ ### ✅ Correct
43
+
44
+ ```ts
45
+ /**
46
+ * Performs a task.
47
+ * @public
48
+ */
49
+ export function runTask(value: string): string {
50
+ return value;
51
+ }
52
+ ```
53
+
54
+ ## Further reading
55
+
56
+ - TSDoc tag reference: <https://tsdoc.org/pages/tags/public/>
57
+ - Rule index: [required-tags](../required-tags.md)
@@ -0,0 +1,57 @@
1
+ # tsdoc-require-2/require-readonly
2
+
3
+ Require the `@readonly` tag in TSDoc blocks for exported declarations.
4
+
5
+ ## Rule details
6
+
7
+ By default, this rule reports exported declarations (and supported default exports) that have TSDoc but are missing `@readonly`. Set `includeNonExported: true` to also check non-exported top-level declarations.
8
+
9
+ It supports the same options as [`tsdoc-require-2/require`](../require.md):
10
+
11
+ - `enforceFor`: choose which declaration kinds are checked.
12
+ - `includeNonExported`: when `true`, also check non-exported top-level declarations (default: `false`).
13
+
14
+ ## Options
15
+
16
+ ```json
17
+ {
18
+ "rules": {
19
+ "tsdoc-require-2/require-readonly": [
20
+ "error",
21
+ {
22
+ "enforceFor": ["class", "function", "interface", "type", "enum", "variable", "object"]
23
+ }
24
+ ]
25
+ }
26
+ }
27
+ ```
28
+
29
+ ## Examples
30
+
31
+ ### ❌ Incorrect
32
+
33
+ ```ts
34
+ /**
35
+ * Performs a task.
36
+ */
37
+ export function runTask(value: string): string {
38
+ return value;
39
+ }
40
+ ```
41
+
42
+ ### ✅ Correct
43
+
44
+ ```ts
45
+ /**
46
+ * Performs a task.
47
+ * @readonly
48
+ */
49
+ export function runTask(value: string): string {
50
+ return value;
51
+ }
52
+ ```
53
+
54
+ ## Further reading
55
+
56
+ - TSDoc tag reference: <https://tsdoc.org/pages/tags/readonly/>
57
+ - Rule index: [required-tags](../required-tags.md)
@@ -0,0 +1,57 @@
1
+ # tsdoc-require-2/require-remarks
2
+
3
+ Require the `@remarks` tag in TSDoc blocks for exported declarations.
4
+
5
+ ## Rule details
6
+
7
+ By default, this rule reports exported declarations (and supported default exports) that have TSDoc but are missing `@remarks`. Set `includeNonExported: true` to also check non-exported top-level declarations.
8
+
9
+ It supports the same options as [`tsdoc-require-2/require`](../require.md):
10
+
11
+ - `enforceFor`: choose which declaration kinds are checked.
12
+ - `includeNonExported`: when `true`, also check non-exported top-level declarations (default: `false`).
13
+
14
+ ## Options
15
+
16
+ ```json
17
+ {
18
+ "rules": {
19
+ "tsdoc-require-2/require-remarks": [
20
+ "error",
21
+ {
22
+ "enforceFor": ["class", "function", "interface", "type", "enum", "variable", "object"]
23
+ }
24
+ ]
25
+ }
26
+ }
27
+ ```
28
+
29
+ ## Examples
30
+
31
+ ### ❌ Incorrect
32
+
33
+ ```ts
34
+ /**
35
+ * Performs a task.
36
+ */
37
+ export function runTask(value: string): string {
38
+ return value;
39
+ }
40
+ ```
41
+
42
+ ### ✅ Correct
43
+
44
+ ```ts
45
+ /**
46
+ * Performs a task.
47
+ * @remarks
48
+ */
49
+ export function runTask(value: string): string {
50
+ return value;
51
+ }
52
+ ```
53
+
54
+ ## Further reading
55
+
56
+ - TSDoc tag reference: <https://tsdoc.org/pages/tags/remarks/>
57
+ - Rule index: [required-tags](../required-tags.md)
@@ -0,0 +1,57 @@
1
+ # tsdoc-require-2/require-returns
2
+
3
+ Require the `@returns` tag in TSDoc blocks for exported declarations.
4
+
5
+ ## Rule details
6
+
7
+ By default, this rule reports exported declarations (and supported default exports) that have TSDoc but are missing `@returns`. Set `includeNonExported: true` to also check non-exported top-level declarations.
8
+
9
+ It supports the same options as [`tsdoc-require-2/require`](../require.md):
10
+
11
+ - `enforceFor`: choose which declaration kinds are checked.
12
+ - `includeNonExported`: when `true`, also check non-exported top-level declarations (default: `false`).
13
+
14
+ ## Options
15
+
16
+ ```json
17
+ {
18
+ "rules": {
19
+ "tsdoc-require-2/require-returns": [
20
+ "error",
21
+ {
22
+ "enforceFor": ["class", "function", "interface", "type", "enum", "variable", "object"]
23
+ }
24
+ ]
25
+ }
26
+ }
27
+ ```
28
+
29
+ ## Examples
30
+
31
+ ### ❌ Incorrect
32
+
33
+ ```ts
34
+ /**
35
+ * Performs a task.
36
+ */
37
+ export function runTask(value: string): string {
38
+ return value;
39
+ }
40
+ ```
41
+
42
+ ### ✅ Correct
43
+
44
+ ```ts
45
+ /**
46
+ * Performs a task.
47
+ * @returns
48
+ */
49
+ export function runTask(value: string): string {
50
+ return value;
51
+ }
52
+ ```
53
+
54
+ ## Further reading
55
+
56
+ - TSDoc tag reference: <https://tsdoc.org/pages/tags/returns/>
57
+ - Rule index: [required-tags](../required-tags.md)
@@ -0,0 +1,57 @@
1
+ # tsdoc-require-2/require-sealed
2
+
3
+ Require the `@sealed` tag in TSDoc blocks for exported declarations.
4
+
5
+ ## Rule details
6
+
7
+ By default, this rule reports exported declarations (and supported default exports) that have TSDoc but are missing `@sealed`. Set `includeNonExported: true` to also check non-exported top-level declarations.
8
+
9
+ It supports the same options as [`tsdoc-require-2/require`](../require.md):
10
+
11
+ - `enforceFor`: choose which declaration kinds are checked.
12
+ - `includeNonExported`: when `true`, also check non-exported top-level declarations (default: `false`).
13
+
14
+ ## Options
15
+
16
+ ```json
17
+ {
18
+ "rules": {
19
+ "tsdoc-require-2/require-sealed": [
20
+ "error",
21
+ {
22
+ "enforceFor": ["class", "function", "interface", "type", "enum", "variable", "object"]
23
+ }
24
+ ]
25
+ }
26
+ }
27
+ ```
28
+
29
+ ## Examples
30
+
31
+ ### ❌ Incorrect
32
+
33
+ ```ts
34
+ /**
35
+ * Performs a task.
36
+ */
37
+ export function runTask(value: string): string {
38
+ return value;
39
+ }
40
+ ```
41
+
42
+ ### ✅ Correct
43
+
44
+ ```ts
45
+ /**
46
+ * Performs a task.
47
+ * @sealed
48
+ */
49
+ export function runTask(value: string): string {
50
+ return value;
51
+ }
52
+ ```
53
+
54
+ ## Further reading
55
+
56
+ - TSDoc tag reference: <https://tsdoc.org/pages/tags/sealed/>
57
+ - Rule index: [required-tags](../required-tags.md)
@@ -0,0 +1,57 @@
1
+ # tsdoc-require-2/require-see
2
+
3
+ Require the `@see` tag in TSDoc blocks for exported declarations.
4
+
5
+ ## Rule details
6
+
7
+ By default, this rule reports exported declarations (and supported default exports) that have TSDoc but are missing `@see`. Set `includeNonExported: true` to also check non-exported top-level declarations.
8
+
9
+ It supports the same options as [`tsdoc-require-2/require`](../require.md):
10
+
11
+ - `enforceFor`: choose which declaration kinds are checked.
12
+ - `includeNonExported`: when `true`, also check non-exported top-level declarations (default: `false`).
13
+
14
+ ## Options
15
+
16
+ ```json
17
+ {
18
+ "rules": {
19
+ "tsdoc-require-2/require-see": [
20
+ "error",
21
+ {
22
+ "enforceFor": ["class", "function", "interface", "type", "enum", "variable", "object"]
23
+ }
24
+ ]
25
+ }
26
+ }
27
+ ```
28
+
29
+ ## Examples
30
+
31
+ ### ❌ Incorrect
32
+
33
+ ```ts
34
+ /**
35
+ * Performs a task.
36
+ */
37
+ export function runTask(value: string): string {
38
+ return value;
39
+ }
40
+ ```
41
+
42
+ ### ✅ Correct
43
+
44
+ ```ts
45
+ /**
46
+ * Performs a task.
47
+ * @see
48
+ */
49
+ export function runTask(value: string): string {
50
+ return value;
51
+ }
52
+ ```
53
+
54
+ ## Further reading
55
+
56
+ - TSDoc tag reference: <https://tsdoc.org/pages/tags/see/>
57
+ - Rule index: [required-tags](../required-tags.md)
@@ -0,0 +1,57 @@
1
+ # tsdoc-require-2/require-throws
2
+
3
+ Require the `@throws` tag in TSDoc blocks for exported declarations.
4
+
5
+ ## Rule details
6
+
7
+ By default, this rule reports exported declarations (and supported default exports) that have TSDoc but are missing `@throws`. Set `includeNonExported: true` to also check non-exported top-level declarations.
8
+
9
+ It supports the same options as [`tsdoc-require-2/require`](../require.md):
10
+
11
+ - `enforceFor`: choose which declaration kinds are checked.
12
+ - `includeNonExported`: when `true`, also check non-exported top-level declarations (default: `false`).
13
+
14
+ ## Options
15
+
16
+ ```json
17
+ {
18
+ "rules": {
19
+ "tsdoc-require-2/require-throws": [
20
+ "error",
21
+ {
22
+ "enforceFor": ["class", "function", "interface", "type", "enum", "variable", "object"]
23
+ }
24
+ ]
25
+ }
26
+ }
27
+ ```
28
+
29
+ ## Examples
30
+
31
+ ### ❌ Incorrect
32
+
33
+ ```ts
34
+ /**
35
+ * Performs a task.
36
+ */
37
+ export function runTask(value: string): string {
38
+ return value;
39
+ }
40
+ ```
41
+
42
+ ### ✅ Correct
43
+
44
+ ```ts
45
+ /**
46
+ * Performs a task.
47
+ * @throws
48
+ */
49
+ export function runTask(value: string): string {
50
+ return value;
51
+ }
52
+ ```
53
+
54
+ ## Further reading
55
+
56
+ - TSDoc tag reference: <https://tsdoc.org/pages/tags/throws/>
57
+ - Rule index: [required-tags](../required-tags.md)
@@ -0,0 +1,57 @@
1
+ # tsdoc-require-2/require-type-param
2
+
3
+ Require the `@typeParam` tag in TSDoc blocks for exported declarations.
4
+
5
+ ## Rule details
6
+
7
+ By default, this rule reports exported declarations (and supported default exports) that have TSDoc but are missing `@typeParam`. Set `includeNonExported: true` to also check non-exported top-level declarations.
8
+
9
+ It supports the same options as [`tsdoc-require-2/require`](../require.md):
10
+
11
+ - `enforceFor`: choose which declaration kinds are checked.
12
+ - `includeNonExported`: when `true`, also check non-exported top-level declarations (default: `false`).
13
+
14
+ ## Options
15
+
16
+ ```json
17
+ {
18
+ "rules": {
19
+ "tsdoc-require-2/require-type-param": [
20
+ "error",
21
+ {
22
+ "enforceFor": ["class", "function", "interface", "type", "enum", "variable", "object"]
23
+ }
24
+ ]
25
+ }
26
+ }
27
+ ```
28
+
29
+ ## Examples
30
+
31
+ ### ❌ Incorrect
32
+
33
+ ```ts
34
+ /**
35
+ * Performs a task.
36
+ */
37
+ export function runTask(value: string): string {
38
+ return value;
39
+ }
40
+ ```
41
+
42
+ ### ✅ Correct
43
+
44
+ ```ts
45
+ /**
46
+ * Performs a task.
47
+ * @typeParam
48
+ */
49
+ export function runTask(value: string): string {
50
+ return value;
51
+ }
52
+ ```
53
+
54
+ ## Further reading
55
+
56
+ - TSDoc tag reference: <https://tsdoc.org/pages/tags/typeparam/>
57
+ - Rule index: [required-tags](../required-tags.md)
@@ -0,0 +1,57 @@
1
+ # tsdoc-require-2/require-virtual
2
+
3
+ Require the `@virtual` tag in TSDoc blocks for exported declarations.
4
+
5
+ ## Rule details
6
+
7
+ By default, this rule reports exported declarations (and supported default exports) that have TSDoc but are missing `@virtual`. Set `includeNonExported: true` to also check non-exported top-level declarations.
8
+
9
+ It supports the same options as [`tsdoc-require-2/require`](../require.md):
10
+
11
+ - `enforceFor`: choose which declaration kinds are checked.
12
+ - `includeNonExported`: when `true`, also check non-exported top-level declarations (default: `false`).
13
+
14
+ ## Options
15
+
16
+ ```json
17
+ {
18
+ "rules": {
19
+ "tsdoc-require-2/require-virtual": [
20
+ "error",
21
+ {
22
+ "enforceFor": ["class", "function", "interface", "type", "enum", "variable", "object"]
23
+ }
24
+ ]
25
+ }
26
+ }
27
+ ```
28
+
29
+ ## Examples
30
+
31
+ ### ❌ Incorrect
32
+
33
+ ```ts
34
+ /**
35
+ * Performs a task.
36
+ */
37
+ export function runTask(value: string): string {
38
+ return value;
39
+ }
40
+ ```
41
+
42
+ ### ✅ Correct
43
+
44
+ ```ts
45
+ /**
46
+ * Performs a task.
47
+ * @virtual
48
+ */
49
+ export function runTask(value: string): string {
50
+ return value;
51
+ }
52
+ ```
53
+
54
+ ## Further reading
55
+
56
+ - TSDoc tag reference: <https://tsdoc.org/pages/tags/virtual/>
57
+ - Rule index: [required-tags](../required-tags.md)
@@ -0,0 +1,76 @@
1
+ # required-tags
2
+
3
+ Require specific TSDoc tags to exist in TSDoc blocks for exported declarations, with optional enforcement for non-exported top-level declarations.
4
+
5
+ ## Rules in this family
6
+
7
+ - [`tsdoc-require-2/require-alpha`](./required-tags/require-alpha.md)
8
+ - [`tsdoc-require-2/require-beta`](./required-tags/require-beta.md)
9
+ - [`tsdoc-require-2/require-decorator`](./required-tags/require-decorator.md)
10
+ - [`tsdoc-require-2/require-default-value`](./required-tags/require-default-value.md)
11
+ - [`tsdoc-require-2/require-deprecated`](./required-tags/require-deprecated.md)
12
+ - [`tsdoc-require-2/require-event-property`](./required-tags/require-event-property.md)
13
+ - [`tsdoc-require-2/require-example`](./required-tags/require-example.md)
14
+ - [`tsdoc-require-2/require-experimental`](./required-tags/require-experimental.md)
15
+ - [`tsdoc-require-2/require-inherit-doc`](./required-tags/require-inherit-doc.md)
16
+ - [`tsdoc-require-2/require-internal`](./required-tags/require-internal.md)
17
+ - [`tsdoc-require-2/require-label`](./required-tags/require-label.md)
18
+ - [`tsdoc-require-2/require-link`](./required-tags/require-link.md)
19
+ - [`tsdoc-require-2/require-override`](./required-tags/require-override.md)
20
+ - [`tsdoc-require-2/require-package-documentation`](./required-tags/require-package-documentation.md)
21
+ - [`tsdoc-require-2/require-param`](./required-tags/require-param.md)
22
+ - [`tsdoc-require-2/require-private-remarks`](./required-tags/require-private-remarks.md)
23
+ - [`tsdoc-require-2/require-public`](./required-tags/require-public.md)
24
+ - [`tsdoc-require-2/require-readonly`](./required-tags/require-readonly.md)
25
+ - [`tsdoc-require-2/require-remarks`](./required-tags/require-remarks.md)
26
+ - [`tsdoc-require-2/require-returns`](./required-tags/require-returns.md)
27
+ - [`tsdoc-require-2/require-sealed`](./required-tags/require-sealed.md)
28
+ - [`tsdoc-require-2/require-see`](./required-tags/require-see.md)
29
+ - [`tsdoc-require-2/require-throws`](./required-tags/require-throws.md)
30
+ - [`tsdoc-require-2/require-type-param`](./required-tags/require-type-param.md)
31
+ - [`tsdoc-require-2/require-virtual`](./required-tags/require-virtual.md)
32
+
33
+ ## Shared options
34
+
35
+ Each rule accepts the same option shape:
36
+
37
+ ```ts
38
+ [
39
+ {
40
+ enforceFor?: Array<
41
+ | "class"
42
+ | "enum"
43
+ | "function"
44
+ | "interface"
45
+ | "object"
46
+ | "type"
47
+ | "variable"
48
+ >;
49
+ includeNonExported?: boolean;
50
+ },
51
+ ]
52
+ ```
53
+
54
+ Default:
55
+
56
+ ```ts
57
+ [
58
+ {
59
+ enforceFor: [
60
+ "class",
61
+ "enum",
62
+ "function",
63
+ "interface",
64
+ "object",
65
+ "type",
66
+ "variable",
67
+ ],
68
+ includeNonExported: false,
69
+ },
70
+ ]
71
+ ```
72
+
73
+ - `enforceFor`: limits which declaration kinds are checked.
74
+ - `includeNonExported`: when `true`, also checks non-exported top-level declarations.
75
+
76
+ For behavior and examples, open each individual rule document linked above.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://www.schemastore.org/package.json",
3
3
  "name": "eslint-plugin-tsdoc-require-2",
4
- "version": "1.0.2",
4
+ "version": "1.0.3",
5
5
  "private": false,
6
6
  "description": "Require TSDoc comments for exported TypeScript declarations.",
7
7
  "keywords": [
@@ -57,6 +57,11 @@
57
57
  "build": "tsc -p tsconfig.build.json && node ./scripts/write-cjs-entry.mjs",
58
58
  "changelog:release-notes": "node ./scripts/changelog-release-notes.mjs",
59
59
  "clean": "rimraf coverage dist temp .cache",
60
+ "contrib": "all-contributors",
61
+ "contrib:add": "all-contributors add",
62
+ "contrib:check": "all-contributors check",
63
+ "contrib:compare": "npm run contrib:check",
64
+ "contrib:generate": "all-contributors generate",
60
65
  "lint": "eslint --cache --cache-strategy content --cache-location .cache/.eslintcache",
61
66
  "lint:compat:eslint": "node ./scripts/eslint-compat-smoke.mjs",
62
67
  "lint:compat:eslint10": "npm run lint:compat:eslint -- --expect-eslint-major=10",
@@ -70,6 +75,12 @@
70
75
  "lint:prettier:fix": "prettier . --log-level warn --cache --cache-location=.cache/.prettier-cache --cache-strategy=content --write",
71
76
  "lint:release": "npm run release:check",
72
77
  "release:check": "npm run clean && npm run build && npm run typecheck && npm run lint:fix && npm run lint:prettier:fix && npm run test",
78
+ "sync:readme": "npm run sync:readme:rules-table && npm run sync:readme:presets-matrix",
79
+ "sync:readme:check": "npm run sync:readme:rules-table:check && npm run sync:readme:presets-matrix:check",
80
+ "sync:readme:presets-matrix": "node ./scripts/sync-presets-rules-matrix.mjs",
81
+ "sync:readme:presets-matrix:check": "node ./scripts/sync-presets-rules-matrix.mjs --check",
82
+ "sync:readme:rules-table": "node ./scripts/sync-readme-rules-table.mjs",
83
+ "sync:readme:rules-table:check": "node ./scripts/sync-readme-rules-table.mjs --check",
73
84
  "test": "vitest run",
74
85
  "test:coverage": "vitest run --coverage",
75
86
  "test:watch": "vitest",
@@ -94,12 +105,13 @@
94
105
  "@microsoft/eslint-plugin-sdl": "^1.1.0",
95
106
  "@softonus/prettier-plugin-duplicate-remover": "^1.1.2",
96
107
  "@stylistic/eslint-plugin": "^5.10.0",
97
- "@types/node": "^25.4.0",
108
+ "@types/node": "^25.5.0",
98
109
  "@typescript-eslint/eslint-plugin": "^8.57.0",
99
110
  "@typescript-eslint/parser": "^8.57.0",
100
111
  "@typescript-eslint/rule-tester": "^8.57.0",
101
- "@vitest/coverage-v8": "^4.0.18",
102
- "@vitest/eslint-plugin": "^1.6.10",
112
+ "@vitest/coverage-v8": "^4.1.0",
113
+ "@vitest/eslint-plugin": "^1.6.12",
114
+ "all-contributors-cli": "^6.26.1",
103
115
  "eslint": "^10.0.3",
104
116
  "eslint-config-flat-gitignore": "^2.2.1",
105
117
  "eslint-config-prettier": "^10.1.8",
@@ -113,10 +125,10 @@
113
125
  "eslint-plugin-depend": "^1.5.0",
114
126
  "eslint-plugin-eslint-plugin": "^7.3.2",
115
127
  "eslint-plugin-etc": "^2.0.3",
116
- "eslint-plugin-file-progress-2": "^3.4.2",
128
+ "eslint-plugin-file-progress-2": "^3.4.3",
117
129
  "eslint-plugin-import-x": "^4.16.2",
118
- "eslint-plugin-jsdoc": "^62.7.1",
119
- "eslint-plugin-jsonc": "^3.1.1",
130
+ "eslint-plugin-jsdoc": "^62.8.0",
131
+ "eslint-plugin-jsonc": "^3.1.2",
120
132
  "eslint-plugin-jsx-a11y": "^6.10.2",
121
133
  "eslint-plugin-listeners": "^1.5.1",
122
134
  "eslint-plugin-loadable-imports": "^1.0.1",
@@ -133,7 +145,7 @@
133
145
  "eslint-plugin-no-unsanitized": "^4.1.5",
134
146
  "eslint-plugin-no-use-extend-native": "^0.7.2",
135
147
  "eslint-plugin-node-dependencies": "^2.2.0",
136
- "eslint-plugin-package-json": "^0.90.1",
148
+ "eslint-plugin-package-json": "^0.91.0",
137
149
  "eslint-plugin-perfectionist": "^5.6.0",
138
150
  "eslint-plugin-prefer-arrow": "^1.2.3",
139
151
  "eslint-plugin-prettier": "^5.5.5",
@@ -161,7 +173,7 @@
161
173
  "prettier-plugin-interpolated-html-tags": "^2.0.1",
162
174
  "prettier-plugin-jsdoc": "^1.8.0",
163
175
  "prettier-plugin-merge": "^0.10.0",
164
- "prettier-plugin-multiline-arrays": "^4.1.4",
176
+ "prettier-plugin-multiline-arrays": "^4.1.5",
165
177
  "prettier-plugin-packagejson": "^3.0.2",
166
178
  "prettier-plugin-properties": "^0.3.1",
167
179
  "prettier-plugin-sh": "^0.18.0",
@@ -173,9 +185,9 @@
173
185
  "rimraf": "^6.1.3",
174
186
  "toml-eslint-parser": "^1.0.3",
175
187
  "typescript": "^5.9.3",
176
- "vite": "^7.3.1",
188
+ "vite": "^8.0.0",
177
189
  "vite-tsconfig-paths": "^6.1.1",
178
- "vitest": "^4.0.18",
190
+ "vitest": "^4.1.0",
179
191
  "yaml-eslint-parser": "^2.0.0"
180
192
  },
181
193
  "peerDependencies": {