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
@@ -18,9 +18,9 @@ Write-only properties hide state flow and make object behavior harder to debug.
18
18
 
19
19
  ```ts
20
20
  const state = {
21
- set value(next: number) {
22
- this._value = next;
23
- },
21
+ set value(next: number) {
22
+ this._value = next;
23
+ },
24
24
  };
25
25
  ```
26
26
 
@@ -28,13 +28,13 @@ const state = {
28
28
 
29
29
  ```ts
30
30
  const state = {
31
- _value: 0,
32
- get value() {
33
- return this._value;
34
- },
35
- set value(next: number) {
36
- this._value = next;
37
- },
31
+ _value: 0,
32
+ get value() {
33
+ return this._value;
34
+ },
35
+ set value(next: number) {
36
+ this._value = next;
37
+ },
38
38
  };
39
39
  ```
40
40
 
@@ -46,22 +46,22 @@ This rule forwards options and behavior to ESLint core `accessor-pairs`.
46
46
 
47
47
  ```ts
48
48
  class Box {
49
- set value(next: number) {
50
- this._value = next;
51
- }
49
+ set value(next: number) {
50
+ this._value = next;
51
+ }
52
52
  }
53
53
  // ❌ reported
54
54
 
55
55
  class BoxFixed {
56
- _value = 0;
56
+ _value = 0;
57
57
 
58
- get value() {
59
- return this._value;
60
- }
58
+ get value() {
59
+ return this._value;
60
+ }
61
61
 
62
- set value(next: number) {
63
- this._value = next;
64
- }
62
+ set value(next: number) {
63
+ this._value = next;
64
+ }
65
65
  }
66
66
  // ✅ valid
67
67
  ```
@@ -72,12 +72,12 @@ class BoxFixed {
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-writeonly": "error",
79
- },
80
- },
75
+ {
76
+ plugins: { "etc-misc": etcMisc },
77
+ rules: {
78
+ "etc-misc/no-writeonly": "error",
79
+ },
80
+ },
81
81
  ];
82
82
  ```
83
83
 
@@ -12,7 +12,7 @@ enforces single-line or multi-line formatting based on property count.
12
12
  For each object literal with at least two properties:
13
13
 
14
14
  - if property count is less than or equal to `maxProperties`, the object must be
15
- on a single line;
15
+ on a single line;
16
16
  - otherwise, the object must span multiple lines.
17
17
 
18
18
  ## Why this rule exists
@@ -33,8 +33,8 @@ const point = { x: 1, y: 2 };
33
33
  ```ts
34
34
  // default maxProperties: 1
35
35
  const point = {
36
- x: 1,
37
- y: 2,
36
+ x: 1,
37
+ y: 2,
38
38
  };
39
39
  ```
40
40
 
@@ -54,9 +54,9 @@ before enforcing as `error`.
54
54
 
55
55
  ```ts
56
56
  type Options = [
57
- {
58
- maxProperties?: number; // default: 1
59
- },
57
+ {
58
+ maxProperties?: number; // default: 1
59
+ },
60
60
  ];
61
61
  ```
62
62
 
@@ -65,7 +65,7 @@ type Options = [
65
65
  ### Default configuration
66
66
 
67
67
  ```ts
68
- [{ maxProperties: 1 }]
68
+ [{ maxProperties: 1 }];
69
69
  ```
70
70
 
71
71
  ## Additional examples
@@ -75,9 +75,9 @@ const pair = { left: 1, right: 2 };
75
75
  // ✅ valid when configured with { maxProperties: 2 }
76
76
 
77
77
  const tupleLike = {
78
- first: 1,
79
- second: 2,
80
- third: 3,
78
+ first: 1,
79
+ second: 2,
80
+ third: 3,
81
81
  };
82
82
  // ✅ required when maxProperties is 2
83
83
  ```
