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