eslint-plugin-jsdoc 63.3.2 → 64.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.
Files changed (270) hide show
  1. package/dist/index.d.ts +7 -4
  2. package/package.json +27 -52
  3. package/src/index.js +7 -8
  4. package/dist/WarnSettings.cjs +0 -38
  5. package/dist/WarnSettings.cjs.map +0 -1
  6. package/dist/alignTransform.cjs +0 -402
  7. package/dist/alignTransform.cjs.map +0 -1
  8. package/dist/buildForbidRuleDefinition.cjs +0 -101
  9. package/dist/buildForbidRuleDefinition.cjs.map +0 -1
  10. package/dist/buildRejectOrPreferRuleDefinition.cjs +0 -352
  11. package/dist/buildRejectOrPreferRuleDefinition.cjs.map +0 -1
  12. package/dist/cjs/WarnSettings.d.ts +0 -16
  13. package/dist/cjs/alignTransform.d.ts +0 -33
  14. package/dist/cjs/buildForbidRuleDefinition.d.ts +0 -14
  15. package/dist/cjs/buildRejectOrPreferRuleDefinition.d.ts +0 -8
  16. package/dist/cjs/defaultTagOrder.d.ts +0 -4
  17. package/dist/cjs/exportParser.d.ts +0 -40
  18. package/dist/cjs/getDefaultTagStructureForMode.d.ts +0 -10
  19. package/dist/cjs/getJsdocProcessorPlugin.d.cts +0 -5
  20. package/dist/cjs/getJsdocProcessorPlugin.d.ts +0 -66
  21. package/dist/cjs/index-cjs.d.ts +0 -23
  22. package/dist/cjs/index.cjs.d.cts +0 -2
  23. package/dist/cjs/iterateJsdoc.d.cts +0 -7
  24. package/dist/cjs/iterateJsdoc.d.ts +0 -495
  25. package/dist/cjs/jsdocUtils.d.ts +0 -500
  26. package/dist/cjs/rules/checkAccess.d.ts +0 -2
  27. package/dist/cjs/rules/checkAlignment.d.ts +0 -2
  28. package/dist/cjs/rules/checkExamples.d.ts +0 -3
  29. package/dist/cjs/rules/checkIndentation.d.ts +0 -2
  30. package/dist/cjs/rules/checkLineAlignment.d.ts +0 -9
  31. package/dist/cjs/rules/checkParamNames.d.ts +0 -2
  32. package/dist/cjs/rules/checkPropertyNames.d.ts +0 -2
  33. package/dist/cjs/rules/checkSyntax.d.ts +0 -2
  34. package/dist/cjs/rules/checkTagNames.d.ts +0 -2
  35. package/dist/cjs/rules/checkTemplateNames.d.ts +0 -2
  36. package/dist/cjs/rules/checkTypes.d.ts +0 -7
  37. package/dist/cjs/rules/checkValues.d.ts +0 -2
  38. package/dist/cjs/rules/convertToJsdocComments.d.ts +0 -266
  39. package/dist/cjs/rules/emptyTags.d.ts +0 -2
  40. package/dist/cjs/rules/escapeInlineTags.d.ts +0 -2
  41. package/dist/cjs/rules/implementsOnClasses.d.ts +0 -2
  42. package/dist/cjs/rules/importsAsDependencies.d.ts +0 -2
  43. package/dist/cjs/rules/informativeDocs.d.ts +0 -2
  44. package/dist/cjs/rules/linesBeforeBlock.d.ts +0 -2
  45. package/dist/cjs/rules/matchDescription.d.ts +0 -2
  46. package/dist/cjs/rules/matchName.d.ts +0 -2
  47. package/dist/cjs/rules/multilineBlocks.d.ts +0 -2
  48. package/dist/cjs/rules/noBadBlocks.d.ts +0 -2
  49. package/dist/cjs/rules/noBlankBlockDescriptions.d.ts +0 -2
  50. package/dist/cjs/rules/noBlankBlocks.d.ts +0 -2
  51. package/dist/cjs/rules/noDefaults.d.ts +0 -2
  52. package/dist/cjs/rules/noMissingSyntax.d.ts +0 -9
  53. package/dist/cjs/rules/noMultiAsterisks.d.ts +0 -2
  54. package/dist/cjs/rules/noRestrictedSyntax.d.ts +0 -2
  55. package/dist/cjs/rules/noTypes.d.ts +0 -2
  56. package/dist/cjs/rules/noUndefinedTypes.d.ts +0 -2
  57. package/dist/cjs/rules/normalizeSeeLinks.d.ts +0 -2
  58. package/dist/cjs/rules/preferImportTag.d.ts +0 -2
  59. package/dist/cjs/rules/requireAsteriskPrefix.d.ts +0 -2
  60. package/dist/cjs/rules/requireDescription.d.ts +0 -2
  61. package/dist/cjs/rules/requireDescriptionCompleteSentence.d.ts +0 -2
  62. package/dist/cjs/rules/requireExample.d.ts +0 -2
  63. package/dist/cjs/rules/requireFileOverview.d.ts +0 -2
  64. package/dist/cjs/rules/requireHyphenBeforeParamDescription.d.ts +0 -2
  65. package/dist/cjs/rules/requireJsdoc.d.ts +0 -24
  66. package/dist/cjs/rules/requireParam.d.ts +0 -3
  67. package/dist/cjs/rules/requireParamDescription.d.ts +0 -2
  68. package/dist/cjs/rules/requireParamName.d.ts +0 -2
  69. package/dist/cjs/rules/requireParamType.d.ts +0 -2
  70. package/dist/cjs/rules/requireProperty.d.ts +0 -2
  71. package/dist/cjs/rules/requirePropertyDescription.d.ts +0 -2
  72. package/dist/cjs/rules/requirePropertyName.d.ts +0 -2
  73. package/dist/cjs/rules/requirePropertyType.d.ts +0 -2
  74. package/dist/cjs/rules/requireRejects.d.ts +0 -2
  75. package/dist/cjs/rules/requireReturns.d.ts +0 -2
  76. package/dist/cjs/rules/requireReturnsCheck.d.ts +0 -2
  77. package/dist/cjs/rules/requireReturnsDescription.d.ts +0 -2
  78. package/dist/cjs/rules/requireReturnsType.d.ts +0 -2
  79. package/dist/cjs/rules/requireTags.d.ts +0 -2
  80. package/dist/cjs/rules/requireTemplate.d.ts +0 -2
  81. package/dist/cjs/rules/requireThrows.d.ts +0 -2
  82. package/dist/cjs/rules/requireYields.d.ts +0 -2
  83. package/dist/cjs/rules/requireYieldsCheck.d.ts +0 -2
  84. package/dist/cjs/rules/sortTags.d.ts +0 -2
  85. package/dist/cjs/rules/tagLines.d.ts +0 -2
  86. package/dist/cjs/rules/textEscaping.d.ts +0 -2
  87. package/dist/cjs/rules/tsMethodSignatureStyle.d.ts +0 -2
  88. package/dist/cjs/rules/tsNoEmptyObjectType.d.ts +0 -2
  89. package/dist/cjs/rules/tsNoUnnecessaryTemplateExpression.d.ts +0 -2
  90. package/dist/cjs/rules/tsPreferFunctionType.d.ts +0 -2
  91. package/dist/cjs/rules/typeFormatting.d.ts +0 -2
  92. package/dist/cjs/rules/validTypes.d.ts +0 -2
  93. package/dist/cjs/tagNames.d.ts +0 -15
  94. package/dist/cjs/utils/hasReturnValue.d.ts +0 -19
  95. package/dist/defaultTagOrder.cjs +0 -46
  96. package/dist/defaultTagOrder.cjs.map +0 -1
  97. package/dist/exportParser.cjs +0 -732
  98. package/dist/exportParser.cjs.map +0 -1
  99. package/dist/generateDocs.cjs +0 -342
  100. package/dist/generateDocs.cjs.map +0 -1
  101. package/dist/generateOptions.cjs +0 -62
  102. package/dist/generateOptions.cjs.map +0 -1
  103. package/dist/generateRule.cjs +0 -248
  104. package/dist/generateRule.cjs.map +0 -1
  105. package/dist/generateRuleTypes.cjs +0 -24
  106. package/dist/generateRuleTypes.cjs.map +0 -1
  107. package/dist/getDefaultTagStructureForMode.cjs +0 -289
  108. package/dist/getDefaultTagStructureForMode.cjs.map +0 -1
  109. package/dist/getJsdocProcessorPlugin.cjs +0 -587
  110. package/dist/getJsdocProcessorPlugin.cjs.map +0 -1
  111. package/dist/getJsdocProcessorPlugin.cts +0 -5
  112. package/dist/index-cjs.cjs +0 -598
  113. package/dist/index-cjs.cjs.map +0 -1
  114. package/dist/index-cjs.d.ts +0 -24
  115. package/dist/index-esm.cjs +0 -162
  116. package/dist/index-esm.cjs.map +0 -1
  117. package/dist/index-esm.d.ts +0 -72
  118. package/dist/index.cjs +0 -746
  119. package/dist/index.cjs.cts +0 -3
  120. package/dist/index.cjs.map +0 -1
  121. package/dist/iterateJsdoc.cjs +0 -2150
  122. package/dist/iterateJsdoc.cjs.map +0 -1
  123. package/dist/iterateJsdoc.cts +0 -7
  124. package/dist/jsdocUtils.cjs +0 -1786
  125. package/dist/jsdocUtils.cjs.map +0 -1
  126. package/dist/rules/checkAccess.cjs +0 -40
  127. package/dist/rules/checkAccess.cjs.map +0 -1
  128. package/dist/rules/checkAlignment.cjs +0 -78
  129. package/dist/rules/checkAlignment.cjs.map +0 -1
  130. package/dist/rules/checkExamples.cjs +0 -521
  131. package/dist/rules/checkExamples.cjs.map +0 -1
  132. package/dist/rules/checkIndentation.cjs +0 -170
  133. package/dist/rules/checkIndentation.cjs.map +0 -1
  134. package/dist/rules/checkLineAlignment.cjs +0 -398
  135. package/dist/rules/checkLineAlignment.cjs.map +0 -1
  136. package/dist/rules/checkParamNames.cjs +0 -407
  137. package/dist/rules/checkParamNames.cjs.map +0 -1
  138. package/dist/rules/checkPropertyNames.cjs +0 -135
  139. package/dist/rules/checkPropertyNames.cjs.map +0 -1
  140. package/dist/rules/checkSyntax.cjs +0 -38
  141. package/dist/rules/checkSyntax.cjs.map +0 -1
  142. package/dist/rules/checkTagNames.cjs +0 -312
  143. package/dist/rules/checkTagNames.cjs.map +0 -1
  144. package/dist/rules/checkTemplateNames.cjs +0 -192
  145. package/dist/rules/checkTemplateNames.cjs.map +0 -1
  146. package/dist/rules/checkTypes.cjs +0 -111
  147. package/dist/rules/checkTypes.cjs.map +0 -1
  148. package/dist/rules/checkValues.cjs +0 -166
  149. package/dist/rules/checkValues.cjs.map +0 -1
  150. package/dist/rules/convertToJsdocComments.cjs +0 -356
  151. package/dist/rules/convertToJsdocComments.cjs.map +0 -1
  152. package/dist/rules/emptyTags.cjs +0 -98
  153. package/dist/rules/emptyTags.cjs.map +0 -1
  154. package/dist/rules/escapeInlineTags.cjs +0 -234
  155. package/dist/rules/escapeInlineTags.cjs.map +0 -1
  156. package/dist/rules/implementsOnClasses.cjs +0 -74
  157. package/dist/rules/implementsOnClasses.cjs.map +0 -1
  158. package/dist/rules/importsAsDependencies.cjs +0 -104
  159. package/dist/rules/importsAsDependencies.cjs.map +0 -1
  160. package/dist/rules/informativeDocs.cjs +0 -187
  161. package/dist/rules/informativeDocs.cjs.map +0 -1
  162. package/dist/rules/linesBeforeBlock.cjs +0 -120
  163. package/dist/rules/linesBeforeBlock.cjs.map +0 -1
  164. package/dist/rules/matchDescription.cjs +0 -356
  165. package/dist/rules/matchDescription.cjs.map +0 -1
  166. package/dist/rules/matchName.cjs +0 -160
  167. package/dist/rules/matchName.cjs.map +0 -1
  168. package/dist/rules/multilineBlocks.cjs +0 -431
  169. package/dist/rules/multilineBlocks.cjs.map +0 -1
  170. package/dist/rules/noBadBlocks.cjs +0 -100
  171. package/dist/rules/noBadBlocks.cjs.map +0 -1
  172. package/dist/rules/noBlankBlockDescriptions.cjs +0 -63
  173. package/dist/rules/noBlankBlockDescriptions.cjs.map +0 -1
  174. package/dist/rules/noBlankBlocks.cjs +0 -54
  175. package/dist/rules/noBlankBlocks.cjs.map +0 -1
  176. package/dist/rules/noDefaults.cjs +0 -102
  177. package/dist/rules/noDefaults.cjs.map +0 -1
  178. package/dist/rules/noMissingSyntax.cjs +0 -196
  179. package/dist/rules/noMissingSyntax.cjs.map +0 -1
  180. package/dist/rules/noMultiAsterisks.cjs +0 -126
  181. package/dist/rules/noMultiAsterisks.cjs.map +0 -1
  182. package/dist/rules/noRestrictedSyntax.cjs +0 -68
  183. package/dist/rules/noRestrictedSyntax.cjs.map +0 -1
  184. package/dist/rules/noTypes.cjs +0 -101
  185. package/dist/rules/noTypes.cjs.map +0 -1
  186. package/dist/rules/noUndefinedTypes.cjs +0 -616
  187. package/dist/rules/noUndefinedTypes.cjs.map +0 -1
  188. package/dist/rules/normalizeSeeLinks.cjs +0 -271
  189. package/dist/rules/normalizeSeeLinks.cjs.map +0 -1
  190. package/dist/rules/preferImportTag.cjs +0 -362
  191. package/dist/rules/preferImportTag.cjs.map +0 -1
  192. package/dist/rules/requireAsteriskPrefix.cjs +0 -190
  193. package/dist/rules/requireAsteriskPrefix.cjs.map +0 -1
  194. package/dist/rules/requireDescription.cjs +0 -164
  195. package/dist/rules/requireDescription.cjs.map +0 -1
  196. package/dist/rules/requireDescriptionCompleteSentence.cjs +0 -321
  197. package/dist/rules/requireDescriptionCompleteSentence.cjs.map +0 -1
  198. package/dist/rules/requireExample.cjs +0 -136
  199. package/dist/rules/requireExample.cjs.map +0 -1
  200. package/dist/rules/requireFileOverview.cjs +0 -194
  201. package/dist/rules/requireFileOverview.cjs.map +0 -1
  202. package/dist/rules/requireHyphenBeforeParamDescription.cjs +0 -166
  203. package/dist/rules/requireHyphenBeforeParamDescription.cjs.map +0 -1
  204. package/dist/rules/requireJsdoc.cjs +0 -721
  205. package/dist/rules/requireJsdoc.cjs.map +0 -1
  206. package/dist/rules/requireParam.cjs +0 -772
  207. package/dist/rules/requireParam.cjs.map +0 -1
  208. package/dist/rules/requireParamDescription.cjs +0 -105
  209. package/dist/rules/requireParamDescription.cjs.map +0 -1
  210. package/dist/rules/requireParamName.cjs +0 -68
  211. package/dist/rules/requireParamName.cjs.map +0 -1
  212. package/dist/rules/requireParamType.cjs +0 -104
  213. package/dist/rules/requireParamType.cjs.map +0 -1
  214. package/dist/rules/requireProperty.cjs +0 -63
  215. package/dist/rules/requireProperty.cjs.map +0 -1
  216. package/dist/rules/requirePropertyDescription.cjs +0 -29
  217. package/dist/rules/requirePropertyDescription.cjs.map +0 -1
  218. package/dist/rules/requirePropertyName.cjs +0 -29
  219. package/dist/rules/requirePropertyName.cjs.map +0 -1
  220. package/dist/rules/requirePropertyType.cjs +0 -29
  221. package/dist/rules/requirePropertyType.cjs.map +0 -1
  222. package/dist/rules/requireRejects.cjs +0 -226
  223. package/dist/rules/requireRejects.cjs.map +0 -1
  224. package/dist/rules/requireReturns.cjs +0 -262
  225. package/dist/rules/requireReturns.cjs.map +0 -1
  226. package/dist/rules/requireReturnsCheck.cjs +0 -225
  227. package/dist/rules/requireReturnsCheck.cjs.map +0 -1
  228. package/dist/rules/requireReturnsDescription.cjs +0 -72
  229. package/dist/rules/requireReturnsDescription.cjs.map +0 -1
  230. package/dist/rules/requireReturnsType.cjs +0 -68
  231. package/dist/rules/requireReturnsType.cjs.map +0 -1
  232. package/dist/rules/requireTags.cjs +0 -74
  233. package/dist/rules/requireTags.cjs.map +0 -1
  234. package/dist/rules/requireTemplate.cjs +0 -220
  235. package/dist/rules/requireTemplate.cjs.map +0 -1
  236. package/dist/rules/requireThrows.cjs +0 -118
  237. package/dist/rules/requireThrows.cjs.map +0 -1
  238. package/dist/rules/requireYields.cjs +0 -224
  239. package/dist/rules/requireYields.cjs.map +0 -1
  240. package/dist/rules/requireYieldsCheck.cjs +0 -179
  241. package/dist/rules/requireYieldsCheck.cjs.map +0 -1
  242. package/dist/rules/sortTags.cjs +0 -656
  243. package/dist/rules/sortTags.cjs.map +0 -1
  244. package/dist/rules/tagLines.cjs +0 -374
  245. package/dist/rules/tagLines.cjs.map +0 -1
  246. package/dist/rules/textEscaping.cjs +0 -141
  247. package/dist/rules/textEscaping.cjs.map +0 -1
  248. package/dist/rules/tsMethodSignatureStyle.cjs +0 -240
  249. package/dist/rules/tsMethodSignatureStyle.cjs.map +0 -1
  250. package/dist/rules/tsNoEmptyObjectType.cjs +0 -62
  251. package/dist/rules/tsNoEmptyObjectType.cjs.map +0 -1
  252. package/dist/rules/tsNoUnnecessaryTemplateExpression.cjs +0 -104
  253. package/dist/rules/tsNoUnnecessaryTemplateExpression.cjs.map +0 -1
  254. package/dist/rules/tsPreferFunctionType.cjs +0 -110
  255. package/dist/rules/tsPreferFunctionType.cjs.map +0 -1
  256. package/dist/rules/typeFormatting.cjs +0 -607
  257. package/dist/rules/typeFormatting.cjs.map +0 -1
  258. package/dist/rules/validTypes.cjs +0 -324
  259. package/dist/rules/validTypes.cjs.map +0 -1
  260. package/dist/tagNames.cjs +0 -244
  261. package/dist/tagNames.cjs.map +0 -1
  262. package/dist/to-valid-identifier.cjs +0 -263
  263. package/dist/utils/hasReturnValue.cjs +0 -495
  264. package/dist/utils/hasReturnValue.cjs.map +0 -1
  265. package/rollup.config.js +0 -16
  266. package/src/getJsdocProcessorPlugin.cts +0 -5
  267. package/src/index-cjs.js +0 -758
  268. package/src/index-esm.js +0 -196
  269. package/src/index.cjs.cts +0 -3
  270. package/src/iterateJsdoc.cts +0 -7
