eslint-plugin-etc-misc 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/CHANGELOG.md +2 -4
  2. package/README.md +197 -151
  3. package/dist/_internal/casing.d.ts.map +1 -1
  4. package/dist/_internal/casing.js +6 -6
  5. package/dist/_internal/casing.js.map +1 -1
  6. package/dist/_internal/create-external-rule.d.ts +2 -1
  7. package/dist/_internal/create-external-rule.d.ts.map +1 -1
  8. package/dist/_internal/create-external-rule.js +20 -22
  9. package/dist/_internal/create-external-rule.js.map +1 -1
  10. package/dist/_internal/create-import-pattern-rule.d.ts.map +1 -1
  11. package/dist/_internal/create-import-pattern-rule.js +2 -1
  12. package/dist/_internal/create-import-pattern-rule.js.map +1 -1
  13. package/dist/_internal/get-core-rule.d.ts +2 -1
  14. package/dist/_internal/get-core-rule.d.ts.map +1 -1
  15. package/dist/_internal/get-core-rule.js +2 -1
  16. package/dist/_internal/get-core-rule.js.map +1 -1
  17. package/dist/_internal/identifier-blocks.d.ts.map +1 -1
  18. package/dist/_internal/identifier-blocks.js +4 -4
  19. package/dist/_internal/identifier-blocks.js.map +1 -1
  20. package/dist/_internal/ignore-patterns.d.ts.map +1 -1
  21. package/dist/_internal/ignore-patterns.js +2 -1
  22. package/dist/_internal/ignore-patterns.js.map +1 -1
  23. package/dist/_internal/rule-creator.d.ts +2 -1
  24. package/dist/_internal/rule-creator.d.ts.map +1 -1
  25. package/dist/_internal/rule-creator.js.map +1 -1
  26. package/dist/_internal/rule-deprecation.d.ts +2 -1
  27. package/dist/_internal/rule-deprecation.d.ts.map +1 -1
  28. package/dist/_internal/rule-deprecation.js +3 -2
  29. package/dist/_internal/rule-deprecation.js.map +1 -1
  30. package/dist/_internal/symbol-usage.d.ts.map +1 -1
  31. package/dist/_internal/symbol-usage.js +11 -10
  32. package/dist/_internal/symbol-usage.js.map +1 -1
  33. package/dist/_internal/syntax-selectors.d.ts.map +1 -1
  34. package/dist/_internal/syntax-selectors.js +13 -8
  35. package/dist/_internal/syntax-selectors.js.map +1 -1
  36. package/dist/configs/all-strict.d.ts.map +1 -1
  37. package/dist/configs/all-strict.js +3 -2
  38. package/dist/configs/all-strict.js.map +1 -1
  39. package/dist/configs/all.d.ts.map +1 -1
  40. package/dist/configs/all.js +3 -2
  41. package/dist/configs/all.js.map +1 -1
  42. package/dist/configs/minimal.d.ts +22 -0
  43. package/dist/configs/minimal.d.ts.map +1 -0
  44. package/dist/configs/minimal.js +22 -0
  45. package/dist/configs/minimal.js.map +1 -0
  46. package/dist/configs/strict-type-checked.d.ts.map +1 -1
  47. package/dist/configs/strict-type-checked.js +8 -10
  48. package/dist/configs/strict-type-checked.js.map +1 -1
  49. package/dist/configs/strict.d.ts.map +1 -1
  50. package/dist/configs/strict.js +3 -2
  51. package/dist/configs/strict.js.map +1 -1
  52. package/dist/configs.d.ts +2 -0
  53. package/dist/configs.d.ts.map +1 -1
  54. package/dist/configs.js +2 -0
  55. package/dist/configs.js.map +1 -1
  56. package/dist/rules/comment-spacing.d.ts.map +1 -1
  57. package/dist/rules/comment-spacing.js +3 -2
  58. package/dist/rules/comment-spacing.js.map +1 -1
  59. package/dist/rules/consistent-empty-lines.d.ts.map +1 -1
  60. package/dist/rules/consistent-empty-lines.js +3 -2
  61. package/dist/rules/consistent-empty-lines.js.map +1 -1
  62. package/dist/rules/consistent-filename.d.ts.map +1 -1
  63. package/dist/rules/consistent-filename.js +2 -1
  64. package/dist/rules/consistent-filename.js.map +1 -1
  65. package/dist/rules/consistent-import.d.ts.map +1 -1
  66. package/dist/rules/consistent-import.js +2 -1
  67. package/dist/rules/consistent-import.js.map +1 -1
  68. package/dist/rules/consistent-optional-props.d.ts.map +1 -1
  69. package/dist/rules/consistent-optional-props.js +6 -5
  70. package/dist/rules/consistent-optional-props.js.map +1 -1
  71. package/dist/rules/export-matching-filename-only.d.ts.map +1 -1
  72. package/dist/rules/export-matching-filename-only.js +2 -1
  73. package/dist/rules/export-matching-filename-only.js.map +1 -1
  74. package/dist/rules/match-filename.d.ts.map +1 -1
  75. package/dist/rules/match-filename.js +2 -1
  76. package/dist/rules/match-filename.js.map +1 -1
  77. package/dist/rules/max-identifier-blocks.d.ts.map +1 -1
  78. package/dist/rules/max-identifier-blocks.js +2 -4
  79. package/dist/rules/max-identifier-blocks.js.map +1 -1
  80. package/dist/rules/no-assign-mutated-array.d.ts.map +1 -1
  81. package/dist/rules/no-assign-mutated-array.js +2 -1
  82. package/dist/rules/no-assign-mutated-array.js.map +1 -1
  83. package/dist/rules/no-commented-out-code.d.ts.map +1 -1
  84. package/dist/rules/no-commented-out-code.js +22 -25
  85. package/dist/rules/no-commented-out-code.js.map +1 -1
  86. package/dist/rules/no-const-enum.d.ts.map +1 -1
  87. package/dist/rules/no-const-enum.js +2 -1
  88. package/dist/rules/no-const-enum.js.map +1 -1
  89. package/dist/rules/no-deprecated.d.ts.map +1 -1
  90. package/dist/rules/no-deprecated.js +4 -3
  91. package/dist/rules/no-deprecated.js.map +1 -1
  92. package/dist/rules/no-expression-empty-lines.d.ts.map +1 -1
  93. package/dist/rules/no-expression-empty-lines.js +3 -2
  94. package/dist/rules/no-expression-empty-lines.js.map +1 -1
  95. package/dist/rules/no-foreach.d.ts.map +1 -1
  96. package/dist/rules/no-foreach.js +2 -1
  97. package/dist/rules/no-foreach.js.map +1 -1
  98. package/dist/rules/no-implicit-any-catch.d.ts.map +1 -1
  99. package/dist/rules/no-implicit-any-catch.js +3 -2
  100. package/dist/rules/no-implicit-any-catch.js.map +1 -1
  101. package/dist/rules/no-internal.d.ts.map +1 -1
  102. package/dist/rules/no-internal.js +4 -3
  103. package/dist/rules/no-internal.js.map +1 -1
  104. package/dist/rules/no-language-mixing.d.ts.map +1 -1
  105. package/dist/rules/no-language-mixing.js +3 -2
  106. package/dist/rules/no-language-mixing.js.map +1 -1
  107. package/dist/rules/no-misused-generics.d.ts.map +1 -1
  108. package/dist/rules/no-misused-generics.js +5 -4
  109. package/dist/rules/no-misused-generics.js.map +1 -1
  110. package/dist/rules/no-negated-conditions.d.ts.map +1 -1
  111. package/dist/rules/no-negated-conditions.js +2 -1
  112. package/dist/rules/no-negated-conditions.js.map +1 -1
  113. package/dist/rules/no-param-reassign.d.ts.map +1 -1
  114. package/dist/rules/no-param-reassign.js +2 -1
  115. package/dist/rules/no-param-reassign.js.map +1 -1
  116. package/dist/rules/no-restricted-syntax.d.ts.map +1 -1
  117. package/dist/rules/no-restricted-syntax.js +2 -1
  118. package/dist/rules/no-restricted-syntax.js.map +1 -1
  119. package/dist/rules/no-self-import.d.ts.map +1 -1
  120. package/dist/rules/no-self-import.js +2 -1
  121. package/dist/rules/no-self-import.js.map +1 -1
  122. package/dist/rules/no-underscore-export.d.ts.map +1 -1
  123. package/dist/rules/no-underscore-export.js +3 -2
  124. package/dist/rules/no-underscore-export.js.map +1 -1
  125. package/dist/rules/no-unnecessary-break.d.ts.map +1 -1
  126. package/dist/rules/no-unnecessary-break.js +4 -3
  127. package/dist/rules/no-unnecessary-break.js.map +1 -1
  128. package/dist/rules/no-unnecessary-initialization.d.ts.map +1 -1
  129. package/dist/rules/no-unnecessary-initialization.js +3 -2
  130. package/dist/rules/no-unnecessary-initialization.js.map +1 -1
  131. package/dist/rules/no-unnecessary-template-literal.d.ts.map +1 -1
  132. package/dist/rules/no-unnecessary-template-literal.js +3 -2
  133. package/dist/rules/no-unnecessary-template-literal.js.map +1 -1
  134. package/dist/rules/only-export-name.d.ts.map +1 -1
  135. package/dist/rules/only-export-name.js +13 -10
  136. package/dist/rules/only-export-name.js.map +1 -1
  137. package/dist/rules/prefer-interface.d.ts.map +1 -1
  138. package/dist/rules/prefer-interface.js +5 -8
  139. package/dist/rules/prefer-interface.js.map +1 -1
  140. package/dist/rules/require-jsdoc.d.ts.map +1 -1
  141. package/dist/rules/require-jsdoc.js +7 -7
  142. package/dist/rules/require-jsdoc.js.map +1 -1
  143. package/dist/rules/require-syntax.d.ts.map +1 -1
  144. package/dist/rules/require-syntax.js +2 -1
  145. package/dist/rules/require-syntax.js.map +1 -1
  146. package/dist/rules/sort-array.d.ts.map +1 -1
  147. package/dist/rules/sort-array.js +8 -7
  148. package/dist/rules/sort-array.js.map +1 -1
  149. package/dist/rules/sort-class-members.d.ts.map +1 -1
  150. package/dist/rules/sort-class-members.js +2 -1
  151. package/dist/rules/sort-class-members.js.map +1 -1
  152. package/dist/rules/sort-export-specifiers.d.ts.map +1 -1
  153. package/dist/rules/sort-export-specifiers.js +6 -6
  154. package/dist/rules/sort-export-specifiers.js.map +1 -1
  155. package/dist/rules/sort-keys.d.ts.map +1 -1
  156. package/dist/rules/sort-keys.js +5 -5
  157. package/dist/rules/sort-keys.js.map +1 -1
  158. package/dist/rules/sort-top-comments.d.ts.map +1 -1
  159. package/dist/rules/sort-top-comments.js +7 -8
  160. package/dist/rules/sort-top-comments.js.map +1 -1
  161. package/dist/rules/switch-case-spacing.d.ts.map +1 -1
  162. package/dist/rules/switch-case-spacing.js +2 -2
  163. package/dist/rules/switch-case-spacing.js.map +1 -1
  164. package/dist/rules/template-literal-format.d.ts.map +1 -1
  165. package/dist/rules/template-literal-format.js +11 -13
  166. package/dist/rules/template-literal-format.js.map +1 -1
  167. package/dist/rules/throw-error.d.ts.map +1 -1
  168. package/dist/rules/throw-error.js +6 -4
  169. package/dist/rules/throw-error.js.map +1 -1
  170. package/dist/rules/typescript-array-callback-return-type.d.ts.map +1 -1
  171. package/dist/rules/typescript-array-callback-return-type.js +3 -2
  172. package/dist/rules/typescript-array-callback-return-type.js.map +1 -1
  173. package/dist/rules/typescript-class-methods-use-this.d.ts.map +1 -1
  174. package/dist/rules/typescript-class-methods-use-this.js +4 -3
  175. package/dist/rules/typescript-class-methods-use-this.js.map +1 -1
  176. package/dist/rules/typescript-no-boolean-literal-type.d.ts.map +1 -1
  177. package/dist/rules/typescript-no-boolean-literal-type.js +3 -2
  178. package/dist/rules/typescript-no-boolean-literal-type.js.map +1 -1
  179. package/dist/rules/typescript-no-inferrable-types.d.ts.map +1 -1
  180. package/dist/rules/typescript-no-inferrable-types.js +3 -2
  181. package/dist/rules/typescript-no-inferrable-types.js.map +1 -1
  182. package/dist/rules/typescript-no-redundant-undefined-const.d.ts.map +1 -1
  183. package/dist/rules/typescript-no-redundant-undefined-const.js +4 -3
  184. package/dist/rules/typescript-no-redundant-undefined-const.js.map +1 -1
  185. package/dist/rules/typescript-no-redundant-undefined-default-parameter.d.ts.map +1 -1
  186. package/dist/rules/typescript-no-redundant-undefined-default-parameter.js +4 -3
  187. package/dist/rules/typescript-no-redundant-undefined-default-parameter.js.map +1 -1
  188. package/dist/rules/typescript-no-redundant-undefined-let.d.ts.map +1 -1
  189. package/dist/rules/typescript-no-redundant-undefined-let.js +4 -3
  190. package/dist/rules/typescript-no-redundant-undefined-let.js.map +1 -1
  191. package/dist/rules/typescript-no-redundant-undefined-optional.d.ts.map +1 -1
  192. package/dist/rules/typescript-no-redundant-undefined-optional.js +6 -5
  193. package/dist/rules/typescript-no-redundant-undefined-optional.js.map +1 -1
  194. package/dist/rules/typescript-no-redundant-undefined-promise-return-type.d.ts.map +1 -1
  195. package/dist/rules/typescript-no-redundant-undefined-promise-return-type.js +6 -5
  196. package/dist/rules/typescript-no-redundant-undefined-promise-return-type.js.map +1 -1
  197. package/dist/rules/typescript-no-redundant-undefined-readonly-property.d.ts.map +1 -1
  198. package/dist/rules/typescript-no-redundant-undefined-readonly-property.js +4 -3
  199. package/dist/rules/typescript-no-redundant-undefined-readonly-property.js.map +1 -1
  200. package/dist/rules/typescript-no-redundant-undefined-return-type.d.ts.map +1 -1
  201. package/dist/rules/typescript-no-redundant-undefined-return-type.js +6 -5
  202. package/dist/rules/typescript-no-redundant-undefined-return-type.js.map +1 -1
  203. package/dist/rules/typescript-no-redundant-undefined-var.d.ts.map +1 -1
  204. package/dist/rules/typescript-no-redundant-undefined-var.js +4 -3
  205. package/dist/rules/typescript-no-redundant-undefined-var.js.map +1 -1
  206. package/dist/rules/typescript-prefer-enum.d.ts.map +1 -1
  207. package/dist/rules/typescript-prefer-enum.js +6 -5
  208. package/dist/rules/typescript-prefer-enum.js.map +1 -1
  209. package/dist/rules/typescript-prefer-readonly-array.d.ts.map +1 -1
  210. package/dist/rules/typescript-prefer-readonly-array.js +3 -2
  211. package/dist/rules/typescript-prefer-readonly-array.js.map +1 -1
  212. package/dist/rules/typescript-prefer-readonly-property.d.ts.map +1 -1
  213. package/dist/rules/typescript-prefer-readonly-property.js +5 -4
  214. package/dist/rules/typescript-prefer-readonly-property.js.map +1 -1
  215. package/dist/rules/typescript-require-prop-type-annotation.d.ts.map +1 -1
  216. package/dist/rules/typescript-require-prop-type-annotation.js +5 -4
  217. package/dist/rules/typescript-require-prop-type-annotation.js.map +1 -1
  218. package/dist/rules/typescript-require-this-void.d.ts.map +1 -1
  219. package/dist/rules/typescript-require-this-void.js +2 -1
  220. package/dist/rules/typescript-require-this-void.js.map +1 -1
  221. package/dist/rules.d.ts +2 -1
  222. package/dist/rules.d.ts.map +1 -1
  223. package/dist/rules.js +14 -7
  224. package/dist/rules.js.map +1 -1
  225. package/docs/docusaurus/blog/2026-03-09-docs-site-online.md +3 -3
  226. package/docs/docusaurus/blog/2026-03-11-adr-driven-docs-roadmap.md +3 -3
  227. package/docs/docusaurus/docusaurus.config.ts +2 -3
  228. package/docs/docusaurus/sidebars.rules.ts +8 -0
  229. package/docs/docusaurus/site-docs/getting-started.md +2 -3
  230. package/docs/docusaurus/site-docs/guides/blog-post-backlog.md +12 -12
  231. package/docs/docusaurus/site-docs/guides/migration-from-etc-and-misc.md +7 -7
  232. package/docs/docusaurus/site-docs/intro.md +1 -1
  233. package/docs/rules/array-type.md +6 -6
  234. package/docs/rules/class-match-filename.md +6 -6
  235. package/docs/rules/comment-spacing.md +9 -9
  236. package/docs/rules/consistent-empty-lines.md +8 -9
  237. package/docs/rules/consistent-enum-members.md +17 -16
  238. package/docs/rules/consistent-filename.md +12 -10
  239. package/docs/rules/consistent-import.md +11 -11
  240. package/docs/rules/consistent-optional-props.md +12 -12
  241. package/docs/rules/consistent-source-extension.md +6 -6
  242. package/docs/rules/consistent-symbol-description.md +6 -6
  243. package/docs/rules/default-case.md +20 -20
  244. package/docs/rules/disallow-import.md +11 -9
  245. package/docs/rules/export-matching-filename-only.md +12 -10
  246. package/docs/rules/getting-started.md +7 -6
  247. package/docs/rules/match-filename.md +13 -13
  248. package/docs/rules/max-identifier-blocks.md +7 -7
  249. package/docs/rules/no-assign-mutated-array.md +31 -11
  250. package/docs/rules/no-at-sign-import.md +9 -9
  251. package/docs/rules/no-at-sign-internal-import.md +9 -9
  252. package/docs/rules/no-chain-coalescence-mixture.md +6 -6
  253. package/docs/rules/no-commented-out-code.md +12 -12
  254. package/docs/rules/no-const-enum.md +13 -13
  255. package/docs/rules/no-deprecated.md +26 -26
  256. package/docs/rules/no-enum.md +14 -14
  257. package/docs/rules/no-expression-empty-lines.md +12 -20
  258. package/docs/rules/no-foreach.md +14 -10
  259. package/docs/rules/no-implicit-any-catch.md +31 -31
  260. package/docs/rules/no-index-import.md +9 -9
  261. package/docs/rules/no-internal-modules.md +9 -9
  262. package/docs/rules/no-internal.md +26 -26
  263. package/docs/rules/no-language-mixing.md +6 -6
  264. package/docs/rules/no-misused-generics.md +8 -8
  265. package/docs/rules/no-mixed-enums.md +14 -14
  266. package/docs/rules/no-negated-conditions.md +16 -12
  267. package/docs/rules/no-nodejs-modules.md +9 -9
  268. package/docs/rules/no-param-reassign.md +19 -19
  269. package/docs/rules/no-relative-parent-import.md +12 -12
  270. package/docs/rules/no-restricted-syntax.md +24 -23
  271. package/docs/rules/no-secret.md +6 -6
  272. package/docs/rules/no-self-import.md +6 -6
  273. package/docs/rules/no-shadow.md +12 -12
  274. package/docs/rules/no-sibling-import.md +8 -8
  275. package/docs/rules/no-single-line-comment.md +10 -10
  276. package/docs/rules/no-t.md +15 -15
  277. package/docs/rules/no-underscore-export.md +6 -6
  278. package/docs/rules/no-unnecessary-as-const.md +8 -8
  279. package/docs/rules/no-unnecessary-break.md +19 -19
  280. package/docs/rules/no-unnecessary-initialization.md +8 -8
  281. package/docs/rules/no-unnecessary-template-literal.md +7 -7
  282. package/docs/rules/no-unused-disable.md +6 -6
  283. package/docs/rules/no-useless-generics.md +10 -10
  284. package/docs/rules/no-value-tostring.md +6 -6
  285. package/docs/rules/no-writeonly.md +26 -26
  286. package/docs/rules/object-format.md +16 -16
  287. package/docs/rules/only-export-name.md +10 -8
  288. package/docs/rules/overview.md +8 -7
  289. package/docs/rules/prefer-arrow-function-property.md +24 -24
  290. package/docs/rules/prefer-const-require.md +8 -8
  291. package/docs/rules/prefer-includes.md +17 -8
  292. package/docs/rules/prefer-interface.md +24 -24
  293. package/docs/rules/prefer-less-than.md +10 -10
  294. package/docs/rules/prefer-object-has-own.md +6 -6
  295. package/docs/rules/prefer-only-export.md +6 -6
  296. package/docs/rules/presets/all-strict.md +1 -1
  297. package/docs/rules/presets/minimal.md +44 -0
  298. package/docs/rules/presets/recommended.md +3 -1
  299. package/docs/rules/presets/strict-type-checked.md +1 -1
  300. package/docs/rules/presets/strict.md +1 -1
  301. package/docs/rules/require-jsdoc.md +29 -17
  302. package/docs/rules/require-syntax.md +23 -19
  303. package/docs/rules/restrict-identifier-characters.md +6 -6
  304. package/docs/rules/sort-array.md +16 -8
  305. package/docs/rules/sort-call-signature.md +16 -16
  306. package/docs/rules/sort-class-members.md +14 -14
  307. package/docs/rules/sort-construct-signature.md +14 -14
  308. package/docs/rules/sort-export-specifiers.md +6 -6
  309. package/docs/rules/sort-keys.md +15 -15
  310. package/docs/rules/sort-top-comments.md +6 -6
  311. package/docs/rules/switch-case-spacing.md +20 -18
  312. package/docs/rules/template-literal-format.md +6 -6
  313. package/docs/rules/throw-error.md +6 -6
  314. package/docs/rules/throw-new-error.md +6 -6
  315. package/docs/rules/typescript-array-callback-return-type.md +22 -10
  316. package/docs/rules/typescript-class-methods-use-this.md +21 -21
  317. package/docs/rules/typescript-consistent-array-type-name.md +6 -6
  318. package/docs/rules/typescript-define-function-in-one-statement.md +6 -6
  319. package/docs/rules/typescript-exhaustive-switch.md +20 -20
  320. package/docs/rules/typescript-no-boolean-literal-type.md +10 -10
  321. package/docs/rules/typescript-no-complex-declarator-type.md +15 -15
  322. package/docs/rules/typescript-no-complex-return-type.md +9 -9
  323. package/docs/rules/typescript-no-empty-interfaces.md +7 -7
  324. package/docs/rules/typescript-no-inferrable-types.md +10 -10
  325. package/docs/rules/typescript-no-multi-type-tuples.md +6 -6
  326. package/docs/rules/typescript-no-never.md +8 -8
  327. package/docs/rules/typescript-no-redundant-undefined-const.md +6 -6
  328. package/docs/rules/typescript-no-redundant-undefined-default-parameter.md +11 -11
  329. package/docs/rules/typescript-no-redundant-undefined-let.md +6 -6
  330. package/docs/rules/typescript-no-redundant-undefined-optional.md +9 -9
  331. package/docs/rules/typescript-no-redundant-undefined-promise-return-type.md +17 -17
  332. package/docs/rules/typescript-no-redundant-undefined-readonly-property.md +14 -14
  333. package/docs/rules/typescript-no-redundant-undefined-return-type.md +16 -16
  334. package/docs/rules/typescript-no-redundant-undefined-var.md +6 -6
  335. package/docs/rules/typescript-no-restricted-syntax.md +10 -10
  336. package/docs/rules/typescript-no-unsafe-object-assign.md +6 -6
  337. package/docs/rules/typescript-no-unsafe-object-assignment.md +6 -6
  338. package/docs/rules/typescript-prefer-array-type-alias.md +6 -6
  339. package/docs/rules/typescript-prefer-class-method.md +9 -9
  340. package/docs/rules/typescript-prefer-enum.md +11 -11
  341. package/docs/rules/typescript-prefer-named-tuple-members.md +6 -6
  342. package/docs/rules/typescript-prefer-readonly-array-parameter.md +8 -8
  343. package/docs/rules/typescript-prefer-readonly-array.md +6 -6
  344. package/docs/rules/typescript-prefer-readonly-index-signature.md +12 -12
  345. package/docs/rules/typescript-prefer-readonly-map.md +6 -6
  346. package/docs/rules/typescript-prefer-readonly-property.md +10 -10
  347. package/docs/rules/typescript-prefer-readonly-record.md +9 -7
  348. package/docs/rules/typescript-prefer-readonly-set.md +6 -6
  349. package/docs/rules/typescript-require-prop-type-annotation.md +12 -12
  350. package/docs/rules/typescript-require-readonly-array-property-type.md +12 -12
  351. package/docs/rules/typescript-require-readonly-array-return-type.md +11 -11
  352. package/docs/rules/typescript-require-readonly-array-type-alias.md +6 -6
  353. package/docs/rules/typescript-require-readonly-map-parameter-type.md +9 -9
  354. package/docs/rules/typescript-require-readonly-map-property-type.md +13 -13
  355. package/docs/rules/typescript-require-readonly-map-return-type.md +13 -13
  356. package/docs/rules/typescript-require-readonly-map-type-alias.md +7 -7
  357. package/docs/rules/typescript-require-readonly-record-parameter-type.md +8 -8
  358. package/docs/rules/typescript-require-readonly-record-property-type.md +12 -12
  359. package/docs/rules/typescript-require-readonly-record-return-type.md +12 -12
  360. package/docs/rules/typescript-require-readonly-record-type-alias.md +6 -6
  361. package/docs/rules/typescript-require-readonly-set-parameter-type.md +8 -8
  362. package/docs/rules/typescript-require-readonly-set-property-type.md +12 -12
  363. package/docs/rules/typescript-require-readonly-set-return-type.md +12 -12
  364. package/docs/rules/typescript-require-readonly-set-type-alias.md +6 -6
  365. package/docs/rules/typescript-require-this-void.md +14 -14
  366. package/docs/rules/underscore-internal.md +10 -10
  367. package/docs/rules/unused-internal-properties.md +14 -14
  368. package/docs/rules/uppercase-iife.md +8 -8
  369. package/docs/rules/words.md +6 -6
  370. package/package.json +19 -13