@@ -88,12 +88,12 @@ const tupleLike = {
88
88
  import etcMisc from "eslint-plugin-etc-misc";
89
89
 
90
90
  export default [
91
- {
92
- plugins: { "etc-misc": etcMisc },
93
- rules: {
94
- "etc-misc/object-format": "error",
95
- },
96
- },
91
+ {
92
+ plugins: { "etc-misc": etcMisc },
93
+ rules: {
94
+ "etc-misc/object-format": "error",
95
+ },
96
+ },
97
97
  ];
98
98
  ```
99
99
 
@@ -46,7 +46,9 @@ export const value = 1;
46
46
  with options:
47
47
 
48
48
  ```ts
49
- { names: ["value"] }
49
+ {
50
+ names: ["value"];
51
+ }
50
52
  ```
51
53
 
52
54
  ## Behavior and migration notes
@@ -60,7 +62,7 @@ explicitly allowed.
60
62
 
61
63
  ```ts
62
64
  type Options = {
63
- names?: string[];
65
+ names?: string[];
64
66
  };
65
67
  ```
66
68
 
@@ -91,12 +93,12 @@ export { buildClient as client };
91
93
  import etcMisc from "eslint-plugin-etc-misc";
92
94
 
93
95
  export default [
94
- {
95
- plugins: { "etc-misc": etcMisc },
96
- rules: {
97
- "etc-misc/only-export-name": ["error", { names: ["value"] }],
98
- },
99
- },
96
+ {
97
+ plugins: { "etc-misc": etcMisc },
98
+ rules: {
99
+ "etc-misc/only-export-name": ["error", { names: ["value"] }],
100
+ },
101
+ },
100
102
  ];
101
103
  ```
102
104
 
@@ -31,13 +31,14 @@ That is enough for TypeScript files (`**/*.{ts,tsx,mts,cts}`).
31
31
 
32
32
  ## Presets
33
33
 
34
- | Preset | Purpose |
35
- | ----------------------------------- | ---------------------------------------------------------------------- |
36
- | 🟡 `etcMisc.configs.recommended` | Balanced starter preset for most projects. |
37
- | 🟠 `etcMisc.configs.strict` | Same rule set as `recommended`, but every enabled rule is `error`. |
38
- | 🔵 `etcMisc.configs.strictTypeChecked` | `strict` plus additional non-deprecated type-aware rules at `error`. |
39
- | 🔴 `etcMisc.configs.allStrict` | Every non-deprecated plugin rule at `error` (deprecated rules stay `warn`). |
40
- | 🟣 `etcMisc.configs.all` | Enables every rule exported by the plugin with metadata-derived severities. |
34
+ | Preset | Purpose |
35
+ | -------------------------------------- | --------------------------------------------------------------------------- |
36
+ | 🟢 `etcMisc.configs.minimal` | `recommended` minus the `typescript/prefer-readonly*` rules. |
37
+ | 🟡 `etcMisc.configs.recommended` | Balanced starter preset for most projects. |
38
+ | 🟠 `etcMisc.configs.strict` | Same rule set as `recommended`, but every enabled rule is `error`. |
39
+ | 🔵 `etcMisc.configs.strictTypeChecked` | `strict` plus additional non-deprecated type-aware rules at `error`. |
40
+ | 🔴 `etcMisc.configs.allStrict` | Every non-deprecated plugin rule at `error` (deprecated rules stay `warn`). |
41
+ | 🟣 `etcMisc.configs.all` | Enables every rule exported by the plugin with metadata-derived severities. |
41
42
 
42
43
  ## Next steps
43
44
 
@@ -23,12 +23,12 @@ low-ambiguity style.
23
23
 
24
24
  ```ts
25
25
  const handlers = {
26
- onClick() {
27
- return "clicked";
28
- },
29
- onHover: function () {
30
- return "hovered";
31
- },
26
+ onClick() {
27
+ return "clicked";
28
+ },
29
+ onHover: function () {
30
+ return "hovered";
31
+ },
32
32
  };
33
33
  ```
34
34
 
@@ -36,11 +36,11 @@ const handlers = {
36
36
 
37
37
  ```ts
38
38
  const handlers = {
39
- onClick: () => "clicked",
40
- onHover: () => "hovered",
41
- withThis(this: void) {
42
- return "ok";
43
- },
39
+ onClick: () => "clicked",
40
+ onHover: () => "hovered",
41
+ withThis(this: void) {
42
+ return "ok";
43
+ },
44
44
  };
45
45
  ```
46
46
 
@@ -56,17 +56,17 @@ uses method-style `this`, keep it as a method and annotate `this` explicitly.
56
56
 
57
57
  ```ts
58
58
  const formatter = {
59
- prefix: "#",
60
- format(this: { prefix: string }, value: number) {
61
- return `${this.prefix}${value}`;
62
- },
59
+ prefix: "#",
60
+ format(this: { prefix: string }, value: number) {
61
+ return `${this.prefix}${value}`;
62
+ },
63
63
  };
64
64
  // ✅ valid: explicit `this` parameter is allowed by this rule
65
65
 
66
66
  const formatter2 = {
67
- format(value: number) {
68
- return String(value);
69
- },
67
+ format(value: number) {
68
+ return String(value);
69
+ },
70
70
  };
71
71
  // ❌ reported
72
72
  ```
@@ -77,12 +77,12 @@ const formatter2 = {
77
77
  import etcMisc from "eslint-plugin-etc-misc";
78
78
 
79
79
  export default [
80
- {
81
- plugins: { "etc-misc": etcMisc },
82
- rules: {
83
- "etc-misc/prefer-arrow-function-property": "error",
84
- },
85
- },
80
+ {
81
+ plugins: { "etc-misc": etcMisc },
82
+ rules: {
83
+ "etc-misc/prefer-arrow-function-property": "error",
84
+ },
85
+ },
86
86
  ];
87
87
  ```
88
88
 
@@ -22,7 +22,7 @@ makes migration toward ESM import style easier.
22
22
 
23
23
  ```ts
24
24
  function loadPath() {
25
- return require("node:path");
25
+ return require("node:path");
26
26
  }
27
27
  ```
28
28
 
@@ -32,7 +32,7 @@ function loadPath() {
32
32
  const path = require("node:path");
33
33
 
34
34
  function loadPath() {
35
- return path;
35
+ return path;
36
36
  }
37
37
  ```
38
38
 
@@ -60,12 +60,12 @@ logger.info(os.platform());
60
60
  import etcMisc from "eslint-plugin-etc-misc";
61
61
 
62
62
  export default [
63
- {
64
- plugins: { "etc-misc": etcMisc },
65
- rules: {
66
- "etc-misc/prefer-const-require": "error",
67
- },
68
- },
63
+ {
64
+ plugins: { "etc-misc": etcMisc },
65
+ rules: {
66
+ "etc-misc/prefer-const-require": "error",
67
+ },
68
+ },
69
69
  ];
70
70
  ```
71
71
 
@@ -19,13 +19,22 @@ comparisons.
19
19
  ## ❌ Incorrect
20
20
 
21
21
  ```ts
22
- const hasValue = [1, 2, 3].indexOf(2) !== -1;
22
+ const hasValue =
23
+ [
24
+ 1,
25
+ 2,
26
+ 3,
27
+ ].indexOf(2) !== -1;
23
28
  ```
24
29
 
25
30
  ## ✅ Correct
26
31
 
27
32
  ```ts
28
- const hasValue = [1, 2, 3].includes(2);
33
+ const hasValue = [
34
+ 1,
35
+ 2,
36
+ 3,
37
+ ].includes(2);
29
38
  ```
30
39
 
31
40
  ## Behavior and migration notes
@@ -53,12 +62,12 @@ const hasName2 = names.includes("alice");
53
62
  import etcMisc from "eslint-plugin-etc-misc";
54
63
 
55
64
  export default [
56
- {
57
- plugins: { "etc-misc": etcMisc },
58
- rules: {
59
- "etc-misc/prefer-includes": "error",
60
- },
61
- },
65
+ {
66
+ plugins: { "etc-misc": etcMisc },
67
+ rules: {
68
+ "etc-misc/prefer-includes": "error",
69
+ },
70
+ },
62
71
  ];
63
72
  ```
64
73
 
@@ -22,8 +22,8 @@ For interface-compatible shapes, interfaces can provide clearer extension patter
22
22
 
23
23
  ```ts
24
24
  type Person = {
25
- name: string;
26
- age: number;
25
+ name: string;
26
+ age: number;
27
27
  };
28
28
  ```
29
29
 
@@ -35,14 +35,14 @@ type Comparator<T> = (left: T, right: T) => number;
35
35
 
36
36
  ```ts
37
37
  interface Person {
38
- name: string;
39
- age: number;
38
+ name: string;
39
+ age: number;
40
40
  }
41
41
  ```
42
42
 
43
43
  ```ts
44
44
  interface Comparator<T> {
45
- (left: T, right: T): number;
45
+ (left: T, right: T): number;
46
46
  }
47
47
  ```
48
48
 
@@ -59,17 +59,17 @@ Use instead: [`@typescript-eslint/consistent-type-definitions`](https://typescri
59
59
 
60
60
  ```ts
61
61
  type Options = [
62
- {
63
- allowIntersection?: boolean;
64
- allowLocal?: boolean;
65
- }?,
62
+ {
63
+ allowIntersection?: boolean;
64
+ allowLocal?: boolean;
65
+ }?,
66
66
  ];
67
67
  ```
68
68
 
69
69
  ### Default configuration
70
70
 
71
71
  ```ts
72
- [{}]
72
+ [{}];
73
73
  ```
74
74
 
75
75
  Effective behavior with defaults:
@@ -89,11 +89,11 @@ With `allowIntersection: false`:
89
89
 
90
90
  ```ts
91
91
  interface Name {
92
- name: string;
92
+ name: string;
93
93
  }
94
94
 
95
95
  interface Age {
96
- age: number;
96
+ age: number;
97
97
  }
98
98
 
99
99
  type User = Name & Age;
@@ -103,11 +103,11 @@ is converted to:
103
103
 
104
104
  ```ts
105
105
  interface Name {
106
- name: string;
106
+ name: string;
107
107
  }
108
108
 
109
109
  interface Age {
110
- age: number;
110
+ age: number;
111
111
  }
112
112
 
113
113
  interface User extends Name, Age {}
@@ -119,18 +119,18 @@ interface User extends Name, Age {}
119
119
  import etcMisc from "eslint-plugin-etc-misc";
120
120
 
121
121
  export default [
122
+ {
123
+ plugins: { "etc-misc": etcMisc },
124
+ rules: {
125
+ "etc-misc/prefer-interface": [
126
+ "error",
122
127
  {
123
- plugins: { "etc-misc": etcMisc },
124
- rules: {
125
- "etc-misc/prefer-interface": [
126
- "error",
127
- {
128
- allowIntersection: false,
129
- allowLocal: true,
130
- },
131
- ],
132
- },
128
+ allowIntersection: false,
129
+ allowLocal: true,
133
130
  },
131
+ ],
132
+ },
133
+ },
134
134
  ];
135
135
  ```
136
136
 
@@ -23,7 +23,7 @@ visually consistent across a codebase.
23
23
  const isValid = value > min;
24
24
 
25
25
  if (value >= min && value <= max) {
26
- run();
26
+ run();
27
27
  }
28
28
  ```
29
29
 
@@ -33,7 +33,7 @@ if (value >= min && value <= max) {
33
33
  const isValid = min < value;
34
34
 
35
35
  if (min <= value && value <= max) {
36
- run();
36
+ run();
37
37
  }
38
38
  ```
39
39
 
@@ -51,12 +51,12 @@ operator:
51
51
 
52
52
  ```ts
53
53
  if (score >= threshold) {
54
- pass();
54
+ pass();
55
55
  }
56
56
  // ❌ reported and auto-fixable to `threshold <= score`
57
57
 
58
58
  if (threshold <= score) {
59
- pass();
59
+ pass();
60
60
  }
61
61
  // ✅ valid
62
62
  ```
@@ -67,12 +67,12 @@ if (threshold <= score) {
67
67
  import etcMisc from "eslint-plugin-etc-misc";
68
68
 
69
69
  export default [
70
- {
71
- plugins: { "etc-misc": etcMisc },
72
- rules: {
73
- "etc-misc/prefer-less-than": "error",
74
- },
75
- },
70
+ {
71
+ plugins: { "etc-misc": etcMisc },
72
+ rules: {
73
+ "etc-misc/prefer-less-than": "error",
74
+ },
75
+ },
76
76
  ];
77
77
  ```
78
78
 
@@ -52,12 +52,12 @@ Object.hasOwn(config, "port");
52
52
  import etcMisc from "eslint-plugin-etc-misc";
53
53
 
54
54
  export default [
55
- {
56
- plugins: { "etc-misc": etcMisc },
57
- rules: {
58
- "etc-misc/prefer-object-has-own": "error",
59
- },
60
- },
55
+ {
56
+ plugins: { "etc-misc": etcMisc },
57
+ rules: {
58
+ "etc-misc/prefer-object-has-own": "error",
59
+ },
60
+ },
61
61
  ];
62
62
  ```
63
63
 
@@ -59,12 +59,12 @@ export default function main() {}
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/prefer-only-export": "error",
66
- },
67
- },
62
+ {
63
+ plugins: { "etc-misc": etcMisc },
64
+ rules: {
65
+ "etc-misc/prefer-only-export": "error",
66
+ },
67
+ },
68
68
  ];
69
69
  ```
70
70
 
@@ -10,7 +10,7 @@ surface.
10
10
  ## Config key
11
11
 
12
12
  ```ts
13
- etcMisc.configs.allStrict
13
+ etcMisc.configs.allStrict;
14
14
  ```
15
15
 
16
16
  ## Flat Config example
@@ -0,0 +1,44 @@
1
+ ---
2
+ title: Minimal preset
3
+ ---
4
+
5
+ # 🟢 Minimal
6
+
7
+ Use this preset when you want the `recommended` baseline without the
8
+ `typescript/prefer-readonly*` rules.
9
+
10
+ ## Config key
11
+
12
+ ```ts
13
+ etcMisc.configs.minimal;
14
+ ```
15
+
16
+ ## Flat Config example
17
+
18
+ ```ts
19
+ import etcMisc from "eslint-plugin-etc-misc";
20
+
21
+ export default [etcMisc.configs.minimal];
22
+ ```
23
+
24
+ ## Rules in this preset
25
+
26
+ - [`etc-misc/consistent-optional-props`](../consistent-optional-props.md) (R008)
27
+ - [`etc-misc/no-assign-mutated-array`](../no-assign-mutated-array.md) (R016)
28
+ - [`etc-misc/no-const-enum`](../no-const-enum.md) (R021)
29
+ - [`etc-misc/no-implicit-any-catch`](../no-implicit-any-catch.md) (R026)
30
+ - [`etc-misc/no-internal`](../no-internal.md) (R028)
31
+ - [`etc-misc/no-t`](../no-t.md) (R043)
32
+ - [`etc-misc/no-unnecessary-as-const`](../no-unnecessary-as-const.md) (R045)
33
+ - [`etc-misc/no-unnecessary-break`](../no-unnecessary-break.md) (R046)
34
+ - [`etc-misc/no-unnecessary-initialization`](../no-unnecessary-initialization.md) (R047)
35
+ - [`etc-misc/no-unnecessary-template-literal`](../no-unnecessary-template-literal.md) (R048)
36
+ - [`etc-misc/throw-error`](../throw-error.md) (R074)
37
+ - [`etc-misc/typescript/no-boolean-literal-type`](../typescript-no-boolean-literal-type.md) (R085)
38
+ - [`etc-misc/typescript/require-readonly-array-return-type`](../typescript-require-readonly-array-return-type.md) (R116)
39
+ - [`etc-misc/typescript/require-this-void`](../typescript-require-this-void.md) (R130)
40
+
41
+ ## Adoption guidance
42
+
43
+ Start here if you want a pragmatic baseline before adopting readonly-style
44
+ constraints from `recommended`.
@@ -9,7 +9,7 @@ Use this preset as the default onboarding path for most projects.
9
9
  ## Config key
10
10
 
11
11
  ```ts
12
- etcMisc.configs.recommended
12
+ etcMisc.configs.recommended;
13
13
  ```
14
14
 
15
15
  ## Flat Config example
@@ -46,6 +46,8 @@ export default [etcMisc.configs.recommended];
46
46
 
47
47
  ## Adoption guidance
48
48
 
49
+ If you don’t want readonly preference rules yet, start with minimal. Otherwise, start here for a balanced baseline of correctness and maintainability rules. This preset is designed to be a long-term baseline, so it includes some rules that may be initially noisy but are worth fixing early for long-term benefits.
50
+
49
51
  This preset now enables a wider "safe baseline" mix:
50
52
 
51
53
  - strong correctness rules as `error`
@@ -10,7 +10,7 @@ rules that require TypeScript type information.
10
10
  ## Config key
11
11
 
12
12
  ```ts
13
- etcMisc.configs.strictTypeChecked
13
+ etcMisc.configs.strictTypeChecked;
14
14
  ```
15
15
 
16
16
  ## Flat Config example
@@ -10,7 +10,7 @@ enforcement.
10
10
  ## Config key
11
11
 
12
12
  ```ts
13
- etcMisc.configs.strict
13
+ etcMisc.configs.strict;
14
14
  ```
15
15
 
16
16
  ## Flat Config example