package/src/index-cjs.js DELETED
@@ -1,758 +0,0 @@
1
- import {
2
- buildForbidRuleDefinition,
3
- } from './buildForbidRuleDefinition.js';
4
- import {
5
- buildRejectOrPreferRuleDefinition,
6
- } from './buildRejectOrPreferRuleDefinition.js';
7
- import {
8
- getJsdocProcessorPlugin,
9
- } from './getJsdocProcessorPlugin.js';
10
- import checkAccess from './rules/checkAccess.js';
11
- import checkAlignment from './rules/checkAlignment.js';
12
- import checkExamples from './rules/checkExamples.js';
13
- import checkIndentation from './rules/checkIndentation.js';
14
- import checkLineAlignment from './rules/checkLineAlignment.js';
15
- import checkParamNames from './rules/checkParamNames.js';
16
- import checkPropertyNames from './rules/checkPropertyNames.js';
17
- import checkSyntax from './rules/checkSyntax.js';
18
- import checkTagNames from './rules/checkTagNames.js';
19
- import checkTemplateNames from './rules/checkTemplateNames.js';
20
- import checkTypes from './rules/checkTypes.js';
21
- import checkValues from './rules/checkValues.js';
22
- import convertToJsdocComments from './rules/convertToJsdocComments.js';
23
- import emptyTags from './rules/emptyTags.js';
24
- import escapeInlineTags from './rules/escapeInlineTags.js';
25
- import implementsOnClasses from './rules/implementsOnClasses.js';
26
- import importsAsDependencies from './rules/importsAsDependencies.js';
27
- import informativeDocs from './rules/informativeDocs.js';
28
- import linesBeforeBlock from './rules/linesBeforeBlock.js';
29
- import matchDescription from './rules/matchDescription.js';
30
- import matchName from './rules/matchName.js';
31
- import multilineBlocks from './rules/multilineBlocks.js';
32
- import noBadBlocks from './rules/noBadBlocks.js';
33
- import noBlankBlockDescriptions from './rules/noBlankBlockDescriptions.js';
34
- import noBlankBlocks from './rules/noBlankBlocks.js';
35
- import noDefaults from './rules/noDefaults.js';
36
- import noMissingSyntax from './rules/noMissingSyntax.js';
37
- import noMultiAsterisks from './rules/noMultiAsterisks.js';
38
- import noRestrictedSyntax from './rules/noRestrictedSyntax.js';
39
- import normalizeSeeLinks from './rules/normalizeSeeLinks.js';
40
- import noTypes from './rules/noTypes.js';
41
- import noUndefinedTypes from './rules/noUndefinedTypes.js';
42
- import preferImportTag from './rules/preferImportTag.js';
43
- import requireAsteriskPrefix from './rules/requireAsteriskPrefix.js';
44
- import requireDescription from './rules/requireDescription.js';
45
- import requireDescriptionCompleteSentence from './rules/requireDescriptionCompleteSentence.js';
46
- import requireExample from './rules/requireExample.js';
47
- import requireFileOverview from './rules/requireFileOverview.js';
48
- import requireHyphenBeforeParamDescription from './rules/requireHyphenBeforeParamDescription.js';
49
- import requireJsdoc from './rules/requireJsdoc.js';
50
- import requireParam from './rules/requireParam.js';
51
- import requireParamDescription from './rules/requireParamDescription.js';
52
- import requireParamName from './rules/requireParamName.js';
53
- import requireParamType from './rules/requireParamType.js';
54
- import requireProperty from './rules/requireProperty.js';
55
- import requirePropertyDescription from './rules/requirePropertyDescription.js';
56
- import requirePropertyName from './rules/requirePropertyName.js';
57
- import requirePropertyType from './rules/requirePropertyType.js';
58
- import requireRejects from './rules/requireRejects.js';
59
- import requireReturns from './rules/requireReturns.js';
60
- import requireReturnsCheck from './rules/requireReturnsCheck.js';
61
- import requireReturnsDescription from './rules/requireReturnsDescription.js';
62
- import requireReturnsType from './rules/requireReturnsType.js';
63
- import requireTags from './rules/requireTags.js';
64
- import requireTemplate from './rules/requireTemplate.js';
65
- import requireThrows from './rules/requireThrows.js';
66
- import requireYields from './rules/requireYields.js';
67
- import requireYieldsCheck from './rules/requireYieldsCheck.js';
68
- import sortTags from './rules/sortTags.js';
69
- import tagLines from './rules/tagLines.js';
70
- import textEscaping from './rules/textEscaping.js';
71
- import tsMethodSignatureStyle from './rules/tsMethodSignatureStyle.js';
72
- import tsNoEmptyObjectType from './rules/tsNoEmptyObjectType.js';
73
- import tsNoUnnecessaryTemplateExpression from './rules/tsNoUnnecessaryTemplateExpression.js';
74
- import tsPreferFunctionType from './rules/tsPreferFunctionType.js';
75
- import typeFormatting from './rules/typeFormatting.js';
76
- import validTypes from './rules/validTypes.js';
77
- import {
78
- ESLint,
79
- } from 'eslint';
80
- import semver from 'semver';
81
-
82
- /**
83
- * @typedef {"recommended" | "stylistic" | "contents" | "logical" | "requirements"} ConfigGroups
84
- * @typedef {"" | "-typescript" | "-typescript-flavor"} ConfigVariants
85
- * @typedef {"" | "-error"} ErrorLevelVariants
86
- * @type {import('eslint').ESLint.Plugin & {
87
- * configs: Record<
88
- * `flat/${ConfigGroups}${ConfigVariants}${ErrorLevelVariants}`,
89
- * import('eslint').Linter.Config
90
- * > &
91
- * Record<
92
- * "examples"|"default-expressions"|"examples-and-default-expressions",
93
- * import('eslint').Linter.Config[]
94
- * > &
95
- * Record<"flat/recommended-mixed", import('eslint').Linter.Config[]>
96
- * }}
97
- */
98
- const index = {};
99
- index.configs = {};
100
- index.rules = {
101
- 'check-access': checkAccess,
102
- 'check-alignment': checkAlignment,
103
- 'check-examples': checkExamples,
104
- 'check-indentation': checkIndentation,
105
- 'check-line-alignment': checkLineAlignment,
106
- 'check-param-names': checkParamNames,
107
- 'check-property-names': checkPropertyNames,
108
- 'check-syntax': checkSyntax,
109
- 'check-tag-names': checkTagNames,
110
- 'check-template-names': checkTemplateNames,
111
- 'check-types': checkTypes,
112
- 'check-values': checkValues,
113
- 'convert-to-jsdoc-comments': convertToJsdocComments,
114
- 'empty-tags': emptyTags,
115
- 'escape-inline-tags': escapeInlineTags,
116
- 'implements-on-classes': implementsOnClasses,
117
- 'imports-as-dependencies': importsAsDependencies,
118
- 'informative-docs': informativeDocs,
119
- 'lines-before-block': linesBeforeBlock,
120
- 'match-description': matchDescription,
121
- 'match-name': matchName,
122
- 'multiline-blocks': multilineBlocks,
123
- 'no-bad-blocks': noBadBlocks,
124
- 'no-blank-block-descriptions': noBlankBlockDescriptions,
125
- 'no-blank-blocks': noBlankBlocks,
126
- 'no-defaults': noDefaults,
127
- 'no-missing-syntax': noMissingSyntax,
128
- 'no-multi-asterisks': noMultiAsterisks,
129
- 'no-restricted-syntax': noRestrictedSyntax,
130
- 'no-types': noTypes,
131
- 'no-undefined-types': noUndefinedTypes,
132
- 'normalize-see-links': normalizeSeeLinks,
133
- 'prefer-import-tag': preferImportTag,
134
- 'reject-any-type': buildRejectOrPreferRuleDefinition({
135
- description: 'Reports use of `any` or `*` type',
136
- overrideSettings: {
137
- '*': {
138
- message: 'Prefer a more specific type to `*`',
139
- replacement: false,
140
- unifyParentAndChildTypeChecks: true,
141
- },
142
- any: {
143
- message: 'Prefer a more specific type to `any`',
144
- replacement: false,
145
- unifyParentAndChildTypeChecks: true,
146
- },
147
- },
148
- url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-any-type.md#repos-sticky-header',
149
- }),
150
- 'reject-function-type': buildRejectOrPreferRuleDefinition({
151
- description: 'Reports use of `Function` type',
152
- overrideSettings: {
153
- Function: {
154
- message: 'Prefer a more specific type to `Function`',
155
- replacement: false,
156
- unifyParentAndChildTypeChecks: true,
157
- },
158
- },
159
- url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-function-type.md#repos-sticky-header',
160
- }),
161
- 'require-asterisk-prefix': requireAsteriskPrefix,
162
- 'require-description': requireDescription,
163
- 'require-description-complete-sentence': requireDescriptionCompleteSentence,
164
- 'require-example': requireExample,
165
- 'require-file-overview': requireFileOverview,
166
- 'require-hyphen-before-param-description': requireHyphenBeforeParamDescription,
167
- 'require-jsdoc': requireJsdoc,
168
- 'require-next-description': buildForbidRuleDefinition({
169
- contexts: [
170
- {
171
- comment: 'JsdocBlock:has(JsdocTag[tag=next]:not([name!=""]):not([description!=""]))',
172
- context: 'any',
173
- message: '@next should have a description',
174
- },
175
- ],
176
- description: 'Requires a description for `@next` tags',
177
- url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-description.md#repos-sticky-header',
178
- }),
179
- 'require-next-type': buildForbidRuleDefinition({
180
- contexts: [
181
- {
182
- comment: 'JsdocBlock:has(JsdocTag[tag=next]:not([parsedType.type]))',
183
- context: 'any',
184
- message: '@next should have a type',
185
- },
186
- ],
187
- description: 'Requires a type for `@next` tags',
188
- url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-type.md#repos-sticky-header',
189
- }),
190
- 'require-param': requireParam,
191
- 'require-param-description': requireParamDescription,
192
- 'require-param-name': requireParamName,
193
- 'require-param-type': requireParamType,
194
- 'require-property': requireProperty,
195
- 'require-property-description': requirePropertyDescription,
196
- 'require-property-name': requirePropertyName,
197
- 'require-property-type': requirePropertyType,
198
- 'require-rejects': requireRejects,
199
- 'require-returns': requireReturns,
200
- 'require-returns-check': requireReturnsCheck,
201
- 'require-returns-description': requireReturnsDescription,
202
- 'require-returns-type': requireReturnsType,
203
- 'require-tags': requireTags,
204
- 'require-template': requireTemplate,
205
- 'require-template-description': buildForbidRuleDefinition({
206
- contexts: [
207
- {
208
- comment: 'JsdocBlock:has(JsdocTag[tag=template]:not([description!=""]))',
209
- context: 'any',
210
- message: '@template should have a description',
211
- },
212
- ],
213
- description: 'Requires a description for `@template` tags',
214
- url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template-description.md#repos-sticky-header',
215
- }),
216
- 'require-throws': requireThrows,
217
- 'require-throws-description': buildForbidRuleDefinition({
218
- contexts: [
219
- {
220
- comment: 'JsdocBlock:has(JsdocTag[tag=/^(?:throws|exception)$/]:not([description!=""]))',
221
- context: 'any',
222
- message: '@throws should have a description',
223
- },
224
- ],
225
- description: 'Requires a description for `@throws` tags',
226
- url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-description.md#repos-sticky-header',
227
- }),
228
- 'require-throws-type': buildForbidRuleDefinition({
229
- contexts: [
230
- {
231
- comment: 'JsdocBlock:has(JsdocTag[tag=/^(?:throws|exception)$/]:not([parsedType.type]))',
232
- context: 'any',
233
- message: '@throws should have a type',
234
- },
235
- ],
236
- description: 'Requires a type for `@throws` tags',
237
- url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-type.md#repos-sticky-header',
238
- }),
239
- 'require-yields': requireYields,
240
- 'require-yields-check': requireYieldsCheck,
241
- 'require-yields-description': buildForbidRuleDefinition({
242
- contexts: [
243
- {
244
- comment: 'JsdocBlock:has(JsdocTag[tag=/^yields?$/]:not([name!=""]):not([description!=""]))',
245
- context: 'any',
246
- message: '@yields should have a description',
247
- },
248
- ],
249
- description: 'Requires a description for `@yields` tags',
250
- url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-description.md#repos-sticky-header',
251
- }),
252
- 'require-yields-type': buildForbidRuleDefinition({
253
- contexts: [
254
- {
255
- comment: 'JsdocBlock:has(JsdocTag[tag=/^yields?$/]:not([parsedType.type]))',
256
- context: 'any',
257
- message: '@yields should have a type',
258
- },
259
- ],
260
- description: 'Requires a type for `@yields` tags',
261
- url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-type.md#repos-sticky-header',
262
- }),
263
- 'sort-tags': sortTags,
264
- 'tag-lines': tagLines,
265
- 'text-escaping': textEscaping,
266
- 'ts-method-signature-style': tsMethodSignatureStyle,
267
- 'ts-no-empty-object-type': tsNoEmptyObjectType,
268
- 'ts-no-unnecessary-template-expression': tsNoUnnecessaryTemplateExpression,
269
- 'ts-prefer-function-type': tsPreferFunctionType,
270
- 'type-formatting': typeFormatting,
271
- 'valid-types': validTypes,
272
- };
273
-
274
- /**
275
- * @param {"warn"|"error"} warnOrError
276
- * @param {string} [flatName]
277
- * @returns {import('eslint').Linter.Config}
278
- */
279
- const createRecommendedRuleset = (warnOrError, flatName) => {
280
- return {
281
- ...(flatName ? {
282
- name: 'jsdoc/' + flatName,
283
- } : {}),
284
- // @ts-expect-error ESLint 8 plugins
285
- plugins:
286
- flatName ? {
287
- jsdoc: index,
288
- } : [
289
- 'jsdoc',
290
- ],
291
- rules: {
292
- 'jsdoc/check-access': warnOrError,
293
- 'jsdoc/check-alignment': warnOrError,
294
- 'jsdoc/check-examples': 'off',
295
- 'jsdoc/check-indentation': 'off',
296
- 'jsdoc/check-line-alignment': 'off',
297
- 'jsdoc/check-param-names': warnOrError,
298
- 'jsdoc/check-property-names': warnOrError,
299
- 'jsdoc/check-syntax': 'off',
300
- 'jsdoc/check-tag-names': warnOrError,
301
- 'jsdoc/check-template-names': 'off',
302
- 'jsdoc/check-types': warnOrError,
303
- 'jsdoc/check-values': warnOrError,
304
- 'jsdoc/convert-to-jsdoc-comments': 'off',
305
- 'jsdoc/empty-tags': warnOrError,
306
- 'jsdoc/escape-inline-tags': warnOrError,
307
- 'jsdoc/implements-on-classes': warnOrError,
308
- 'jsdoc/imports-as-dependencies': 'off',
309
- 'jsdoc/informative-docs': 'off',
310
- 'jsdoc/lines-before-block': 'off',
311
- 'jsdoc/match-description': 'off',
312
- 'jsdoc/match-name': 'off',
313
- 'jsdoc/multiline-blocks': warnOrError,
314
- 'jsdoc/no-bad-blocks': 'off',
315
- 'jsdoc/no-blank-block-descriptions': 'off',
316
- 'jsdoc/no-blank-blocks': 'off',
317
- 'jsdoc/no-defaults': warnOrError,
318
- 'jsdoc/no-missing-syntax': 'off',
319
- 'jsdoc/no-multi-asterisks': warnOrError,
320
- 'jsdoc/no-restricted-syntax': 'off',
321
- 'jsdoc/no-types': 'off',
322
- 'jsdoc/no-undefined-types': warnOrError,
323
- 'jsdoc/normalize-see-links': 'off',
324
- 'jsdoc/prefer-import-tag': 'off',
325
- 'jsdoc/reject-any-type': warnOrError,
326
- 'jsdoc/reject-function-type': warnOrError,
327
- 'jsdoc/require-asterisk-prefix': 'off',
328
- 'jsdoc/require-description': 'off',
329
- 'jsdoc/require-description-complete-sentence': 'off',
330
- 'jsdoc/require-example': 'off',
331
- 'jsdoc/require-file-overview': 'off',
332
- 'jsdoc/require-hyphen-before-param-description': 'off',
333
- 'jsdoc/require-jsdoc': warnOrError,
334
- 'jsdoc/require-next-description': 'off',
335
- 'jsdoc/require-next-type': warnOrError,
336
- 'jsdoc/require-param': warnOrError,
337
- 'jsdoc/require-param-description': warnOrError,
338
- 'jsdoc/require-param-name': warnOrError,
339
- 'jsdoc/require-param-type': warnOrError,
340
- 'jsdoc/require-property': warnOrError,
341
- 'jsdoc/require-property-description': warnOrError,
342
- 'jsdoc/require-property-name': warnOrError,
343
- 'jsdoc/require-property-type': warnOrError,
344
- 'jsdoc/require-rejects': 'off',
345
- 'jsdoc/require-returns': warnOrError,
346
- 'jsdoc/require-returns-check': warnOrError,
347
- 'jsdoc/require-returns-description': warnOrError,
348
- 'jsdoc/require-returns-type': warnOrError,
349
- 'jsdoc/require-tags': 'off',
350
- 'jsdoc/require-template': 'off',
351
- 'jsdoc/require-template-description': 'off',
352
- 'jsdoc/require-throws': 'off',
353
- 'jsdoc/require-throws-description': 'off',
354
- 'jsdoc/require-throws-type': warnOrError,
355
- 'jsdoc/require-yields': warnOrError,
356
- 'jsdoc/require-yields-check': warnOrError,
357
- 'jsdoc/require-yields-description': 'off',
358
- 'jsdoc/require-yields-type': warnOrError,
359
- 'jsdoc/sort-tags': 'off',
360
- 'jsdoc/tag-lines': warnOrError,
361
- 'jsdoc/text-escaping': 'off',
362
- 'jsdoc/ts-method-signature-style': 'off',
363
- 'jsdoc/ts-no-empty-object-type': warnOrError,
364
- 'jsdoc/ts-no-unnecessary-template-expression': 'off',
365
- 'jsdoc/ts-prefer-function-type': 'off',
366
- 'jsdoc/type-formatting': 'off',
367
- 'jsdoc/valid-types': warnOrError,
368
- },
369
- };
370
- };
371
-
372
- /**
373
- * @param {"warn"|"error"} warnOrError
374
- * @param {string} [flatName]
375
- * @returns {import('eslint').Linter.Config}
376
- */
377
- const createRecommendedTypeScriptRuleset = (warnOrError, flatName) => {
378
- const ruleset = createRecommendedRuleset(warnOrError, flatName);
379
-
380
- return {
381
- ...ruleset,
382
- rules: {
383
- ...ruleset.rules,
384
- /* eslint-disable @stylistic/indent -- Extra indent to avoid use by auto-rule-editing */
385
- 'jsdoc/check-tag-names': [
386
- warnOrError, {
387
- typed: true,
388
- },
389
- ],
390
- 'jsdoc/no-types': warnOrError,
391
- 'jsdoc/no-undefined-types': 'off',
392
- 'jsdoc/require-param-type': 'off',
393
- 'jsdoc/require-property-type': 'off',
394
- 'jsdoc/require-returns-type': 'off',
395
- /* eslint-enable @stylistic/indent */
396
- },
397
- };
398
- };
399
-
400
- /**
401
- * @param {"warn"|"error"} warnOrError
402
- * @param {string} [flatName]
403
- * @returns {import('eslint').Linter.Config}
404
- */
405
- const createRecommendedTsDocRuleset = (warnOrError, flatName) => {
406
- const ruleset = createRecommendedTypeScriptRuleset(warnOrError, flatName);
407
-
408
- return {
409
- ...ruleset,
410
- rules: {
411
- ...ruleset.rules,
412
- /* eslint-disable @stylistic/indent -- Extra indent to avoid use by auto-rule-editing */
413
- 'jsdoc/require-next-type': 'off',
414
- 'jsdoc/require-throws-type': 'off',
415
- 'jsdoc/require-yields-type': 'off',
416
- /* eslint-enable @stylistic/indent */
417
- },
418
- };
419
- };
420
-
421
- /**
422
- * @param {"warn"|"error"} warnOrError
423
- * @param {string} [flatName]
424
- * @returns {import('eslint').Linter.Config}
425
- */
426
- const createRecommendedTypeScriptFlavorRuleset = (warnOrError, flatName) => {
427
- const ruleset = createRecommendedRuleset(warnOrError, flatName);
428
-
429
- return {
430
- ...ruleset,
431
- rules: {
432
- ...ruleset.rules,
433
- /* eslint-disable @stylistic/indent -- Extra indent to avoid use by auto-rule-editing */
434
- 'jsdoc/no-undefined-types': 'off',
435
- /* eslint-enable @stylistic/indent */
436
- },
437
- };
438
- };
439
-
440
- /**
441
- * @param {(string | unknown[])[]} ruleNames
442
- */
443
- const createStandaloneRulesetFactory = (ruleNames) => {
444
- /**
445
- * @param {"warn"|"error"} warnOrError
446
- * @param {string} [flatName]
447
- * @returns {import('eslint').Linter.Config}
448
- */
449
- return (warnOrError, flatName) => {
450
- return {
451
- name: 'jsdoc/' + flatName,
452
- plugins: {
453
- jsdoc: index,
454
- },
455
- rules: Object.fromEntries(
456
- ruleNames.map(
457
- (ruleName) => {
458
- return (typeof ruleName === 'string' ?
459
- [
460
- ruleName, warnOrError,
461
- ] :
462
- [
463
- ruleName[0], [
464
- warnOrError, ...ruleName.slice(1),
465
- ],
466
- ]);
467
- },
468
- ),
469
- ),
470
- };
471
- };
472
- };
473
-
474
- const contentsRules = [
475
- 'jsdoc/informative-docs',
476
- 'jsdoc/match-description',
477
- 'jsdoc/no-blank-block-descriptions',
478
- 'jsdoc/no-blank-blocks',
479
- [
480
- 'jsdoc/text-escaping', {
481
- escapeHTML: true,
482
- },
483
- ],
484
- ];
485
-
486
- const createContentsTypescriptRuleset = createStandaloneRulesetFactory(contentsRules);
487
-
488
- const createContentsTypescriptFlavorRuleset = createStandaloneRulesetFactory(contentsRules);
489
-
490
- const logicalRules = [
491
- 'jsdoc/check-access',
492
- 'jsdoc/check-param-names',
493
- 'jsdoc/check-property-names',
494
- 'jsdoc/check-syntax',
495
- 'jsdoc/check-tag-names',
496
- 'jsdoc/check-template-names',
497
- 'jsdoc/check-types',
498
- 'jsdoc/check-values',
499
- 'jsdoc/empty-tags',
500
- 'jsdoc/escape-inline-tags',
501
- 'jsdoc/implements-on-classes',
502
- 'jsdoc/require-returns-check',
503
- 'jsdoc/require-yields-check',
504
- 'jsdoc/no-bad-blocks',
505
- 'jsdoc/no-defaults',
506
- 'jsdoc/no-types',
507
- 'jsdoc/no-undefined-types',
508
- 'jsdoc/valid-types',
509
- ];
510
-
511
- const createLogicalTypescriptRuleset = createStandaloneRulesetFactory(logicalRules);
512
-
513
- const createLogicalTypescriptFlavorRuleset = createStandaloneRulesetFactory(logicalRules);
514
-
515
- const requirementsRules = [
516
- 'jsdoc/require-example',
517
- 'jsdoc/require-jsdoc',
518
- 'jsdoc/require-next-type',
519
- 'jsdoc/require-param',
520
- 'jsdoc/require-param-description',
521
- 'jsdoc/require-param-name',
522
- 'jsdoc/require-property',
523
- 'jsdoc/require-property-description',
524
- 'jsdoc/require-property-name',
525
- 'jsdoc/require-returns',
526
- 'jsdoc/require-returns-description',
527
- 'jsdoc/require-throws-type',
528
- 'jsdoc/require-yields',
529
- 'jsdoc/require-yields-type',
530
- ];
531
-
532
- const createRequirementsTypeScriptRuleset = createStandaloneRulesetFactory(requirementsRules);
533
-
534
- const createRequirementsTypeScriptFlavorRuleset = createStandaloneRulesetFactory([
535
- ...requirementsRules,
536
- 'jsdoc/require-param-type',
537
- 'jsdoc/require-property-type',
538
- 'jsdoc/require-returns-type',
539
- 'jsdoc/require-template',
540
- ]);
541
-
542
- const stylisticRules = [
543
- 'jsdoc/check-alignment',
544
- 'jsdoc/check-line-alignment',
545
- 'jsdoc/lines-before-block',
546
- 'jsdoc/multiline-blocks',
547
- 'jsdoc/no-multi-asterisks',
548
- 'jsdoc/require-asterisk-prefix',
549
- [
550
- 'jsdoc/require-hyphen-before-param-description', 'never',
551
- ],
552
- 'jsdoc/tag-lines',
553
- ];
554
-
555
- const createStylisticTypeScriptRuleset = createStandaloneRulesetFactory(stylisticRules);
556
-
557
- const createStylisticTypeScriptFlavorRuleset = createStandaloneRulesetFactory(stylisticRules);
558
-
559
- /* c8 ignore next 3 -- TS */
560
- if (!index.configs) {
561
- throw new Error('TypeScript guard');
562
- }
563
-
564
- index.configs.recommended = createRecommendedRuleset('warn');
565
- index.configs['recommended-error'] = createRecommendedRuleset('error');
566
- index.configs['recommended-typescript'] = createRecommendedTypeScriptRuleset('warn');
567
- index.configs['recommended-typescript-error'] = createRecommendedTypeScriptRuleset('error');
568
- index.configs['recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn');
569
- index.configs['recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error');
570
- index.configs['recommended-tsdoc'] = createRecommendedTsDocRuleset('warn');
571
- index.configs['recommended-tsdoc-error'] = createRecommendedTsDocRuleset('error');
572
-
573
- index.configs['flat/recommended'] = createRecommendedRuleset('warn', 'flat/recommended');
574
- index.configs['flat/recommended-error'] = createRecommendedRuleset('error', 'flat/recommended-error');
575
- index.configs['flat/recommended-typescript'] = createRecommendedTypeScriptRuleset('warn', 'flat/recommended-typescript');
576
- index.configs['flat/recommended-typescript-error'] = createRecommendedTypeScriptRuleset('error', 'flat/recommended-typescript-error');
577
- index.configs['flat/recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn', 'flat/recommended-typescript-flavor');
578
- index.configs['flat/recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error', 'flat/recommended-typescript-flavor-error');
579
- index.configs['flat/recommended-tsdoc'] = createRecommendedTsDocRuleset('warn', 'flat/recommended-tsdoc');
580
- index.configs['flat/recommended-tsdoc-error'] = createRecommendedTsDocRuleset('error', 'flat/recommended-tsdoc-error');
581
-
582
- index.configs['flat/contents-typescript'] = createContentsTypescriptRuleset('warn', 'flat/contents-typescript');
583
- index.configs['flat/contents-typescript-error'] = createContentsTypescriptRuleset('error', 'flat/contents-typescript-error');
584
- index.configs['flat/contents-typescript-flavor'] = createContentsTypescriptFlavorRuleset('warn', 'flat/contents-typescript-flavor');
585
- index.configs['flat/contents-typescript-flavor-error'] = createContentsTypescriptFlavorRuleset('error', 'flat/contents-typescript-error-flavor');
586
- index.configs['flat/logical-typescript'] = createLogicalTypescriptRuleset('warn', 'flat/logical-typescript');
587
- index.configs['flat/logical-typescript-error'] = createLogicalTypescriptRuleset('error', 'flat/logical-typescript-error');
588
- index.configs['flat/logical-typescript-flavor'] = createLogicalTypescriptFlavorRuleset('warn', 'flat/logical-typescript-flavor');
589
- index.configs['flat/logical-typescript-flavor-error'] = createLogicalTypescriptFlavorRuleset('error', 'flat/logical-typescript-error-flavor');
590
- index.configs['flat/requirements-typescript'] = createRequirementsTypeScriptRuleset('warn', 'flat/requirements-typescript');
591
- index.configs['flat/requirements-typescript-error'] = createRequirementsTypeScriptRuleset('error', 'flat/requirements-typescript-error');
592
- index.configs['flat/requirements-typescript-flavor'] = createRequirementsTypeScriptFlavorRuleset('warn', 'flat/requirements-typescript-flavor');
593
- index.configs['flat/requirements-typescript-flavor-error'] = createRequirementsTypeScriptFlavorRuleset('error', 'flat/requirements-typescript-error-flavor');
594
- index.configs['flat/stylistic-typescript'] = createStylisticTypeScriptRuleset('warn', 'flat/stylistic-typescript');
595
- index.configs['flat/stylistic-typescript-error'] = createStylisticTypeScriptRuleset('error', 'flat/stylistic-typescript-error');
596
- index.configs['flat/stylistic-typescript-flavor'] = createStylisticTypeScriptFlavorRuleset('warn', 'flat/stylistic-typescript-flavor');
597
- index.configs['flat/stylistic-typescript-flavor-error'] = createStylisticTypeScriptFlavorRuleset('error', 'flat/stylistic-typescript-error-flavor');
598
-
599
- index.configs.examples = /** @type {import('eslint').Linter.Config[]} */ ([
600
- {
601
- files: [
602
- '**/*.js',
603
- ],
604
- name: 'jsdoc/examples/processor',
605
- plugins: {
606
- examples: getJsdocProcessorPlugin(),
607
- },
608
- processor: 'examples/examples',
609
- },
610
- {
611
- files: [
612
- '**/*.md/*.js',
613
- ],
614
- name: 'jsdoc/examples/rules',
615
- rules: {
616
- // "always" newline rule at end unlikely in sample code
617
- '@stylistic/eol-last': 0,
618
- // Often wish to start `@example` code after newline; also may use
619
- // empty lines for spacing
620
- '@stylistic/no-multiple-empty-lines': 0,
621
-
622
- // Can generally look nicer to pad a little even if code imposes more stringency
623
- '@stylistic/padded-blocks': 0,
624
-
625
- '@typescript-eslint/no-unused-vars': 0,
626
-
627
- // Wouldn't generally expect example paths to resolve relative to JS file
628
- 'import/no-unresolved': 0,
629
-
630
- // Snippets likely too short to always include import/export info
631
- 'import/unambiguous': 0,
632
-
633
- 'jsdoc/require-file-overview': 0,
634
-
635
- // The end of a multiline comment would end the comment the example is in.
636
- 'jsdoc/require-jsdoc': 0,
637
-
638
- // See import/no-unresolved
639
- 'n/no-missing-import': 0,
640
-
641
- 'n/no-missing-require': 0,
642
-
643
- // Unlikely to have inadvertent debugging within examples
644
- 'no-console': 0,
645
-
646
- /* c8 ignore next 11 -- Coercion should work */
647
- ...(semver.gte(semver.coerce(ESLint.version) ?? '9.0.0', '9.0.0') ? {} : {
648
- // "always" newline rule at end unlikely in sample code
649
- 'eol-last': 0,
650
-
651
- // Often wish to start `@example` code after newline; also may use
652
- // empty lines for spacing
653
- 'no-multiple-empty-lines': 0,
654
-
655
- // Can generally look nicer to pad a little even if code imposes more stringency
656
- 'padded-blocks': 0,
657
- }),
658
-
659
- // Many variables in examples will be `undefined`
660
- 'no-undef': 0,
661
- // Common to define variables for clarity without always using them
662
- 'no-unused-vars': 0,
663
-
664
- // See import/no-unresolved
665
- 'node/no-missing-import': 0,
666
- 'node/no-missing-require': 0,
667
- },
668
- },
669
- ]);
670
-
671
- index.configs['default-expressions'] = /** @type {import('eslint').Linter.Config[]} */ ([
672
- {
673
- files: [
674
- '**/*.js',
675
- ],
676
- name: 'jsdoc/default-expressions/processor',
677
- plugins: {
678
- examples: getJsdocProcessorPlugin({
679
- checkDefaults: true,
680
- checkParams: true,
681
- checkProperties: true,
682
- }),
683
- },
684
- processor: 'examples/examples',
685
- },
686
- {
687
- files: [
688
- '**/*.jsdoc-defaults', '**/*.jsdoc-params', '**/*.jsdoc-properties',
689
- ],
690
- name: 'jsdoc/default-expressions/rules',
691
- rules: {
692
- ...index.configs.examples[1].rules,
693
- '@stylistic/quotes': [
694
- 'error', 'double',
695
- ],
696
- '@stylistic/semi': [
697
- 'error', 'never',
698
- ],
699
- '@typescript-eslint/no-unused-expressions': 0,
700
- 'chai-friendly/no-unused-expressions': 0,
701
- 'no-empty-function': 0,
702
- 'no-new': 0,
703
- 'no-unused-expressions': 0,
704
- /* c8 ignore next 8 -- Coercion should work */
705
- ...(semver.gte(semver.coerce(ESLint.version) ?? '9.0.0', '9.0.0') ? {} : {
706
- quotes: [
707
- 'error', 'double',
708
- ],
709
- semi: [
710
- 'error', 'never',
711
- ],
712
- }),
713
- strict: 0,
714
- },
715
- },
716
- ]);
717
-
718
- index.configs['examples-and-default-expressions'] = /** @type {import('eslint').Linter.Config[]} */ ([
719
- {
720
- name: 'jsdoc/examples-and-default-expressions',
721
- plugins: {
722
- examples: getJsdocProcessorPlugin({
723
- checkDefaults: true,
724
- checkParams: true,
725
- checkProperties: true,
726
- }),
727
- },
728
- },
729
- ...index.configs.examples.map((config) => {
730
- return {
731
- ...config,
732
- plugins: {},
733
- };
734
- }),
735
- ...index.configs['default-expressions'].map((config) => {
736
- return {
737
- ...config,
738
- plugins: {},
739
- };
740
- }),
741
- ]);
742
-
743
- index.configs['flat/recommended-mixed'] = [
744
- {
745
- ...index.configs['flat/recommended-typescript-flavor'],
746
- files: [
747
- '**/*.{js,jsx,cjs,mjs}',
748
- ],
749
- },
750
- {
751
- ...index.configs['flat/recommended-typescript'],
752
- files: [
753
- '**/*.{ts,tsx,cts,mts}',
754
- ],
755
- },
756
- ];
757
-
758
- export default index;