@@ -31,7 +31,7 @@ answers.forEach((answer) => console.log(answer));
31
31
  ```ts
32
32
  const answers = [42, 54];
33
33
  for (const answer of answers) {
34
- console.log(answer);
34
+ console.log(answer);
35
35
  }
36
36
  ```
37
37
 
@@ -46,7 +46,7 @@ utilities to `for...of` before promoting to `error`.
46
46
 
47
47
  ```ts
48
48
  type Options = {
49
- types?: string[];
49
+ types?: string[];
50
50
  };
51
51
  ```
52
52
 
@@ -61,13 +61,17 @@ Use this option to control which type names are checked.
61
61
  ## Additional examples
62
62
 
63
63
  ```ts
64
- const set = new Set([1, 2, 3]);
64
+ const set = new Set([
65
+ 1,
66
+ 2,
67
+ 3,
68
+ ]);
65
69
  set.forEach((value) => console.log(value));
66
70
  // ❌ reported with default options
67
71
 
68
72
  const map = new Map<string, number>();
69
73
  for (const [key, value] of map) {
70
- console.log(key, value);
74
+ console.log(key, value);
71
75
  }
72
76
  // ✅ preferred style
73
77
  ```
@@ -78,12 +82,12 @@ for (const [key, value] of map) {
78
82
  import etcMisc from "eslint-plugin-etc-misc";
79
83
 
80
84
  export default [
81
- {
82
- plugins: { "etc-misc": etcMisc },
83
- rules: {
84
- "etc-misc/no-foreach": ["error", { types: ["Array", "Set"] }],
85
- },
86
- },
85
+ {
86
+ plugins: { "etc-misc": etcMisc },
87
+ rules: {
88
+ "etc-misc/no-foreach": ["error", { types: ["Array", "Set"] }],
89
+ },
90
+ },
87
91
  ];
88
92
  ```
89
93
 
@@ -37,13 +37,13 @@ narrowing before property access.
37
37
 
38
38
  ```ts
39
39
  Promise.reject(new Error("Boom")).catch((error) => {
40
- console.error(error);
40
+ console.error(error);
41
41
  });
42
42
  ```
43
43
 
44
44
  ```ts
45
45
  Promise.reject(new Error("Boom")).catch((error: any) => {
46
- console.error(error);
46
+ console.error(error);
47
47
  });
48
48
  ```
49
49
 
@@ -51,9 +51,9 @@ Promise.reject(new Error("Boom")).catch((error: any) => {
51
51
 
52
52
  ```ts
53
53
  Promise.reject(new Error("Boom")).catch((error: unknown) => {
54
- if (error instanceof Error) {
55
- console.error(error.message);
56
- }
54
+ if (error instanceof Error) {
55
+ console.error(error.message);
56
+ }
57
57
  });
58
58
  ```
59
59
 
@@ -68,16 +68,16 @@ narrowed annotations, a safe suggestion is provided instead of forced rewrite.
68
68
 
69
69
  ```ts
70
70
  type Options = [
71
- {
72
- allowExplicitAny?: boolean;
73
- }?,
71
+ {
72
+ allowExplicitAny?: boolean;
73
+ }?,
74
74
  ];
75
75
  ```
76
76
 
77
77
  Default:
78
78
 
79
79
  ```ts
80
- [{}]
80
+ [{}];
81
81
  ```
82
82
 
83
83
  ### `allowExplicitAny`
@@ -89,17 +89,17 @@ rejection callbacks.
89
89
  import etcMisc from "eslint-plugin-etc-misc";
90
90
 
91
91
  export default [
92
- {
93
- plugins: { "etc-misc": etcMisc },
94
- rules: {
95
- "etc-misc/no-implicit-any-catch": [
96
- "error",
97
- {
98
- allowExplicitAny: true,
99
- },
100
- ],
92
+ {
93
+ plugins: { "etc-misc": etcMisc },
94
+ rules: {
95
+ "etc-misc/no-implicit-any-catch": [
96
+ "error",
97
+ {
98
+ allowExplicitAny: true,
101
99
  },
100
+ ],
102
101
  },
102
+ },
103
103
  ];
104
104
  ```
105
105
 
@@ -107,17 +107,17 @@ export default [
107
107
 
108
108
  ```ts
109
109
  Promise.resolve(1).then(
110
- (value) => value,
111
- (error: string) => {
112
- console.error(error);
113
- }
110
+ (value) => value,
111
+ (error: string) => {
112
+ console.error(error);
113
+ }
114
114
  );
115
115
  // ❌ reported as narrowed type, with suggestion to use unknown
116
116
 
117
117
  Promise.resolve(1).catch((error: unknown) => {
118
- if (error instanceof Error) {
119
- console.error(error.message);
120
- }
118
+ if (error instanceof Error) {
119
+ console.error(error.message);
120
+ }
121
121
  });
122
122
  // ✅ valid
123
123
  ```
@@ -128,12 +128,12 @@ Promise.resolve(1).catch((error: unknown) => {
128
128
  import etcMisc from "eslint-plugin-etc-misc";
129
129
 
130
130
  export default [
131
- {
132
- plugins: { "etc-misc": etcMisc },
133
- rules: {
134
- "etc-misc/no-implicit-any-catch": "error",
135
- },
136
- },
131
+ {
132
+ plugins: { "etc-misc": etcMisc },
133
+ rules: {
134
+ "etc-misc/no-implicit-any-catch": "error",
135
+ },
136
+ },
137
137
  ];
138
138
  ```
139
139
 
@@ -40,8 +40,8 @@ Migration usually means replacing `"."` with a concrete relative path.
40
40
 
41
41
  ```ts
42
42
  type Options = {
43
- allow?: string[];
44
- disallow?: string[];
43
+ allow?: string[];
44
+ disallow?: string[];
45
45
  };
46
46
  ```
47
47
 
@@ -49,7 +49,7 @@ Default:
49
49
 
50
50
  ```json
51
51
  {
52
- "disallow": ["."]
52
+ "disallow": ["."]
53
53
  }
54
54
  ```
55
55
 
@@ -72,12 +72,12 @@ const moduleRef = await import("./feature");
72
72
  import etcMisc from "eslint-plugin-etc-misc";
73
73
 
74
74
  export default [
75
- {
76
- plugins: { "etc-misc": etcMisc },
77
- rules: {
78
- "etc-misc/no-index-import": "error",
79
- },
80
- },
75
+ {
76
+ plugins: { "etc-misc": etcMisc },
77
+ rules: {
78
+ "etc-misc/no-index-import": "error",
79
+ },
80
+ },
81
81
  ];
82
82
  ```
83
83
 
@@ -52,8 +52,8 @@ entrypoint imports.
52
52
 
53
53
  ```ts
54
54
  type Options = {
55
- allow?: string[];
56
- disallow?: string[];
55
+ allow?: string[];
56
+ disallow?: string[];
57
57
  };
58
58
  ```
59
59
 
@@ -61,7 +61,7 @@ Default:
61
61
 
62
62
  ```json
63
63
  {
64
- "disallow": ["./*/**", "[^@]*/**", "@?*/*/**"]
64
+ "disallow": ["./*/**", "[^@]*/**", "@?*/*/**"]
65
65
  }
66
66
  ```
67
67
 
@@ -82,12 +82,12 @@ import c from "@scope/package";
82
82
  import etcMisc from "eslint-plugin-etc-misc";
83
83
 
84
84
  export default [
85
- {
86
- plugins: { "etc-misc": etcMisc },
87
- rules: {
88
- "etc-misc/no-internal-modules": "error",
89
- },
90
- },
85
+ {
86
+ plugins: { "etc-misc": etcMisc },
87
+ rules: {
88
+ "etc-misc/no-internal-modules": "error",
89
+ },
90
+ },
91
91
  ];
92
92
  ```
93
93
 
@@ -6,7 +6,7 @@ Disallow usage of symbols tagged with `@internal`.
6
6
 
7
7
  ⚠️ This rule requires type information to run. Configure type-aware linting (`parserOptions.project` or `projectService`) before enabling it.
8
8
 
9
- This rule inspects identifier *usages* and resolves each identifier to a
9
+ This rule inspects identifier _usages_ and resolves each identifier to a
10
10
  TypeScript symbol.
11
11
 
12
12
  If the resolved symbol has one or more `@internal` JSDoc tags, usage is
@@ -31,7 +31,7 @@ outside a package's supported API surface.
31
31
  ```ts
32
32
  /** @internal */
33
33
  interface InternalType {
34
- readonly value: number;
34
+ readonly value: number;
35
35
  }
36
36
 
37
37
  const item: InternalType = { value: 42 };
@@ -48,7 +48,7 @@ internalFunction();
48
48
 
49
49
  ```ts
50
50
  interface PublicType {
51
- readonly value: number;
51
+ readonly value: number;
52
52
  }
53
53
 
54
54
  const item: PublicType = { value: 42 };
@@ -57,7 +57,7 @@ const item: PublicType = { value: 42 };
57
57
  ```ts
58
58
  /** @internal */
59
59
  interface InternalType {
60
- readonly value: number;
60
+ readonly value: number;
61
61
  }
62
62
 
63
63
  // Declaration is allowed. Only usage is reported.
@@ -74,16 +74,16 @@ focuses on usage sites resolved through TypeScript symbol information.
74
74
 
75
75
  ```ts
76
76
  type Options = [
77
- {
78
- ignored?: Record<string, "name" | "path">;
79
- }?,
77
+ {
78
+ ignored?: Record<string, "name" | "path">;
79
+ }?,
80
80
  ];
81
81
  ```
82
82
 
83
83
  Default:
84
84
 
85
85
  ```ts
86
- [{}]
86
+ [{}];
87
87
  ```
88
88
 
89
89
  Use `ignored` to suppress some internal symbols by regular-expression pattern:
@@ -100,20 +100,20 @@ Example:
100
100
  import etcMisc from "eslint-plugin-etc-misc";
101
101
 
102
102
  export default [
103
- {
104
- plugins: { "etc-misc": etcMisc },
105
- rules: {
106
- "etc-misc/no-internal": [
107
- "error",
108
- {
109
- ignored: {
110
- "^ExperimentalInternalType$": "name",
111
- "modules/internal": "path",
112
- },
113
- },
114
- ],
103
+ {
104
+ plugins: { "etc-misc": etcMisc },
105
+ rules: {
106
+ "etc-misc/no-internal": [
107
+ "error",
108
+ {
109
+ ignored: {
110
+ "^ExperimentalInternalType$": "name",
111
+ "modules/internal": "path",
112
+ },
115
113
  },
114
+ ],
116
115
  },
116
+ },
117
117
  ];
118
118
  ```
119
119
 
@@ -137,12 +137,12 @@ const ignoredValue = __internalThing;
137
137
  import etcMisc from "eslint-plugin-etc-misc";
138
138
 
139
139
  export default [
140
- {
141
- plugins: { "etc-misc": etcMisc },
142
- rules: {
143
- "etc-misc/no-internal": "error",
144
- },
145
- },
140
+ {
141
+ plugins: { "etc-misc": etcMisc },
142
+ rules: {
143
+ "etc-misc/no-internal": "error",
144
+ },
145
+ },
146
146
  ];
147
147
  ```
148
148
 
@@ -59,12 +59,12 @@ const mixed = `пользовательId42`;
59
59
  import etcMisc from "eslint-plugin-etc-misc";
60
60
 
61
61
  export default [
62
- {
63
- plugins: { "etc-misc": etcMisc },
64
- rules: {
65
- "etc-misc/no-language-mixing": "error",
66
- },
67
- },
62
+ {
63
+ plugins: { "etc-misc": etcMisc },
64
+ rules: {
65
+ "etc-misc/no-language-mixing": "error",
66
+ },
67
+ },
68
68
  ];
69
69
  ```
70
70
 
@@ -59,12 +59,12 @@ When this rule reports `canReplace`, replacing the type parameter with `unknown`
59
59
 
60
60
  ```ts
61
61
  function wrap<T extends string>(value: T): void {
62
- console.log(value);
62
+ console.log(value);
63
63
  }
64
64
  // ❌ reported with `canReplace`: `T` can be replaced with `string`
65
65
 
66
66
  function pair<T>(left: T, right: T): [T, T] {
67
- return [left, right];
67
+ return [left, right];
68
68
  }
69
69
  // ✅ valid: `T` meaningfully relates parameters and return type
70
70
  ```
@@ -75,12 +75,12 @@ function pair<T>(left: T, right: T): [T, T] {
75
75
  import etcMisc from "eslint-plugin-etc-misc";
76
76
 
77
77
  export default [
78
- {
79
- plugins: { "etc-misc": etcMisc },
80
- rules: {
81
- "etc-misc/no-misused-generics": "error",
82
- },
83
- },
78
+ {
79
+ plugins: { "etc-misc": etcMisc },
80
+ rules: {
81
+ "etc-misc/no-misused-generics": "error",
82
+ },
83
+ },
84
84
  ];
85
85
  ```
86
86
 
@@ -20,8 +20,8 @@ understand.
20
20
 
21
21
  ```ts
22
22
  enum State {
23
- open = "open",
24
- closed = 2,
23
+ open = "open",
24
+ closed = 2,
25
25
  }
26
26
  ```
27
27
 
@@ -29,8 +29,8 @@ enum State {
29
29
 
30
30
  ```ts
31
31
  enum State {
32
- open = 1,
33
- closed = 2,
32
+ open = 1,
33
+ closed = 2,
34
34
  }
35
35
  ```
36
36
 
@@ -48,14 +48,14 @@ This rule forwards options and behavior to
48
48
 
49
49
  ```ts
50
50
  enum NumericStatus {
51
- Open = 1,
52
- Closed = 2,
51
+ Open = 1,
52
+ Closed = 2,
53
53
  }
54
54
  // ✅ valid
55
55
 
56
56
  enum MixedStatus {
57
- Open = "open",
58
- Closed = 2,
57
+ Open = "open",
58
+ Closed = 2,
59
59
  }
60
60
  // ❌ reported
61
61
  ```
@@ -66,12 +66,12 @@ enum MixedStatus {
66
66
  import etcMisc from "eslint-plugin-etc-misc";
67
67
 
68
68
  export default [
69
- {
70
- plugins: { "etc-misc": etcMisc },
71
- rules: {
72
- "etc-misc/no-mixed-enums": "error",
73
- },
74
- },
69
+ {
70
+ plugins: { "etc-misc": etcMisc },
71
+ rules: {
72
+ "etc-misc/no-mixed-enums": "error",
73
+ },
74
+ },
75
75
  ];
76
76
  ```
77
77
 
@@ -25,16 +25,20 @@ expressions. Positive predicates are usually easier to scan and reason about.
25
25
  ## ❌ Incorrect
26
26
 
27
27
  ```ts
28
- if (!x && y) {}
29
- if (x !== 1 && y) {}
28
+ if (!x && y) {
29
+ }
30
+ if (x !== 1 && y) {
31
+ }
30
32
  const value = !x || y;
31
33
  ```
32
34
 
33
35
  ## ✅ Correct
34
36
 
35
37
  ```ts
36
- if (x && y) {}
37
- if (x === 1 && y) {}
38
+ if (x && y) {
39
+ }
40
+ if (x === 1 && y) {
41
+ }
38
42
  const value = x && y;
39
43
  ```
40
44
 
@@ -53,12 +57,12 @@ This rule has no options.
53
57
 
54
58
  ```ts
55
59
  if (!isReady || hasError) {
56
- return;
60
+ return;
57
61
  }
58
62
  // ❌ reported
59
63
 
60
64
  if (isReady && hasNoError) {
61
- start();
65
+ start();
62
66
  }
63
67
  // ✅ valid when predicates are already positive.
64
68
  ```
@@ -69,12 +73,12 @@ if (isReady && hasNoError) {
69
73
  import etcMisc from "eslint-plugin-etc-misc";
70
74
 
71
75
  export default [
72
- {
73
- plugins: { "etc-misc": etcMisc },
74
- rules: {
75
- "etc-misc/no-negated-conditions": "error",
76
- },
77
- },
76
+ {
77
+ plugins: { "etc-misc": etcMisc },
78
+ rules: {
79
+ "etc-misc/no-negated-conditions": "error",
80
+ },
81
+ },
78
82
  ];
79
83
  ```
80
84
 
@@ -45,8 +45,8 @@ with `path`, and so on.
45
45
 
46
46
  ```ts
47
47
  type Options = {
48
- allow?: string[];
49
- disallow?: string[];
48
+ allow?: string[];
49
+ disallow?: string[];
50
50
  };
51
51
  ```
52
52
 
@@ -54,7 +54,7 @@ Default:
54
54
 
55
55
  ```json
56
56
  {
57
- "disallow": ["node:*"]
57
+ "disallow": ["node:*"]
58
58
  }
59
59
  ```
60
60
 
@@ -74,12 +74,12 @@ const fsModule = await import("fs");
74
74
  import etcMisc from "eslint-plugin-etc-misc";
75
75
 
76
76
  export default [
77
- {
78
- plugins: { "etc-misc": etcMisc },
79
- rules: {
80
- "etc-misc/no-nodejs-modules": "error",
81
- },
82
- },
77
+ {
78
+ plugins: { "etc-misc": etcMisc },
79
+ rules: {
80
+ "etc-misc/no-nodejs-modules": "error",
81
+ },
82
+ },
83
83
  ];
84
84
  ```
85
85
 
@@ -25,8 +25,8 @@ input values.
25
25
 
26
26
  ```ts
27
27
  function f(value: number) {
28
- sideEffect();
29
- value += 1;
28
+ sideEffect();
29
+ value += 1;
30
30
  }
31
31
  ```
32
32
 
@@ -34,23 +34,23 @@ function f(value: number) {
34
34
 
35
35
  ```ts
36
36
  function f(value: number) {
37
- value += 1;
38
- sideEffect();
37
+ value += 1;
38
+ sideEffect();
39
39
  }
40
40
  ```
41
41
 
42
42
  ```ts
43
43
  function f(value: number): number {
44
- const nextValue = value + 1;
45
- return nextValue;
44
+ const nextValue = value + 1;
45
+ return nextValue;
46
46
  }
47
47
  ```
48
48
 
49
49
  ```ts
50
50
  function initialize(value: number) {
51
- value = normalize(value);
52
- // ✅ allowed: reassignment occurs in first expression statement
53
- return value;
51
+ value = normalize(value);
52
+ // ✅ allowed: reassignment occurs in first expression statement
53
+ return value;
54
54
  }
55
55
  ```
56
56
 
@@ -68,10 +68,10 @@ This rule has no options.
68
68
 
69
69
  ```ts
70
70
  function increment(count: number): number {
71
- doWork();
72
- count++;
73
- // ❌ reported: update occurs after the first expression statement
74
- return count;
71
+ doWork();
72
+ count++;
73
+ // ❌ reported: update occurs after the first expression statement
74
+ return count;
75
75
  }
76
76
  ```
77
77
 
@@ -81,12 +81,12 @@ function increment(count: number): number {
81
81
  import etcMisc from "eslint-plugin-etc-misc";
82
82
 
83
83
  export default [
84
- {
85
- plugins: { "etc-misc": etcMisc },
86
- rules: {
87
- "etc-misc/no-param-reassign": "error",
88
- },
89
- },
84
+ {
85
+ plugins: { "etc-misc": etcMisc },
86
+ rules: {
87
+ "etc-misc/no-param-reassign": "error",
88
+ },
89
+ },
90
90
  ];
91
91
  ```
92
92
 
@@ -50,8 +50,8 @@ It reports only and does not provide an autofix.
50
50
 
51
51
  ```ts
52
52
  type Options = {
53
- allow?: string[];
54
- disallow?: string[];
53
+ allow?: string[];
54
+ disallow?: string[];
55
55
  };
56
56
  ```
57
57
 
@@ -61,7 +61,7 @@ Use `allow` for specific exceptions:
61
61
 
62
62
  ```ts
63
63
  {
64
- allow: ["../allowed-source"]
64
+ allow: ["../allowed-source"];
65
65
  }
66
66
  ```
67
67
 
@@ -86,15 +86,15 @@ import mod from "@/shared/mod";
86
86
  import etcMisc from "eslint-plugin-etc-misc";
87
87
 
88
88
  export default [
89
- {
90
- plugins: { "etc-misc": etcMisc },
91
- rules: {
92
- "etc-misc/no-relative-parent-import": [
93
- "error",
94
- { allow: ["../allowed-source"] },
95
- ],
96
- },
97
- },
89
+ {
90
+ plugins: { "etc-misc": etcMisc },
91
+ rules: {
92
+ "etc-misc/no-relative-parent-import": [
93
+ "error",
94
+ { allow: ["../allowed-source"] },
95
+ ],
96
+ },
97
+ },
98
98
  ];
99
99
  ```
100
100