@depup/eslint-plugin-jsdoc 63.3.2-depup.1 → 64.0.0-depup.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 (272) hide show
  1. package/README.md +3 -11
  2. package/changes.json +3 -16
  3. package/dist/index.d.ts +7 -4
  4. package/package.json +29 -67
  5. package/src/index.js +7 -8
  6. package/dist/WarnSettings.cjs +0 -38
  7. package/dist/WarnSettings.cjs.map +0 -1
  8. package/dist/alignTransform.cjs +0 -402
  9. package/dist/alignTransform.cjs.map +0 -1
  10. package/dist/buildForbidRuleDefinition.cjs +0 -101
  11. package/dist/buildForbidRuleDefinition.cjs.map +0 -1
  12. package/dist/buildRejectOrPreferRuleDefinition.cjs +0 -352
  13. package/dist/buildRejectOrPreferRuleDefinition.cjs.map +0 -1
  14. package/dist/cjs/WarnSettings.d.ts +0 -16
  15. package/dist/cjs/alignTransform.d.ts +0 -33
  16. package/dist/cjs/buildForbidRuleDefinition.d.ts +0 -14
  17. package/dist/cjs/buildRejectOrPreferRuleDefinition.d.ts +0 -8
  18. package/dist/cjs/defaultTagOrder.d.ts +0 -4
  19. package/dist/cjs/exportParser.d.ts +0 -40
  20. package/dist/cjs/getDefaultTagStructureForMode.d.ts +0 -10
  21. package/dist/cjs/getJsdocProcessorPlugin.d.cts +0 -5
  22. package/dist/cjs/getJsdocProcessorPlugin.d.ts +0 -66
  23. package/dist/cjs/index-cjs.d.ts +0 -23
  24. package/dist/cjs/index.cjs.d.cts +0 -2
  25. package/dist/cjs/iterateJsdoc.d.cts +0 -7
  26. package/dist/cjs/iterateJsdoc.d.ts +0 -495
  27. package/dist/cjs/jsdocUtils.d.ts +0 -500
  28. package/dist/cjs/rules/checkAccess.d.ts +0 -2
  29. package/dist/cjs/rules/checkAlignment.d.ts +0 -2
  30. package/dist/cjs/rules/checkExamples.d.ts +0 -3
  31. package/dist/cjs/rules/checkIndentation.d.ts +0 -2
  32. package/dist/cjs/rules/checkLineAlignment.d.ts +0 -9
  33. package/dist/cjs/rules/checkParamNames.d.ts +0 -2
  34. package/dist/cjs/rules/checkPropertyNames.d.ts +0 -2
  35. package/dist/cjs/rules/checkSyntax.d.ts +0 -2
  36. package/dist/cjs/rules/checkTagNames.d.ts +0 -2
  37. package/dist/cjs/rules/checkTemplateNames.d.ts +0 -2
  38. package/dist/cjs/rules/checkTypes.d.ts +0 -7
  39. package/dist/cjs/rules/checkValues.d.ts +0 -2
  40. package/dist/cjs/rules/convertToJsdocComments.d.ts +0 -266
  41. package/dist/cjs/rules/emptyTags.d.ts +0 -2
  42. package/dist/cjs/rules/escapeInlineTags.d.ts +0 -2
  43. package/dist/cjs/rules/implementsOnClasses.d.ts +0 -2
  44. package/dist/cjs/rules/importsAsDependencies.d.ts +0 -2
  45. package/dist/cjs/rules/informativeDocs.d.ts +0 -2
  46. package/dist/cjs/rules/linesBeforeBlock.d.ts +0 -2
  47. package/dist/cjs/rules/matchDescription.d.ts +0 -2
  48. package/dist/cjs/rules/matchName.d.ts +0 -2
  49. package/dist/cjs/rules/multilineBlocks.d.ts +0 -2
  50. package/dist/cjs/rules/noBadBlocks.d.ts +0 -2
  51. package/dist/cjs/rules/noBlankBlockDescriptions.d.ts +0 -2
  52. package/dist/cjs/rules/noBlankBlocks.d.ts +0 -2
  53. package/dist/cjs/rules/noDefaults.d.ts +0 -2
  54. package/dist/cjs/rules/noMissingSyntax.d.ts +0 -9
  55. package/dist/cjs/rules/noMultiAsterisks.d.ts +0 -2
  56. package/dist/cjs/rules/noRestrictedSyntax.d.ts +0 -2
  57. package/dist/cjs/rules/noTypes.d.ts +0 -2
  58. package/dist/cjs/rules/noUndefinedTypes.d.ts +0 -2
  59. package/dist/cjs/rules/normalizeSeeLinks.d.ts +0 -2
  60. package/dist/cjs/rules/preferImportTag.d.ts +0 -2
  61. package/dist/cjs/rules/requireAsteriskPrefix.d.ts +0 -2
  62. package/dist/cjs/rules/requireDescription.d.ts +0 -2
  63. package/dist/cjs/rules/requireDescriptionCompleteSentence.d.ts +0 -2
  64. package/dist/cjs/rules/requireExample.d.ts +0 -2
  65. package/dist/cjs/rules/requireFileOverview.d.ts +0 -2
  66. package/dist/cjs/rules/requireHyphenBeforeParamDescription.d.ts +0 -2
  67. package/dist/cjs/rules/requireJsdoc.d.ts +0 -24
  68. package/dist/cjs/rules/requireParam.d.ts +0 -3
  69. package/dist/cjs/rules/requireParamDescription.d.ts +0 -2
  70. package/dist/cjs/rules/requireParamName.d.ts +0 -2
  71. package/dist/cjs/rules/requireParamType.d.ts +0 -2
  72. package/dist/cjs/rules/requireProperty.d.ts +0 -2
  73. package/dist/cjs/rules/requirePropertyDescription.d.ts +0 -2
  74. package/dist/cjs/rules/requirePropertyName.d.ts +0 -2
  75. package/dist/cjs/rules/requirePropertyType.d.ts +0 -2
  76. package/dist/cjs/rules/requireRejects.d.ts +0 -2
  77. package/dist/cjs/rules/requireReturns.d.ts +0 -2
  78. package/dist/cjs/rules/requireReturnsCheck.d.ts +0 -2
  79. package/dist/cjs/rules/requireReturnsDescription.d.ts +0 -2
  80. package/dist/cjs/rules/requireReturnsType.d.ts +0 -2
  81. package/dist/cjs/rules/requireTags.d.ts +0 -2
  82. package/dist/cjs/rules/requireTemplate.d.ts +0 -2
  83. package/dist/cjs/rules/requireThrows.d.ts +0 -2
  84. package/dist/cjs/rules/requireYields.d.ts +0 -2
  85. package/dist/cjs/rules/requireYieldsCheck.d.ts +0 -2
  86. package/dist/cjs/rules/sortTags.d.ts +0 -2
  87. package/dist/cjs/rules/tagLines.d.ts +0 -2
  88. package/dist/cjs/rules/textEscaping.d.ts +0 -2
  89. package/dist/cjs/rules/tsMethodSignatureStyle.d.ts +0 -2
  90. package/dist/cjs/rules/tsNoEmptyObjectType.d.ts +0 -2
  91. package/dist/cjs/rules/tsNoUnnecessaryTemplateExpression.d.ts +0 -2
  92. package/dist/cjs/rules/tsPreferFunctionType.d.ts +0 -2
  93. package/dist/cjs/rules/typeFormatting.d.ts +0 -2
  94. package/dist/cjs/rules/validTypes.d.ts +0 -2
  95. package/dist/cjs/tagNames.d.ts +0 -15
  96. package/dist/cjs/utils/hasReturnValue.d.ts +0 -19
  97. package/dist/defaultTagOrder.cjs +0 -46
  98. package/dist/defaultTagOrder.cjs.map +0 -1
  99. package/dist/exportParser.cjs +0 -732
  100. package/dist/exportParser.cjs.map +0 -1
  101. package/dist/generateDocs.cjs +0 -342
  102. package/dist/generateDocs.cjs.map +0 -1
  103. package/dist/generateOptions.cjs +0 -62
  104. package/dist/generateOptions.cjs.map +0 -1
  105. package/dist/generateRule.cjs +0 -248
  106. package/dist/generateRule.cjs.map +0 -1
  107. package/dist/generateRuleTypes.cjs +0 -24
  108. package/dist/generateRuleTypes.cjs.map +0 -1
  109. package/dist/getDefaultTagStructureForMode.cjs +0 -289
  110. package/dist/getDefaultTagStructureForMode.cjs.map +0 -1
  111. package/dist/getJsdocProcessorPlugin.cjs +0 -587
  112. package/dist/getJsdocProcessorPlugin.cjs.map +0 -1
  113. package/dist/getJsdocProcessorPlugin.cts +0 -5
  114. package/dist/index-cjs.cjs +0 -598
  115. package/dist/index-cjs.cjs.map +0 -1
  116. package/dist/index-cjs.d.ts +0 -24
  117. package/dist/index-esm.cjs +0 -162
  118. package/dist/index-esm.cjs.map +0 -1
  119. package/dist/index-esm.d.ts +0 -72
  120. package/dist/index.cjs +0 -746
  121. package/dist/index.cjs.cts +0 -3
  122. package/dist/index.cjs.map +0 -1
  123. package/dist/iterateJsdoc.cjs +0 -2150
  124. package/dist/iterateJsdoc.cjs.map +0 -1
  125. package/dist/iterateJsdoc.cts +0 -7
  126. package/dist/jsdocUtils.cjs +0 -1786
  127. package/dist/jsdocUtils.cjs.map +0 -1
  128. package/dist/rules/checkAccess.cjs +0 -40
  129. package/dist/rules/checkAccess.cjs.map +0 -1
  130. package/dist/rules/checkAlignment.cjs +0 -78
  131. package/dist/rules/checkAlignment.cjs.map +0 -1
  132. package/dist/rules/checkExamples.cjs +0 -521
  133. package/dist/rules/checkExamples.cjs.map +0 -1
  134. package/dist/rules/checkIndentation.cjs +0 -170
  135. package/dist/rules/checkIndentation.cjs.map +0 -1
  136. package/dist/rules/checkLineAlignment.cjs +0 -398
  137. package/dist/rules/checkLineAlignment.cjs.map +0 -1
  138. package/dist/rules/checkParamNames.cjs +0 -407
  139. package/dist/rules/checkParamNames.cjs.map +0 -1
  140. package/dist/rules/checkPropertyNames.cjs +0 -135
  141. package/dist/rules/checkPropertyNames.cjs.map +0 -1
  142. package/dist/rules/checkSyntax.cjs +0 -38
  143. package/dist/rules/checkSyntax.cjs.map +0 -1
  144. package/dist/rules/checkTagNames.cjs +0 -312
  145. package/dist/rules/checkTagNames.cjs.map +0 -1
  146. package/dist/rules/checkTemplateNames.cjs +0 -192
  147. package/dist/rules/checkTemplateNames.cjs.map +0 -1
  148. package/dist/rules/checkTypes.cjs +0 -111
  149. package/dist/rules/checkTypes.cjs.map +0 -1
  150. package/dist/rules/checkValues.cjs +0 -166
  151. package/dist/rules/checkValues.cjs.map +0 -1
  152. package/dist/rules/convertToJsdocComments.cjs +0 -356
  153. package/dist/rules/convertToJsdocComments.cjs.map +0 -1
  154. package/dist/rules/emptyTags.cjs +0 -98
  155. package/dist/rules/emptyTags.cjs.map +0 -1
  156. package/dist/rules/escapeInlineTags.cjs +0 -234
  157. package/dist/rules/escapeInlineTags.cjs.map +0 -1
  158. package/dist/rules/implementsOnClasses.cjs +0 -74
  159. package/dist/rules/implementsOnClasses.cjs.map +0 -1
  160. package/dist/rules/importsAsDependencies.cjs +0 -104
  161. package/dist/rules/importsAsDependencies.cjs.map +0 -1
  162. package/dist/rules/informativeDocs.cjs +0 -187
  163. package/dist/rules/informativeDocs.cjs.map +0 -1
  164. package/dist/rules/linesBeforeBlock.cjs +0 -120
  165. package/dist/rules/linesBeforeBlock.cjs.map +0 -1
  166. package/dist/rules/matchDescription.cjs +0 -356
  167. package/dist/rules/matchDescription.cjs.map +0 -1
  168. package/dist/rules/matchName.cjs +0 -160
  169. package/dist/rules/matchName.cjs.map +0 -1
  170. package/dist/rules/multilineBlocks.cjs +0 -431
  171. package/dist/rules/multilineBlocks.cjs.map +0 -1
  172. package/dist/rules/noBadBlocks.cjs +0 -100
  173. package/dist/rules/noBadBlocks.cjs.map +0 -1
  174. package/dist/rules/noBlankBlockDescriptions.cjs +0 -63
  175. package/dist/rules/noBlankBlockDescriptions.cjs.map +0 -1
  176. package/dist/rules/noBlankBlocks.cjs +0 -54
  177. package/dist/rules/noBlankBlocks.cjs.map +0 -1
  178. package/dist/rules/noDefaults.cjs +0 -102
  179. package/dist/rules/noDefaults.cjs.map +0 -1
  180. package/dist/rules/noMissingSyntax.cjs +0 -196
  181. package/dist/rules/noMissingSyntax.cjs.map +0 -1
  182. package/dist/rules/noMultiAsterisks.cjs +0 -126
  183. package/dist/rules/noMultiAsterisks.cjs.map +0 -1
  184. package/dist/rules/noRestrictedSyntax.cjs +0 -68
  185. package/dist/rules/noRestrictedSyntax.cjs.map +0 -1
  186. package/dist/rules/noTypes.cjs +0 -101
  187. package/dist/rules/noTypes.cjs.map +0 -1
  188. package/dist/rules/noUndefinedTypes.cjs +0 -616
  189. package/dist/rules/noUndefinedTypes.cjs.map +0 -1
  190. package/dist/rules/normalizeSeeLinks.cjs +0 -271
  191. package/dist/rules/normalizeSeeLinks.cjs.map +0 -1
  192. package/dist/rules/preferImportTag.cjs +0 -362
  193. package/dist/rules/preferImportTag.cjs.map +0 -1
  194. package/dist/rules/requireAsteriskPrefix.cjs +0 -190
  195. package/dist/rules/requireAsteriskPrefix.cjs.map +0 -1
  196. package/dist/rules/requireDescription.cjs +0 -164
  197. package/dist/rules/requireDescription.cjs.map +0 -1
  198. package/dist/rules/requireDescriptionCompleteSentence.cjs +0 -321
  199. package/dist/rules/requireDescriptionCompleteSentence.cjs.map +0 -1
  200. package/dist/rules/requireExample.cjs +0 -136
  201. package/dist/rules/requireExample.cjs.map +0 -1
  202. package/dist/rules/requireFileOverview.cjs +0 -194
  203. package/dist/rules/requireFileOverview.cjs.map +0 -1
  204. package/dist/rules/requireHyphenBeforeParamDescription.cjs +0 -166
  205. package/dist/rules/requireHyphenBeforeParamDescription.cjs.map +0 -1
  206. package/dist/rules/requireJsdoc.cjs +0 -721
  207. package/dist/rules/requireJsdoc.cjs.map +0 -1
  208. package/dist/rules/requireParam.cjs +0 -772
  209. package/dist/rules/requireParam.cjs.map +0 -1
  210. package/dist/rules/requireParamDescription.cjs +0 -105
  211. package/dist/rules/requireParamDescription.cjs.map +0 -1
  212. package/dist/rules/requireParamName.cjs +0 -68
  213. package/dist/rules/requireParamName.cjs.map +0 -1
  214. package/dist/rules/requireParamType.cjs +0 -104
  215. package/dist/rules/requireParamType.cjs.map +0 -1
  216. package/dist/rules/requireProperty.cjs +0 -63
  217. package/dist/rules/requireProperty.cjs.map +0 -1
  218. package/dist/rules/requirePropertyDescription.cjs +0 -29
  219. package/dist/rules/requirePropertyDescription.cjs.map +0 -1
  220. package/dist/rules/requirePropertyName.cjs +0 -29
  221. package/dist/rules/requirePropertyName.cjs.map +0 -1
  222. package/dist/rules/requirePropertyType.cjs +0 -29
  223. package/dist/rules/requirePropertyType.cjs.map +0 -1
  224. package/dist/rules/requireRejects.cjs +0 -226
  225. package/dist/rules/requireRejects.cjs.map +0 -1
  226. package/dist/rules/requireReturns.cjs +0 -262
  227. package/dist/rules/requireReturns.cjs.map +0 -1
  228. package/dist/rules/requireReturnsCheck.cjs +0 -225
  229. package/dist/rules/requireReturnsCheck.cjs.map +0 -1
  230. package/dist/rules/requireReturnsDescription.cjs +0 -72
  231. package/dist/rules/requireReturnsDescription.cjs.map +0 -1
  232. package/dist/rules/requireReturnsType.cjs +0 -68
  233. package/dist/rules/requireReturnsType.cjs.map +0 -1
  234. package/dist/rules/requireTags.cjs +0 -74
  235. package/dist/rules/requireTags.cjs.map +0 -1
  236. package/dist/rules/requireTemplate.cjs +0 -220
  237. package/dist/rules/requireTemplate.cjs.map +0 -1
  238. package/dist/rules/requireThrows.cjs +0 -118
  239. package/dist/rules/requireThrows.cjs.map +0 -1
  240. package/dist/rules/requireYields.cjs +0 -224
  241. package/dist/rules/requireYields.cjs.map +0 -1
  242. package/dist/rules/requireYieldsCheck.cjs +0 -179
  243. package/dist/rules/requireYieldsCheck.cjs.map +0 -1
  244. package/dist/rules/sortTags.cjs +0 -656
  245. package/dist/rules/sortTags.cjs.map +0 -1
  246. package/dist/rules/tagLines.cjs +0 -374
  247. package/dist/rules/tagLines.cjs.map +0 -1
  248. package/dist/rules/textEscaping.cjs +0 -141
  249. package/dist/rules/textEscaping.cjs.map +0 -1
  250. package/dist/rules/tsMethodSignatureStyle.cjs +0 -240
  251. package/dist/rules/tsMethodSignatureStyle.cjs.map +0 -1
  252. package/dist/rules/tsNoEmptyObjectType.cjs +0 -62
  253. package/dist/rules/tsNoEmptyObjectType.cjs.map +0 -1
  254. package/dist/rules/tsNoUnnecessaryTemplateExpression.cjs +0 -104
  255. package/dist/rules/tsNoUnnecessaryTemplateExpression.cjs.map +0 -1
  256. package/dist/rules/tsPreferFunctionType.cjs +0 -110
  257. package/dist/rules/tsPreferFunctionType.cjs.map +0 -1
  258. package/dist/rules/typeFormatting.cjs +0 -607
  259. package/dist/rules/typeFormatting.cjs.map +0 -1
  260. package/dist/rules/validTypes.cjs +0 -324
  261. package/dist/rules/validTypes.cjs.map +0 -1
  262. package/dist/tagNames.cjs +0 -244
  263. package/dist/tagNames.cjs.map +0 -1
  264. package/dist/to-valid-identifier.cjs +0 -263
  265. package/dist/utils/hasReturnValue.cjs +0 -495
  266. package/dist/utils/hasReturnValue.cjs.map +0 -1
  267. package/rollup.config.js +0 -16
  268. package/src/getJsdocProcessorPlugin.cts +0 -5
  269. package/src/index-cjs.js +0 -758
  270. package/src/index-esm.js +0 -196
  271. package/src/index.cjs.cts +0 -3
  272. 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;