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
@@ -1,18 +1,18 @@
1
1
  /* eslint-disable @typescript-eslint/prefer-readonly-parameter-types -- ESLint fixer API callback signatures. */
2
+ import { arrayFirst, arrayJoin, arrayLast } from "ts-extras";
2
3
  import { ruleCreator } from "../_internal/rule-creator.js";
3
4
  const commentText = (comment) => comment.value.trim();
4
- const buildReplacement = (sourceCode, comments) => comments
5
+ const buildReplacement = (sourceCode, comments) => arrayJoin(comments
5
6
  .map((comment) => sourceCode.getText(comment))
6
7
  // eslint-disable-next-line unicorn/no-array-sort -- Node >=16.0 support baseline
7
- .sort((a, b) => a.localeCompare(b))
8
- .join("\n");
8
+ .sort((a, b) => a.localeCompare(b)), "\n");
9
9
  /**
10
10
  * Enforce alphabetical ordering of top-of-file comments.
11
11
  */
12
12
  const rule = ruleCreator({
13
13
  create: (context) => ({
14
14
  Program: (node) => {
15
- const firstNode = node.body[0];
15
+ const firstNode = arrayFirst(node.body);
16
16
  if (firstNode === undefined) {
17
17
  return;
18
18
  }
@@ -22,12 +22,11 @@ const rule = ruleCreator({
22
22
  if (comments.length < 2) {
23
23
  return;
24
24
  }
25
- const firstComment = comments[0];
25
+ const firstComment = arrayFirst(comments);
26
26
  if (firstComment === undefined) {
27
27
  return;
28
28
  }
29
- // eslint-disable-next-line unicorn/prefer-at -- Node >=16.0 support baseline
30
- const lastComment = comments[comments.length - 1] ?? firstComment;
29
+ const lastComment = arrayLast(comments) ?? firstComment;
31
30
  // eslint-disable-next-line unicorn/no-array-sort -- Node >=16.0 support baseline
32
31
  const sorted = [...comments].sort((a, b) => commentText(a).localeCompare(commentText(b)));
33
32
  const isSorted = comments.every((comment, index) => comment === sorted[index]);
@@ -35,7 +34,7 @@ const rule = ruleCreator({
35
34
  return;
36
35
  }
37
36
  context.report({
38
- fix: (fixer) => fixer.replaceTextRange([firstComment.range[0], lastComment.range[1]], buildReplacement(context.sourceCode, comments)),
37
+ fix: (fixer) => fixer.replaceTextRange([arrayFirst(firstComment.range), lastComment.range[1]], buildReplacement(context.sourceCode, comments)),
39
38
  messageId: "incorrectSorting",
40
39
  node: firstComment,
41
40
  });
@@ -1 +1 @@
1
- {"version":3,"file":"sort-top-comments.js","sourceRoot":"","sources":["../../src/rules/sort-top-comments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sort-top-comments.js","sourceRoot":"","sources":["../../src/rules/sort-top-comments.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"switch-case-spacing.d.ts","sourceRoot":"","sources":["../../src/rules/switch-case-spacing.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,KAAK,UAAU,GAAG,WAAW,CAAC;AAE9B,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAuB3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAoC5D,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,cAAc,EAAE,OAAO,IAe3B,CAAC;AAEH,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"switch-case-spacing.d.ts","sourceRoot":"","sources":["../../src/rules/switch-case-spacing.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,KAAK,UAAU,GAAG,WAAW,CAAC;AAE9B,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAsB3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAoC5D,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,cAAc,EAAE,OAAO,IAe3B,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { arrayLast } from "ts-extras";
1
2
  import { ruleCreator } from "../_internal/rule-creator.js";
2
3
  import { createReplacementRuleInfo, withDeprecatedRuleLifecycle, } from "../_internal/rule-deprecation.js";
3
4
  const isValidCaseBody = (node) => {
@@ -5,8 +6,7 @@ const isValidCaseBody = (node) => {
5
6
  return true;
6
7
  }
7
8
  const [firstStatement] = node.consequent;
8
- // eslint-disable-next-line unicorn/prefer-at -- Node >=16.0 support baseline
9
- const lastStatement = node.consequent[node.consequent.length - 1];
9
+ const lastStatement = arrayLast(node.consequent);
10
10
  if (firstStatement === undefined || lastStatement === undefined) {
11
11
  return true;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"switch-case-spacing.js","sourceRoot":"","sources":["../../src/rules/switch-case-spacing.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EACH,yBAAyB,EACzB,2BAA2B,GAC9B,MAAM,kCAAkC,CAAC;AAM1C,MAAM,eAAe,GAAG,CAAC,IAA6B,EAAW,EAAE;IAC/D,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;IACzC,6EAA6E;IAC7E,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClE,IAAI,cAAc,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,qBAAqB,GACvB,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;IACxD,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,KAAK,gBAAgB,CAAC;IACjE,MAAM,aAAa,GACf,aAAa,CAAC,IAAI,KAAK,gBAAgB,IAAI,eAAe,CAAC;IAE/D,OAAO,CAAC,qBAAqB,IAAI,eAAe,CAAC,IAAI,aAAa,CAAC;AACvE,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,IAAI,GAAwD,WAAW,CAG3E;IACE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAClB,UAAU,EAAE,CAAC,IAA6B,EAAQ,EAAE;YAChD,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,OAAO;YACX,CAAC;YAED,OAAO,CAAC,MAAM,CAAC;gBACX,SAAS,EAAE,WAAW;gBACtB,IAAI;aACP,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;IACF,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE;QACF,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE;YACF,UAAU,EAAE,IAAI;YAChB,WAAW,EACP,iEAAiE;YACrE,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,oFAAoF;SAC5F;QACD,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE;YACN,SAAS,EACL,0DAA0D;SACjE;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;KACrB;IACD,IAAI,EAAE,qBAAqB;CAC9B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,cAAc,GAAgB,2BAA2B,CAAC,IAAI,EAAE;IAClE,OAAO,EAAE,yDAAyD;IAClE,UAAU,EAAE;QACR,yBAAyB,CAAC;YACtB,MAAM,EAAE;gBACJ,IAAI,EAAE,YAAY;gBAClB,GAAG,EAAE,uBAAuB;aAC/B;YACD,IAAI,EAAE;gBACF,IAAI,EAAE,sBAAsB;gBAC5B,GAAG,EAAE,iDAAiD;aACzD;SACJ,CAAC;KACL;IACD,MAAM,EAAE,qBAAqB;CAChC,CAAC,CAAC;AAEH,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"switch-case-spacing.js","sourceRoot":"","sources":["../../src/rules/switch-case-spacing.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EACH,yBAAyB,EACzB,2BAA2B,GAC9B,MAAM,kCAAkC,CAAC;AAM1C,MAAM,eAAe,GAAG,CAAC,IAA6B,EAAW,EAAE;IAC/D,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;IACzC,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,cAAc,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,qBAAqB,GACvB,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;IACxD,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,KAAK,gBAAgB,CAAC;IACjE,MAAM,aAAa,GACf,aAAa,CAAC,IAAI,KAAK,gBAAgB,IAAI,eAAe,CAAC;IAE/D,OAAO,CAAC,qBAAqB,IAAI,eAAe,CAAC,IAAI,aAAa,CAAC;AACvE,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,IAAI,GAAwD,WAAW,CAG3E;IACE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAClB,UAAU,EAAE,CAAC,IAA6B,EAAQ,EAAE;YAChD,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,OAAO;YACX,CAAC;YAED,OAAO,CAAC,MAAM,CAAC;gBACX,SAAS,EAAE,WAAW;gBACtB,IAAI;aACP,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;IACF,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE;QACF,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE;YACF,UAAU,EAAE,IAAI;YAChB,WAAW,EACP,iEAAiE;YACrE,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,oFAAoF;SAC5F;QACD,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE;YACN,SAAS,EACL,0DAA0D;SACjE;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;KACrB;IACD,IAAI,EAAE,qBAAqB;CAC9B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,cAAc,GAAgB,2BAA2B,CAAC,IAAI,EAAE;IAClE,OAAO,EAAE,yDAAyD;IAClE,UAAU,EAAE;QACR,yBAAyB,CAAC;YACtB,MAAM,EAAE;gBACJ,IAAI,EAAE,YAAY;gBAClB,GAAG,EAAE,uBAAuB;aAC/B;YACD,IAAI,EAAE;gBACF,IAAI,EAAE,sBAAsB;gBAC5B,GAAG,EAAE,iDAAiD;aACzD;SACJ,CAAC;KACL;IACD,MAAM,EAAE,qBAAqB;CAChC,CAAC,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"template-literal-format.d.ts","sourceRoot":"","sources":["../../src/rules/template-literal-format.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,eAAe,CAAC;AAElC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAkD3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAyC5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"template-literal-format.d.ts","sourceRoot":"","sources":["../../src/rules/template-literal-format.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,eAAe,CAAC;AAElC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAqD3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAyC5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
@@ -1,29 +1,27 @@
1
+ import { arrayFirst, arrayJoin, arrayLast, isEmpty, stringSplit, } from "ts-extras";
1
2
  import { ruleCreator } from "../_internal/rule-creator.js";
2
3
  const isMultilineTemplate = (node) => node.loc.start.line !== node.loc.end.line;
3
4
  const hasExpectedBoundaryNewlines = (node) => {
4
- const first = node.quasis[0]?.value.raw ?? "";
5
- // eslint-disable-next-line unicorn/prefer-at -- Node >=16.0 support baseline
6
- const last = node.quasis[node.quasis.length - 1]?.value.raw ?? "";
5
+ const first = arrayFirst(node.quasis)?.value.raw ?? "";
6
+ const last = arrayLast(node.quasis)?.value.raw ?? "";
7
7
  return first.startsWith("\n") && last.endsWith("\n");
8
8
  };
9
9
  const normalizeTemplate = (sourceText) => {
10
- const lines = sourceText.split(/\r?\n/u);
10
+ const lines = stringSplit(sourceText.replaceAll(/\r\n?/gu, "\n"), "\n");
11
11
  const contentLines = lines.slice(1, -1);
12
12
  const indents = contentLines
13
13
  .filter((line) => line.trim().length > 0)
14
14
  .map((line) => /^\s*/u.exec(line)?.[0].length ?? 0);
15
- const minIndent = indents.length === 0 ? 0 : Math.min(...indents);
16
- const normalizedContent = contentLines
15
+ const minIndent = isEmpty(indents) ? 0 : Math.min(...indents);
16
+ const normalizedContent = arrayJoin(contentLines
17
17
  .map((line) => line.length >= minIndent ? line.slice(minIndent) : line)
18
- .map((line) => ` ${line}`)
19
- .join("\n");
20
- // eslint-disable-next-line unicorn/prefer-at -- Node >=16.0 support baseline
21
- const lastLine = lines[lines.length - 1] ?? "";
22
- return [
23
- lines[0],
18
+ .map((line) => ` ${line}`), "\n");
19
+ const lastLine = arrayLast(lines) ?? "";
20
+ return arrayJoin([
21
+ arrayFirst(lines),
24
22
  normalizedContent,
25
23
  lastLine,
26
- ].join("\n");
24
+ ], "\n");
27
25
  };
28
26
  const buildFix = (sourceCode, node) => (fixer) => {
29
27
  const text = sourceCode.getText(node);
@@ -1 +1 @@
1
- {"version":3,"file":"template-literal-format.js","sourceRoot":"","sources":["../../src/rules/template-literal-format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-literal-format.js","sourceRoot":"","sources":["../../src/rules/template-literal-format.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,UAAU,EACV,SAAS,EACT,SAAS,EACT,OAAO,EACP,WAAW,GACd,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,MAAM,mBAAmB,GAAG,CAAC,IAAkC,EAAW,EAAE,CACxE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AAE9C,MAAM,2BAA2B,GAAG,CAChC,IAAkC,EAC3B,EAAE;IACT,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;IACvD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;IAErD,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,UAAkB,EAAU,EAAE;IACrD,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,YAAY;SACvB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;SACxC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAE9D,MAAM,iBAAiB,GAAG,SAAS,CAC/B,YAAY;SACP,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACV,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAC1D;SACA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAC/B,IAAI,CACP,CAAC;IAEF,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAExC,OAAO,SAAS,CACZ;QACI,UAAU,CAAC,KAAK,CAAC;QACjB,iBAAiB;QACjB,QAAQ;KACX,EACD,IAAI,CACP,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,QAAQ,GACV,CACI,UAAyC,EACzC,IAAkC,EACR,EAAE,CAChC,CAAC,KAAK,EAAoB,EAAE;IACxB,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEN;;GAEG;AACH,MAAM,IAAI,GAAwD,WAAW,CAG3E;IACE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAClB,eAAe,EAAE,CAAC,IAAkC,EAAQ,EAAE;YAC1D,IACI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC1B,2BAA2B,CAAC,IAAI,CAAC,EACnC,CAAC;gBACC,OAAO;YACX,CAAC;YAED,OAAO,CAAC,MAAM,CAAC;gBACX,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;gBACvC,SAAS,EAAE,eAAe;gBAC1B,IAAI;aACP,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;IACF,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE;QACF,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE;YACF,UAAU,EAAE,KAAK;YACjB,WAAW,EACP,sEAAsE;YAC1E,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,wFAAwF;SAChG;QACD,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE;YACN,aAAa,EACT,oEAAoE;SAC3E;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,QAAQ;KACjB;IACD,IAAI,EAAE,yBAAyB;CAClC,CAAC,CAAC;AAEH,eAAe,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"throw-error.d.ts","sourceRoot":"","sources":["../../src/rules/throw-error.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,GAAG,oBAAoB,CAAC;AAErD,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AA6C3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CA4I5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"throw-error.d.ts","sourceRoot":"","sources":["../../src/rules/throw-error.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,GAAG,oBAAoB,CAAC;AAErD,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AA6C3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAgJ5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { getConstrainedTypeAtLocation, isBuiltinSymbolLike, isErrorLike, isTypeAnyType, isTypeUnknownType, } from "@typescript-eslint/type-utils";
2
2
  import { ESLintUtils, } from "@typescript-eslint/utils";
3
+ import { arrayFirst, isDefined } from "ts-extras";
3
4
  import * as tsutils from "tsutils";
4
5
  import { ruleCreator } from "../_internal/rule-creator.js";
5
6
  const isAllowedThrowableVariant = (type, program) => isTypeAnyType(type) ||
@@ -49,7 +50,7 @@ const rule = ruleCreator({
49
50
  });
50
51
  };
51
52
  const checkRejectionCall = (callExpression) => {
52
- const rejectionValue = callExpression.arguments[0];
53
+ const rejectionValue = arrayFirst(callExpression.arguments);
53
54
  if (rejectionValue === undefined) {
54
55
  return;
55
56
  }
@@ -74,10 +75,11 @@ const rule = ruleCreator({
74
75
  if (rejectParameter?.type !== "Identifier") {
75
76
  return;
76
77
  }
77
- const rejectVariable = context.sourceCode
78
+ const rejectVariable = arrayFirst(context.sourceCode
78
79
  .getDeclaredVariables(callback)
79
- .find((declaredVariable) => declaredVariable.name === rejectParameter.name);
80
- if (rejectVariable === undefined) {
80
+ .filter((declaredVariable) => declaredVariable.name ===
81
+ rejectParameter.name));
82
+ if (!isDefined(rejectVariable)) {
81
83
  return;
82
84
  }
83
85
  for (const reference of rejectVariable.references) {
@@ -1 +1 @@
1
- {"version":3,"file":"throw-error.js","sourceRoot":"","sources":["../../src/rules/throw-error.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"throw-error.js","sourceRoot":"","sources":["../../src/rules/throw-error.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-array-callback-return-type.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-array-callback-return-type.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,CAAC;AAE9B,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAwC3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAoE5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"typescript-array-callback-return-type.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-array-callback-return-type.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,CAAC;AAE9B,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAwC3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAoE5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { containsAllTypesByName, getConstrainedTypeAtLocation, isTypeArrayTypeOrUnionOfArrayTypes, } from "@typescript-eslint/type-utils";
2
2
  import { ESLintUtils } from "@typescript-eslint/utils";
3
+ import { arrayFirst, setHas } from "ts-extras";
3
4
  import { ruleCreator } from "../_internal/rule-creator.js";
4
5
  const arrayCallbackMethodNames = new Set([
5
6
  "every",
@@ -21,7 +22,7 @@ const isArrayLikeType = (typeChecker, type) => {
21
22
  isTypeArrayTypeOrUnionOfArrayTypes(type, typeChecker) ||
22
23
  containsAllTypesByName(type, false, readonlyArrayTypeNames, true));
23
24
  };
24
- const isFirstCallbackArgument = (callExpression, callback) => callExpression.arguments[0] === callback;
25
+ const isFirstCallbackArgument = (callExpression, callback) => arrayFirst(callExpression.arguments) === callback;
25
26
  /**
26
27
  * Require explicit return types for array callback functions.
27
28
  */
@@ -42,7 +43,7 @@ const rule = ruleCreator({
42
43
  if (callee.type !== "MemberExpression" ||
43
44
  callee.object.type === "Super" ||
44
45
  callee.property.type !== "Identifier" ||
45
- !arrayCallbackMethodNames.has(callee.property.name)) {
46
+ !setHas(arrayCallbackMethodNames, callee.property.name)) {
46
47
  return;
47
48
  }
48
49
  const objectType = getConstrainedTypeAtLocation(parserServices, callee.object);
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-array-callback-return-type.js","sourceRoot":"","sources":["../../src/rules/typescript-array-callback-return-type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typescript-array-callback-return-type.js","sourceRoot":"","sources":["../../src/rules/typescript-array-callback-return-type.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-class-methods-use-this.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-class-methods-use-this.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,KAAK,UAAU,GAAG,WAAW,CAAC;AAE9B,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAqD3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CA0C5D,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,cAAc,EAAE,OAAO,IAgB3B,CAAC;AAEH,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"typescript-class-methods-use-this.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-class-methods-use-this.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,KAAK,UAAU,GAAG,WAAW,CAAC;AAE9B,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAqD3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CA0C5D,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,cAAc,EAAE,OAAO,IAgB3B,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -1,6 +1,7 @@
1
+ import { arrayAt, objectEntries, objectHasOwn } from "ts-extras";
1
2
  import { ruleCreator } from "../_internal/rule-creator.js";
2
3
  import { createReplacementRuleInfo, withDeprecatedRuleLifecycle, } from "../_internal/rule-deprecation.js";
3
- const isNode = (value) => typeof value === "object" && value !== null && "type" in value;
4
+ const isNode = (value) => typeof value === "object" && value !== null && objectHasOwn(value, "type");
4
5
  const containsThisExpression = (root) => {
5
6
  let stack = [root];
6
7
  const enqueue = (value) => {
@@ -9,7 +10,7 @@ const containsThisExpression = (root) => {
9
10
  }
10
11
  };
11
12
  while (stack.length > 0) {
12
- const node = stack.at(-1);
13
+ const node = arrayAt(stack, -1);
13
14
  stack = stack.slice(0, -1);
14
15
  if (node === undefined) {
15
16
  continue;
@@ -17,7 +18,7 @@ const containsThisExpression = (root) => {
17
18
  if (node.type === "ThisExpression") {
18
19
  return true;
19
20
  }
20
- for (const [key, child] of Object.entries(node)) {
21
+ for (const [key, child] of objectEntries(node)) {
21
22
  if (key === "loc" || key === "parent" || key === "range") {
22
23
  continue;
23
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-class-methods-use-this.js","sourceRoot":"","sources":["../../src/rules/typescript-class-methods-use-this.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typescript-class-methods-use-this.js","sourceRoot":"","sources":["../../src/rules/typescript-class-methods-use-this.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-no-boolean-literal-type.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-boolean-literal-type.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,CAAC;AAE9B,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAO3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAqC5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"typescript-no-boolean-literal-type.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-boolean-literal-type.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,CAAC;AAE9B,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAU3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAqC5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
@@ -1,8 +1,9 @@
1
+ import { arrayJoin } from "ts-extras";
1
2
  import { ruleCreator } from "../_internal/rule-creator.js";
2
- const selector = [
3
+ const selector = arrayJoin([
3
4
  "TSPropertySignature[optional=true] > TSTypeAnnotation > TSLiteralType > Literal[value=true]",
4
5
  "TSPropertySignature[optional=true] > TSTypeAnnotation > TSLiteralType > Literal[value=false]",
5
- ].join(", ");
6
+ ], ", ");
6
7
  /**
7
8
  * Disallow optional boolean literal property types.
8
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-no-boolean-literal-type.js","sourceRoot":"","sources":["../../src/rules/typescript-no-boolean-literal-type.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,MAAM,QAAQ,GAAG;IACb,6FAA6F;IAC7F,8FAA8F;CACjG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;GAEG;AACH,MAAM,IAAI,GAAwD,WAAW,CAG3E;IACE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAClB,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAuB,EAAQ,EAAE;YAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO;YACX,CAAC;YAED,OAAO,CAAC,MAAM,CAAC;gBACX,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC;gBAClD,SAAS,EAAE,WAAW;gBACtB,IAAI;aACP,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;IACF,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE;QACF,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE;YACF,UAAU,EAAE,KAAK;YACjB,WAAW,EACP,iEAAiE;YACrE,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,mGAAmG;SAC3G;QACD,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE;YACN,SAAS,EAAE,6BAA6B;SAC3C;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;KACrB;IACD,IAAI,EAAE,oCAAoC;CAC7C,CAAC,CAAC;AAEH,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"typescript-no-boolean-literal-type.js","sourceRoot":"","sources":["../../src/rules/typescript-no-boolean-literal-type.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,MAAM,QAAQ,GAAG,SAAS,CACtB;IACI,6FAA6F;IAC7F,8FAA8F;CACjG,EACD,IAAI,CACP,CAAC;AAEF;;GAEG;AACH,MAAM,IAAI,GAAwD,WAAW,CAG3E;IACE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAClB,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAuB,EAAQ,EAAE;YAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO;YACX,CAAC;YAED,OAAO,CAAC,MAAM,CAAC;gBACX,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC;gBAClD,SAAS,EAAE,WAAW;gBACtB,IAAI;aACP,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;IACF,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE;QACF,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE;YACF,UAAU,EAAE,KAAK;YACjB,WAAW,EACP,iEAAiE;YACrE,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,mGAAmG;SAC3G;QACD,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE;YACN,SAAS,EAAE,6BAA6B;SAC3C;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;KACrB;IACD,IAAI,EAAE,oCAAoC;CAC7C,CAAC,CAAC;AAEH,eAAe,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-no-inferrable-types.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-inferrable-types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,KAAK,UAAU,GAAG,WAAW,CAAC;AAE9B,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAO3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAgC5D,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,cAAc,EAAE,OAAO,IAe3B,CAAC;AAEH,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"typescript-no-inferrable-types.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-inferrable-types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,KAAK,UAAU,GAAG,WAAW,CAAC;AAE9B,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAU3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAgC5D,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,cAAc,EAAE,OAAO,IAe3B,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -1,9 +1,10 @@
1
+ import { arrayJoin } from "ts-extras";
1
2
  import { ruleCreator } from "../_internal/rule-creator.js";
2
3
  import { createReplacementRuleInfo, withDeprecatedRuleLifecycle, } from "../_internal/rule-deprecation.js";
3
- const selector = [
4
+ const selector = arrayJoin([
4
5
  "PropertyDefinition[value.type='Literal'] > TSTypeAnnotation",
5
6
  "VariableDeclarator[init.type='Literal'] > Identifier.id > TSTypeAnnotation",
6
- ].join(", ");
7
+ ], ", ");
7
8
  /**
8
9
  * Disallow explicit primitive type annotations when they are inferrable.
9
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-no-inferrable-types.js","sourceRoot":"","sources":["../../src/rules/typescript-no-inferrable-types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EACH,yBAAyB,EACzB,2BAA2B,GAC9B,MAAM,kCAAkC,CAAC;AAM1C,MAAM,QAAQ,GAAG;IACb,6DAA6D;IAC7D,4EAA4E;CAC/E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;GAEG;AACH,MAAM,IAAI,GAAwD,WAAW,CAG3E;IACE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAClB,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAuB,EAAQ,EAAE;YAC1C,OAAO,CAAC,MAAM,CAAC;gBACX,SAAS,EAAE,WAAW;gBACtB,IAAI;aACP,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;IACF,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE;QACF,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE;YACF,UAAU,EAAE,IAAI;YAChB,WAAW,EACP,sFAAsF;YAC1F,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,+FAA+F;SACvG;QACD,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE;YACN,SAAS,EACL,kEAAkE;SACzE;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;KACrB;IACD,IAAI,EAAE,gCAAgC;CACzC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,cAAc,GAAgB,2BAA2B,CAAC,IAAI,EAAE;IAClE,OAAO,EAAE,gEAAgE;IACzE,UAAU,EAAE;QACR,yBAAyB,CAAC;YACtB,MAAM,EAAE;gBACJ,IAAI,EAAE,oBAAoB;gBAC1B,GAAG,EAAE,+BAA+B;aACvC;YACD,IAAI,EAAE;gBACF,IAAI,EAAE,qBAAqB;gBAC3B,GAAG,EAAE,wDAAwD;aAChE;SACJ,CAAC;KACL;IACD,MAAM,EAAE,gCAAgC;CAC3C,CAAC,CAAC;AAEH,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"typescript-no-inferrable-types.js","sourceRoot":"","sources":["../../src/rules/typescript-no-inferrable-types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EACH,yBAAyB,EACzB,2BAA2B,GAC9B,MAAM,kCAAkC,CAAC;AAM1C,MAAM,QAAQ,GAAG,SAAS,CACtB;IACI,6DAA6D;IAC7D,4EAA4E;CAC/E,EACD,IAAI,CACP,CAAC;AAEF;;GAEG;AACH,MAAM,IAAI,GAAwD,WAAW,CAG3E;IACE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAClB,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAuB,EAAQ,EAAE;YAC1C,OAAO,CAAC,MAAM,CAAC;gBACX,SAAS,EAAE,WAAW;gBACtB,IAAI;aACP,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;IACF,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE;QACF,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE;YACF,UAAU,EAAE,IAAI;YAChB,WAAW,EACP,sFAAsF;YAC1F,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,+FAA+F;SACvG;QACD,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE;YACN,SAAS,EACL,kEAAkE;SACzE;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;KACrB;IACD,IAAI,EAAE,gCAAgC;CACzC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,cAAc,GAAgB,2BAA2B,CAAC,IAAI,EAAE;IAClE,OAAO,EAAE,gEAAgE;IACzE,UAAU,EAAE;QACR,yBAAyB,CAAC;YACtB,MAAM,EAAE;gBACJ,IAAI,EAAE,oBAAoB;gBAC1B,GAAG,EAAE,+BAA+B;aACvC;YACD,IAAI,EAAE;gBACF,IAAI,EAAE,qBAAqB;gBAC3B,GAAG,EAAE,wDAAwD;aAChE;SACJ,CAAC;KACL;IACD,MAAM,EAAE,gCAAgC;CAC3C,CAAC,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-no-redundant-undefined-const.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-const.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,GAAG,iCAAiC,CAAC;AAElE,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAkG3B;;;GAGG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAuF5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"typescript-no-redundant-undefined-const.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-const.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,GAAG,iCAAiC,CAAC;AAElE,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAkG3B;;;GAGG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAuF5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { arrayJoin, isDefined, isEmpty } from "ts-extras";
1
2
  import { ruleCreator } from "../_internal/rule-creator.js";
2
3
  const buildFixedTypeText = (sourceCode, unionType) => {
3
4
  let nonUndefinedTypeTexts = [];
@@ -10,11 +11,11 @@ const buildFixedTypeText = (sourceCode, unionType) => {
10
11
  sourceCode.getText(typeNode),
11
12
  ];
12
13
  }
13
- if (nonUndefinedTypeTexts.length === 0 ||
14
+ if (isEmpty(nonUndefinedTypeTexts) ||
14
15
  nonUndefinedTypeTexts.length === unionType.types.length) {
15
16
  return undefined;
16
17
  }
17
- return nonUndefinedTypeTexts.join(" | ");
18
+ return arrayJoin(nonUndefinedTypeTexts, " | ");
18
19
  };
19
20
  const getTypeAnnotationFromDeclarator = (declarator) => {
20
21
  if (declarator.id.type === "Identifier" ||
@@ -87,7 +88,7 @@ const rule = ruleCreator({
87
88
  return;
88
89
  }
89
90
  const fixedTypeText = buildFixedTypeText(sourceCode, typeAnnotation.typeAnnotation);
90
- if (fixedTypeText === undefined) {
91
+ if (!isDefined(fixedTypeText)) {
91
92
  return;
92
93
  }
93
94
  const fix = (fixer) => fixer.replaceText(typeAnnotation.typeAnnotation, fixedTypeText);
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-no-redundant-undefined-const.js","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-const.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typescript-no-redundant-undefined-const.js","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-const.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-no-redundant-undefined-default-parameter.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-default-parameter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,GAAG,iCAAiC,CAAC;AAElE,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAkJ3B;;;GAGG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAiG5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"typescript-no-redundant-undefined-default-parameter.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-default-parameter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,GAAG,iCAAiC,CAAC;AAElE,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAkJ3B;;;GAGG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAiG5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { arrayJoin, isDefined, isEmpty } from "ts-extras";
1
2
  import { ruleCreator } from "../_internal/rule-creator.js";
2
3
  const functionLikeNodeSelector = ":matches(ArrowFunctionExpression, FunctionDeclaration, FunctionExpression, TSCallSignatureDeclaration, TSConstructSignatureDeclaration, TSConstructorType, TSDeclareFunction, TSEmptyBodyFunctionExpression, TSFunctionType, TSMethodSignature)";
3
4
  const getParametersFromFunctionLikeNode = (node) => {
@@ -86,11 +87,11 @@ const buildFixedTypeText = (sourceCode, unionType) => {
86
87
  sourceCode.getText(typeNode),
87
88
  ];
88
89
  }
89
- if (nonUndefinedTypeTexts.length === 0 ||
90
+ if (isEmpty(nonUndefinedTypeTexts) ||
90
91
  nonUndefinedTypeTexts.length === unionType.types.length) {
91
92
  return undefined;
92
93
  }
93
- return nonUndefinedTypeTexts.join(" | ");
94
+ return arrayJoin(nonUndefinedTypeTexts, " | ");
94
95
  };
95
96
  /**
96
97
  * Disallow redundant `undefined` unions on default parameters with
@@ -121,7 +122,7 @@ const rule = ruleCreator({
121
122
  continue;
122
123
  }
123
124
  const fixedTypeText = buildFixedTypeText(sourceCode, typeAnnotation.typeAnnotation);
124
- if (fixedTypeText === undefined) {
125
+ if (!isDefined(fixedTypeText)) {
125
126
  continue;
126
127
  }
127
128
  const fix = (fixer) => fixer.replaceText(typeAnnotation.typeAnnotation, fixedTypeText);
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-no-redundant-undefined-default-parameter.js","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-default-parameter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typescript-no-redundant-undefined-default-parameter.js","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-default-parameter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-no-redundant-undefined-let.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-let.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,GAAG,iCAAiC,CAAC;AAElE,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAmG3B;;;GAGG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CA8F5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"typescript-no-redundant-undefined-let.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-let.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,GAAG,iCAAiC,CAAC;AAElE,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAmG3B;;;GAGG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CA8F5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { arrayJoin, isDefined, isEmpty } from "ts-extras";
1
2
  import { ruleCreator } from "../_internal/rule-creator.js";
2
3
  const buildFixedTypeText = (sourceCode, unionType) => {
3
4
  let nonUndefinedTypeTexts = [];
@@ -10,11 +11,11 @@ const buildFixedTypeText = (sourceCode, unionType) => {
10
11
  sourceCode.getText(typeNode),
11
12
  ];
12
13
  }
13
- if (nonUndefinedTypeTexts.length === 0 ||
14
+ if (isEmpty(nonUndefinedTypeTexts) ||
14
15
  nonUndefinedTypeTexts.length === unionType.types.length) {
15
16
  return undefined;
16
17
  }
17
- return nonUndefinedTypeTexts.join(" | ");
18
+ return arrayJoin(nonUndefinedTypeTexts, " | ");
18
19
  };
19
20
  const unwrapExpression = (expression) => {
20
21
  if (expression.type === "TSAsExpression" ||
@@ -91,7 +92,7 @@ const rule = ruleCreator({
91
92
  return;
92
93
  }
93
94
  const fixedTypeText = buildFixedTypeText(sourceCode, typeAnnotation.typeAnnotation);
94
- if (fixedTypeText === undefined) {
95
+ if (!isDefined(fixedTypeText)) {
95
96
  return;
96
97
  }
97
98
  const fix = (fixer) => fixer.replaceText(typeAnnotation.typeAnnotation, fixedTypeText);
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-no-redundant-undefined-let.js","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-let.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typescript-no-redundant-undefined-let.js","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-let.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,MAAM,kBAAkB,GAAG,CACvB,UAAyC,EACzC,SAAmC,EACjB,EAAE;IACpB,IAAI,qBAAqB,GAAsB,EAAE,CAAC;IAElD,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,QAAQ,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YACzC,SAAS;QACb,CAAC;QAED,qBAAqB,GAAG;YACpB,GAAG,qBAAqB;YACxB,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC;SAC/B,CAAC;IACN,CAAC;IAED,IACI,OAAO,CAAC,qBAAqB,CAAC;QAC9B,qBAAqB,CAAC,MAAM,KAAK,SAAS,CAAC,KAAK,CAAC,MAAM,EACzD,CAAC;QACC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,SAAS,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACrB,UAAmC,EACZ,EAAE;IACzB,IACI,UAAU,CAAC,IAAI,KAAK,gBAAgB;QACpC,UAAU,CAAC,IAAI,KAAK,uBAAuB;QAC3C,UAAU,CAAC,IAAI,KAAK,qBAAqB;QACzC,UAAU,CAAC,IAAI,KAAK,iBAAiB,EACvC,CAAC;QACC,OAAO,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,6BAA6B,GAAG,CAClC,UAAmC,EAC5B,EAAE;IACT,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAEzD,IAAI,mBAAmB,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,mBAAmB,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,mBAAmB,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,mBAAmB,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,mBAAmB,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,mBAAmB,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,mBAAmB,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,mBAAmB,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CACtB,UAAyC,EACzC,UAA2C,EACpC,EAAE;IACT,MAAM,CAAC,gBAAgB,CAAC,GAAG,UAAU,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAEvE,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CACpC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,CAChE,CAAC;AACN,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,IAAI,GAAwD,WAAW,CAG3E;IACE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;QAChB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAEtC,OAAO;YACH,4EAA4E,EACxE,CAAC,IAAqC,EAAQ,EAAE;gBAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;gBAE9B,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;oBACvB,OAAO;gBACX,CAAC;gBAED,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC9C,OAAO;gBACX,CAAC;gBAED,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC;oBACvC,OAAO;gBACX,CAAC;gBAED,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBAEnB,IAAI,EAAE,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC3B,OAAO;gBACX,CAAC;gBAED,MAAM,cAAc,GAAG,EAAE,CAAC,cAAc,CAAC;gBAEzC,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;oBAC/B,OAAO;gBACX,CAAC;gBAED,IAAI,cAAc,CAAC,cAAc,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACvD,OAAO;gBACX,CAAC;gBAED,MAAM,aAAa,GAAG,kBAAkB,CACpC,UAAU,EACV,cAAc,CAAC,cAAc,CAChC,CAAC;gBAEF,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC5B,OAAO;gBACX,CAAC;gBAED,MAAM,GAAG,GAAG,CACR,KAAmC,EACnB,EAAE,CAClB,KAAK,CAAC,WAAW,CACb,cAAc,CAAC,cAAc,EAC7B,aAAa,CAChB,CAAC;gBAEN,OAAO,CAAC,MAAM,CAAC;oBACX,GAAG;oBACH,SAAS,EAAE,WAAW;oBACtB,IAAI,EAAE,cAAc,CAAC,cAAc;oBACnC,OAAO,EAAE;wBACL;4BACI,GAAG;4BACH,SAAS,EAAE,iCAAiC;yBAC/C;qBACJ;iBACJ,CAAC,CAAC;YACP,CAAC;SACR,CAAC;IACN,CAAC;IACD,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE;QACF,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE;YACF,UAAU,EAAE,KAAK;YACjB,WAAW,EACP,4IAA4I;YAChJ,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,sGAAsG;SAC9G;QACD,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,IAAI;QACpB,QAAQ,EAAE;YACN,SAAS,EACL,0IAA0I;YAC9I,+BAA+B,EAC3B,sEAAsE;SAC7E;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;KACrB;IACD,IAAI,EAAE,uCAAuC;CAChD,CAAC,CAAC;AAEH,eAAe,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-no-redundant-undefined-optional.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-optional.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,GAAG,iCAAiC,CAAC;AAElE,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAmC3B;;;GAGG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CA4D5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"typescript-no-redundant-undefined-optional.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-optional.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,GAAG,iCAAiC,CAAC;AAElE,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAsC3B;;;GAGG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CA4D5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
@@ -1,9 +1,10 @@
1
+ import { arrayJoin, isDefined, isEmpty } from "ts-extras";
1
2
  import { ruleCreator } from "../_internal/rule-creator.js";
2
- const selector = [
3
+ const selector = arrayJoin([
3
4
  "Identifier[optional=true] > TSTypeAnnotation > TSUnionType",
4
5
  "TSNamedTupleMember[optional=true] > TSUnionType",
5
6
  "TSOptionalType > TSUnionType",
6
- ].join(", ");
7
+ ], ", ");
7
8
  const buildFixedTypeText = (sourceCode, unionType) => {
8
9
  let nonUndefinedTypeTexts = [];
9
10
  for (const typeNode of unionType.types) {
@@ -15,11 +16,11 @@ const buildFixedTypeText = (sourceCode, unionType) => {
15
16
  sourceCode.getText(typeNode),
16
17
  ];
17
18
  }
18
- if (nonUndefinedTypeTexts.length === 0 ||
19
+ if (isEmpty(nonUndefinedTypeTexts) ||
19
20
  nonUndefinedTypeTexts.length === unionType.types.length) {
20
21
  return undefined;
21
22
  }
22
- return nonUndefinedTypeTexts.join(" | ");
23
+ return arrayJoin(nonUndefinedTypeTexts, " | ");
23
24
  };
24
25
  /**
25
26
  * Disallow redundant `undefined` unions on optional parameters and tuple
@@ -34,7 +35,7 @@ const rule = ruleCreator({
34
35
  return;
35
36
  }
36
37
  const fixedTypeText = buildFixedTypeText(sourceCode, node);
37
- if (fixedTypeText === undefined) {
38
+ if (!isDefined(fixedTypeText)) {
38
39
  return;
39
40
  }
40
41
  const fix = (fixer) => fixer.replaceText(node, fixedTypeText);