@ttsc/lint 0.13.1 → 0.14.0-dev.20260528.1

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 (464) hide show
  1. package/README.md +948 -69
  2. package/lib/defaultFormat.d.ts +9 -6
  3. package/lib/defaultFormat.js +9 -6
  4. package/lib/defaultFormat.js.map +1 -1
  5. package/lib/index.d.ts +46 -0
  6. package/lib/index.js +35 -10
  7. package/lib/index.js.map +1 -1
  8. package/lib/structures/ITtscLintConfig.d.ts +12 -6
  9. package/lib/structures/{ITtscLintFormatConfig.d.ts → ITtscLintFormat.d.ts} +2 -2
  10. package/lib/structures/{TtscLintRuleMap.js → ITtscLintFormat.js} +1 -1
  11. package/lib/structures/ITtscLintFormat.js.map +1 -0
  12. package/lib/structures/TtscLintRuleSetting.d.ts +49 -0
  13. package/lib/structures/{TtscLintRuleOptions.js → TtscLintRuleSetting.js} +1 -1
  14. package/lib/structures/TtscLintRuleSetting.js.map +1 -0
  15. package/lib/structures/index.d.ts +3 -4
  16. package/lib/structures/index.js +3 -4
  17. package/lib/structures/index.js.map +1 -1
  18. package/lib/structures/rules/ITtscLintBoundariesRuleOptions.d.ts +104 -0
  19. package/lib/structures/rules/ITtscLintBoundariesRuleOptions.js +14 -0
  20. package/lib/structures/rules/ITtscLintBoundariesRuleOptions.js.map +1 -0
  21. package/lib/structures/rules/ITtscLintBoundariesRules.d.ts +79 -0
  22. package/lib/structures/rules/ITtscLintBoundariesRules.js +3 -0
  23. package/lib/structures/rules/ITtscLintBoundariesRules.js.map +1 -0
  24. package/lib/structures/rules/ITtscLintContributorRules.d.ts +17 -0
  25. package/lib/structures/rules/ITtscLintContributorRules.js +3 -0
  26. package/lib/structures/rules/ITtscLintContributorRules.js.map +1 -0
  27. package/lib/structures/rules/ITtscLintCoreRules.d.ts +1257 -0
  28. package/lib/structures/{ITtscLintFormatConfig.js → rules/ITtscLintCoreRules.js} +1 -1
  29. package/lib/structures/rules/ITtscLintCoreRules.js.map +1 -0
  30. package/lib/structures/rules/ITtscLintCypressRuleOptions.d.ts +17 -0
  31. package/lib/structures/rules/ITtscLintCypressRuleOptions.js +10 -0
  32. package/lib/structures/rules/ITtscLintCypressRuleOptions.js.map +1 -0
  33. package/lib/structures/rules/ITtscLintCypressRules.d.ts +129 -0
  34. package/lib/structures/rules/ITtscLintCypressRules.js +3 -0
  35. package/lib/structures/rules/ITtscLintCypressRules.js.map +1 -0
  36. package/lib/structures/rules/ITtscLintFunctionalRuleOptions.d.ts +157 -0
  37. package/lib/structures/rules/ITtscLintFunctionalRuleOptions.js +13 -0
  38. package/lib/structures/rules/ITtscLintFunctionalRuleOptions.js.map +1 -0
  39. package/lib/structures/rules/ITtscLintFunctionalRules.d.ts +167 -0
  40. package/lib/structures/rules/ITtscLintFunctionalRules.js +3 -0
  41. package/lib/structures/rules/ITtscLintFunctionalRules.js.map +1 -0
  42. package/lib/structures/rules/ITtscLintJestRules.d.ts +201 -0
  43. package/lib/structures/rules/ITtscLintJestRules.js +3 -0
  44. package/lib/structures/rules/ITtscLintJestRules.js.map +1 -0
  45. package/lib/structures/rules/ITtscLintJsdocRules.d.ts +140 -0
  46. package/lib/structures/rules/ITtscLintJsdocRules.js +3 -0
  47. package/lib/structures/rules/ITtscLintJsdocRules.js.map +1 -0
  48. package/lib/structures/rules/ITtscLintJsxA11yRules.d.ts +302 -0
  49. package/lib/structures/rules/ITtscLintJsxA11yRules.js +3 -0
  50. package/lib/structures/rules/ITtscLintJsxA11yRules.js.map +1 -0
  51. package/lib/structures/rules/ITtscLintNextjsRules.d.ts +185 -0
  52. package/lib/structures/rules/ITtscLintNextjsRules.js +3 -0
  53. package/lib/structures/rules/ITtscLintNextjsRules.js.map +1 -0
  54. package/lib/structures/rules/ITtscLintPlaywrightRules.d.ts +330 -0
  55. package/lib/structures/rules/ITtscLintPlaywrightRules.js +3 -0
  56. package/lib/structures/rules/ITtscLintPlaywrightRules.js.map +1 -0
  57. package/lib/structures/rules/ITtscLintPromiseRules.d.ts +188 -0
  58. package/lib/structures/rules/ITtscLintPromiseRules.js +3 -0
  59. package/lib/structures/rules/ITtscLintPromiseRules.js.map +1 -0
  60. package/lib/structures/rules/ITtscLintReactPerfRuleOptions.d.ts +18 -0
  61. package/lib/structures/rules/ITtscLintReactPerfRuleOptions.js +8 -0
  62. package/lib/structures/rules/ITtscLintReactPerfRuleOptions.js.map +1 -0
  63. package/lib/structures/rules/ITtscLintReactPerfRules.d.ts +51 -0
  64. package/lib/structures/rules/ITtscLintReactPerfRules.js +3 -0
  65. package/lib/structures/rules/ITtscLintReactPerfRules.js.map +1 -0
  66. package/lib/structures/rules/ITtscLintReactRuleOptions.d.ts +39 -0
  67. package/lib/structures/rules/ITtscLintReactRuleOptions.js +12 -0
  68. package/lib/structures/rules/ITtscLintReactRuleOptions.js.map +1 -0
  69. package/lib/structures/rules/ITtscLintReactRules.d.ts +289 -0
  70. package/lib/structures/rules/ITtscLintReactRules.js +3 -0
  71. package/lib/structures/rules/ITtscLintReactRules.js.map +1 -0
  72. package/lib/structures/rules/ITtscLintRegexpRules.d.ts +190 -0
  73. package/lib/structures/rules/ITtscLintRegexpRules.js +3 -0
  74. package/lib/structures/rules/ITtscLintRegexpRules.js.map +1 -0
  75. package/lib/structures/rules/ITtscLintRuleOptionsMap.d.ts +66 -0
  76. package/lib/structures/rules/ITtscLintRuleOptionsMap.js +3 -0
  77. package/lib/structures/rules/ITtscLintRuleOptionsMap.js.map +1 -0
  78. package/lib/structures/rules/ITtscLintRules.d.ts +55 -0
  79. package/lib/structures/{TtscLintRule.js → rules/ITtscLintRules.js} +1 -1
  80. package/lib/structures/rules/ITtscLintRules.js.map +1 -0
  81. package/lib/structures/rules/ITtscLintSecurityRules.d.ts +148 -0
  82. package/lib/structures/rules/ITtscLintSecurityRules.js +3 -0
  83. package/lib/structures/rules/ITtscLintSecurityRules.js.map +1 -0
  84. package/lib/structures/rules/ITtscLintSolidRules.d.ts +181 -0
  85. package/lib/structures/rules/ITtscLintSolidRules.js +3 -0
  86. package/lib/structures/rules/ITtscLintSolidRules.js.map +1 -0
  87. package/lib/structures/rules/ITtscLintStorybookRuleOptions.d.ts +21 -0
  88. package/lib/structures/rules/ITtscLintStorybookRuleOptions.js +9 -0
  89. package/lib/structures/rules/ITtscLintStorybookRuleOptions.js.map +1 -0
  90. package/lib/structures/rules/ITtscLintStorybookRules.d.ts +174 -0
  91. package/lib/structures/rules/ITtscLintStorybookRules.js +3 -0
  92. package/lib/structures/rules/ITtscLintStorybookRules.js.map +1 -0
  93. package/lib/structures/rules/ITtscLintTanstackQueryRules.d.ts +94 -0
  94. package/lib/structures/rules/ITtscLintTanstackQueryRules.js +3 -0
  95. package/lib/structures/rules/ITtscLintTanstackQueryRules.js.map +1 -0
  96. package/lib/structures/rules/ITtscLintTestingLibraryRuleOptions.d.ts +22 -0
  97. package/lib/structures/rules/ITtscLintTestingLibraryRuleOptions.js +10 -0
  98. package/lib/structures/rules/ITtscLintTestingLibraryRuleOptions.js.map +1 -0
  99. package/lib/structures/rules/ITtscLintTestingLibraryRules.d.ts +310 -0
  100. package/lib/structures/rules/ITtscLintTestingLibraryRules.js +3 -0
  101. package/lib/structures/rules/ITtscLintTestingLibraryRules.js.map +1 -0
  102. package/lib/structures/rules/ITtscLintTypeScriptRules.d.ts +1132 -0
  103. package/lib/structures/rules/ITtscLintTypeScriptRules.js +3 -0
  104. package/lib/structures/rules/ITtscLintTypeScriptRules.js.map +1 -0
  105. package/lib/structures/rules/ITtscLintUnicornRules.d.ts +997 -0
  106. package/lib/structures/rules/ITtscLintUnicornRules.js +3 -0
  107. package/lib/structures/rules/ITtscLintUnicornRules.js.map +1 -0
  108. package/lib/structures/rules/ITtscLintVitestRules.d.ts +141 -0
  109. package/lib/structures/rules/ITtscLintVitestRules.js +3 -0
  110. package/lib/structures/rules/ITtscLintVitestRules.js.map +1 -0
  111. package/lib/structures/rules/index.d.ts +31 -0
  112. package/lib/structures/rules/index.js +48 -0
  113. package/lib/structures/rules/index.js.map +1 -0
  114. package/linthost/ast_helpers.go +30 -5
  115. package/linthost/config.go +48 -17
  116. package/linthost/config_format.go +9 -9
  117. package/linthost/directives.go +67 -25
  118. package/linthost/dispatch.go +14 -3
  119. package/linthost/engine.go +152 -31
  120. package/linthost/fix.go +2 -2
  121. package/linthost/lsp.go +747 -0
  122. package/linthost/print_dispatch.go +2 -2
  123. package/linthost/print_nodes_function.go +2 -2
  124. package/linthost/print_nodes_object.go +1 -1
  125. package/linthost/rule_names.go +14 -0
  126. package/linthost/rules_arrays.go +2 -2
  127. package/linthost/rules_boundaries.go +532 -0
  128. package/linthost/rules_camelcase.go +133 -0
  129. package/linthost/rules_complexity.go +94 -0
  130. package/linthost/rules_consistent_return.go +130 -0
  131. package/linthost/rules_console.go +1 -1
  132. package/linthost/rules_core_extra.go +739 -0
  133. package/linthost/rules_curly.go +70 -0
  134. package/linthost/rules_cypress.go +608 -0
  135. package/linthost/rules_debugger.go +2 -2
  136. package/linthost/rules_default_case.go +39 -0
  137. package/linthost/rules_default_case_last.go +46 -0
  138. package/linthost/rules_dupes.go +3 -3
  139. package/linthost/rules_empty.go +3 -3
  140. package/linthost/rules_escape.go +44 -24
  141. package/linthost/rules_eval.go +2 -2
  142. package/linthost/rules_finally.go +2 -2
  143. package/linthost/rules_format_jsdoc.go +1 -1
  144. package/linthost/rules_format_print_width.go +9 -9
  145. package/linthost/rules_format_quotes.go +1 -1
  146. package/linthost/rules_format_semi.go +1 -1
  147. package/linthost/rules_format_sort_imports.go +1 -1
  148. package/linthost/rules_format_trailing_comma.go +1 -1
  149. package/linthost/rules_functional.go +967 -0
  150. package/linthost/rules_gap.go +24 -45
  151. package/linthost/rules_grouped_accessor_pairs.go +87 -0
  152. package/linthost/rules_guard_for_in.go +198 -0
  153. package/linthost/rules_id_length.go +77 -0
  154. package/linthost/rules_imports.go +70 -2
  155. package/linthost/rules_init_declarations.go +53 -0
  156. package/linthost/rules_jest.go +618 -0
  157. package/linthost/rules_jsdoc.go +502 -0
  158. package/linthost/rules_jsx_a11y.go +1264 -0
  159. package/linthost/rules_logic.go +12 -12
  160. package/linthost/rules_loops.go +1 -1
  161. package/linthost/rules_max_classes_per_file.go +58 -0
  162. package/linthost/rules_max_depth.go +83 -0
  163. package/linthost/rules_max_lines.go +101 -0
  164. package/linthost/rules_max_lines_per_function.go +57 -0
  165. package/linthost/rules_max_nested_callbacks.go +61 -0
  166. package/linthost/rules_max_params.go +49 -0
  167. package/linthost/rules_max_statements.go +59 -0
  168. package/linthost/rules_misc.go +1 -1
  169. package/linthost/rules_nextjs.go +697 -0
  170. package/linthost/rules_no_else_return.go +75 -0
  171. package/linthost/rules_no_empty_named_blocks.go +91 -0
  172. package/linthost/rules_no_extend_native.go +51 -0
  173. package/linthost/rules_no_import_assign.go +140 -0
  174. package/linthost/rules_no_invalid_this.go +52 -0
  175. package/linthost/rules_no_loop_func.go +85 -0
  176. package/linthost/rules_no_magic_numbers.go +123 -0
  177. package/linthost/rules_no_mixed_operators.go +80 -0
  178. package/linthost/rules_no_param_reassign.go +98 -0
  179. package/linthost/rules_no_redeclare.go +270 -0
  180. package/linthost/rules_no_restricted_imports.go +105 -0
  181. package/linthost/rules_no_restricted_syntax.go +49 -0
  182. package/linthost/rules_no_shadow.go +147 -0
  183. package/linthost/rules_no_unreachable.go +77 -0
  184. package/linthost/rules_no_useless_assignment.go +120 -0
  185. package/linthost/rules_no_useless_constructor.go +245 -0
  186. package/linthost/rules_no_useless_return.go +51 -0
  187. package/linthost/rules_params.go +1 -1
  188. package/linthost/rules_playwright.go +788 -0
  189. package/linthost/rules_prefer_arrow_callback.go +124 -0
  190. package/linthost/rules_prefer_destructuring.go +98 -0
  191. package/linthost/rules_prefer_named_capture_group.go +129 -0
  192. package/linthost/rules_prefer_rest_params.go +94 -0
  193. package/linthost/rules_problems.go +41 -30
  194. package/linthost/rules_promise.go +1128 -73
  195. package/linthost/rules_protos.go +2 -2
  196. package/linthost/rules_react.go +773 -0
  197. package/linthost/rules_react_extras.go +227 -0
  198. package/linthost/rules_react_hooks.go +848 -0
  199. package/linthost/rules_react_perf.go +293 -0
  200. package/linthost/rules_react_refresh.go +583 -0
  201. package/linthost/rules_regexp.go +410 -0
  202. package/linthost/rules_security.go +830 -0
  203. package/linthost/rules_self.go +2 -2
  204. package/linthost/rules_solid.go +1073 -0
  205. package/linthost/rules_sort_imports.go +69 -0
  206. package/linthost/rules_sort_keys.go +134 -0
  207. package/linthost/rules_storybook.go +1176 -0
  208. package/linthost/rules_strings.go +4 -4
  209. package/linthost/rules_suggestions.go +38 -38
  210. package/linthost/rules_tanstack_query.go +844 -0
  211. package/linthost/rules_testing_library.go +1204 -0
  212. package/linthost/rules_throw.go +1 -1
  213. package/linthost/rules_ts.go +19 -19
  214. package/linthost/rules_ts_async.go +399 -0
  215. package/linthost/rules_ts_class_literal_property_style.go +115 -0
  216. package/linthost/rules_ts_consistent_type_exports.go +256 -0
  217. package/linthost/rules_ts_explicit_function_return_type.go +67 -0
  218. package/linthost/rules_ts_extra.go +155 -36
  219. package/linthost/rules_ts_no_base_to_string.go +218 -0
  220. package/linthost/rules_ts_no_confusing_void.go +72 -0
  221. package/linthost/rules_ts_no_deprecated.go +195 -0
  222. package/linthost/rules_ts_no_for_in_array.go +84 -0
  223. package/linthost/rules_ts_no_magic_numbers.go +124 -0
  224. package/linthost/rules_ts_no_meaningless_void_operator.go +84 -0
  225. package/linthost/rules_ts_no_misused_spread.go +104 -0
  226. package/linthost/rules_ts_no_redundant_type_constituents.go +113 -0
  227. package/linthost/rules_ts_no_restricted_types.go +62 -0
  228. package/linthost/rules_ts_no_unnecessary_boolean_literal_compare.go +129 -0
  229. package/linthost/rules_ts_no_unnecessary_condition.go +250 -0
  230. package/linthost/rules_ts_no_unnecessary_qualifier.go +118 -0
  231. package/linthost/rules_ts_no_unnecessary_template_expression.go +178 -0
  232. package/linthost/rules_ts_no_unnecessary_type_arguments.go +234 -0
  233. package/linthost/rules_ts_no_unnecessary_type_assertion.go +157 -0
  234. package/linthost/rules_ts_no_unsafe_argument.go +82 -0
  235. package/linthost/rules_ts_no_unsafe_assignment.go +102 -0
  236. package/linthost/rules_ts_no_unsafe_call.go +82 -0
  237. package/linthost/rules_ts_no_unsafe_enum_comparison.go +235 -0
  238. package/linthost/rules_ts_no_unsafe_member_access.go +58 -0
  239. package/linthost/rules_ts_no_unsafe_return.go +126 -0
  240. package/linthost/rules_ts_no_unsafe_unary_minus.go +81 -0
  241. package/linthost/rules_ts_no_useless_constructor.go +52 -0
  242. package/linthost/rules_ts_non_nullable_type_assertion_style.go +108 -0
  243. package/linthost/rules_ts_parameter_properties.go +38 -0
  244. package/linthost/rules_ts_prefer_find.go +178 -0
  245. package/linthost/rules_ts_prefer_includes.go +255 -0
  246. package/linthost/rules_ts_prefer_nullish_coalescing.go +104 -0
  247. package/linthost/rules_ts_prefer_optional_chain.go +228 -0
  248. package/linthost/rules_ts_prefer_promise_reject_errors.go +176 -0
  249. package/linthost/rules_ts_prefer_readonly.go +73 -0
  250. package/linthost/rules_ts_prefer_reduce_type_parameter.go +116 -0
  251. package/linthost/rules_ts_prefer_regexp_exec.go +122 -0
  252. package/linthost/rules_ts_prefer_return_this_type.go +135 -0
  253. package/linthost/rules_ts_prefer_string_starts_ends_with.go +360 -0
  254. package/linthost/rules_ts_promise_function_async.go +77 -0
  255. package/linthost/rules_ts_related_getter_setter_pairs.go +113 -0
  256. package/linthost/rules_ts_require_array_sort_compare.go +96 -0
  257. package/linthost/rules_ts_restrict_plus_operands.go +127 -0
  258. package/linthost/rules_ts_restrict_template_expressions.go +95 -0
  259. package/linthost/rules_ts_simple.go +387 -0
  260. package/linthost/rules_ts_sort_type_constituents.go +144 -0
  261. package/linthost/rules_ts_strict_boolean_expressions.go +157 -0
  262. package/linthost/rules_ts_switch_exhaustiveness_check.go +147 -0
  263. package/linthost/rules_ts_unbound_method.go +126 -0
  264. package/linthost/rules_tsdoc.go +136 -0
  265. package/linthost/rules_unicorn_better_regex.go +27 -0
  266. package/linthost/rules_unicorn_catch_error_name.go +46 -0
  267. package/linthost/rules_unicorn_consistent_assert.go +47 -0
  268. package/linthost/rules_unicorn_consistent_date_clone.go +54 -0
  269. package/linthost/rules_unicorn_consistent_destructuring.go +25 -0
  270. package/linthost/rules_unicorn_consistent_empty_array_spread.go +62 -0
  271. package/linthost/rules_unicorn_consistent_existence_index_check.go +80 -0
  272. package/linthost/rules_unicorn_consistent_function_scoping.go +25 -0
  273. package/linthost/rules_unicorn_consistent_template_literal_escape.go +25 -0
  274. package/linthost/rules_unicorn_custom_error_definition.go +138 -0
  275. package/linthost/rules_unicorn_empty_brace_spaces.go +73 -0
  276. package/linthost/rules_unicorn_error_message.go +64 -0
  277. package/linthost/rules_unicorn_escape_case.go +51 -0
  278. package/linthost/rules_unicorn_expiring_todo_comments.go +78 -0
  279. package/linthost/rules_unicorn_explicit_length_check.go +88 -0
  280. package/linthost/rules_unicorn_filename_case.go +29 -0
  281. package/linthost/rules_unicorn_import_style.go +28 -0
  282. package/linthost/rules_unicorn_isolated_functions.go +29 -0
  283. package/linthost/rules_unicorn_new_for_builtins.go +87 -0
  284. package/linthost/rules_unicorn_no_abusive_eslint_disable.go +63 -0
  285. package/linthost/rules_unicorn_no_accessor_recursion.go +115 -0
  286. package/linthost/rules_unicorn_no_anonymous_default_export.go +74 -0
  287. package/linthost/rules_unicorn_no_array_callback_reference.go +65 -0
  288. package/linthost/rules_unicorn_no_array_for_each.go +40 -0
  289. package/linthost/rules_unicorn_no_array_method_this_argument.go +61 -0
  290. package/linthost/rules_unicorn_no_array_reduce.go +41 -0
  291. package/linthost/rules_unicorn_no_array_reverse.go +44 -0
  292. package/linthost/rules_unicorn_no_array_sort.go +43 -0
  293. package/linthost/rules_unicorn_no_await_expression_member.go +40 -0
  294. package/linthost/rules_unicorn_no_await_in_promise_methods.go +69 -0
  295. package/linthost/rules_unicorn_no_console_spaces.go +61 -0
  296. package/linthost/rules_unicorn_no_document_cookie.go +41 -0
  297. package/linthost/rules_unicorn_no_empty_file.go +44 -0
  298. package/linthost/rules_unicorn_no_for_loop.go +102 -0
  299. package/linthost/rules_unicorn_no_hex_escape.go +42 -0
  300. package/linthost/rules_unicorn_no_immediate_mutation.go +90 -0
  301. package/linthost/rules_unicorn_no_instanceof_builtins.go +66 -0
  302. package/linthost/rules_unicorn_no_invalid_fetch_options.go +79 -0
  303. package/linthost/rules_unicorn_no_invalid_remove_event_listener.go +51 -0
  304. package/linthost/rules_unicorn_no_keyword_prefix.go +101 -0
  305. package/linthost/rules_unicorn_no_lonely_if.go +44 -0
  306. package/linthost/rules_unicorn_no_magic_array_flat_depth.go +51 -0
  307. package/linthost/rules_unicorn_no_named_default.go +54 -0
  308. package/linthost/rules_unicorn_no_negated_condition.go +85 -0
  309. package/linthost/rules_unicorn_no_negation_in_equality_check.go +50 -0
  310. package/linthost/rules_unicorn_no_nested_ternary.go +43 -0
  311. package/linthost/rules_unicorn_no_new_array.go +30 -0
  312. package/linthost/rules_unicorn_no_new_buffer.go +31 -0
  313. package/linthost/rules_unicorn_no_null.go +24 -0
  314. package/linthost/rules_unicorn_no_object_as_default_parameter.go +48 -0
  315. package/linthost/rules_unicorn_no_process_exit.go +43 -0
  316. package/linthost/rules_unicorn_no_single_promise_in_promise_methods.go +59 -0
  317. package/linthost/rules_unicorn_no_static_only_class.go +56 -0
  318. package/linthost/rules_unicorn_no_thenable.go +74 -0
  319. package/linthost/rules_unicorn_no_this_assignment.go +35 -0
  320. package/linthost/rules_unicorn_no_typeof_undefined.go +58 -0
  321. package/linthost/rules_unicorn_no_unnecessary_array_flat_depth.go +49 -0
  322. package/linthost/rules_unicorn_no_unnecessary_array_splice_count.go +70 -0
  323. package/linthost/rules_unicorn_no_unnecessary_await.go +51 -0
  324. package/linthost/rules_unicorn_no_unnecessary_polyfills.go +32 -0
  325. package/linthost/rules_unicorn_no_unnecessary_slice_end.go +48 -0
  326. package/linthost/rules_unicorn_no_unreadable_array_destructuring.go +115 -0
  327. package/linthost/rules_unicorn_no_unreadable_iife.go +50 -0
  328. package/linthost/rules_unicorn_no_unused_properties.go +30 -0
  329. package/linthost/rules_unicorn_no_useless_collection_argument.go +63 -0
  330. package/linthost/rules_unicorn_no_useless_error_capture_stack_trace.go +46 -0
  331. package/linthost/rules_unicorn_no_useless_fallback_in_spread.go +81 -0
  332. package/linthost/rules_unicorn_no_useless_iterator_to_array.go +72 -0
  333. package/linthost/rules_unicorn_no_useless_length_check.go +144 -0
  334. package/linthost/rules_unicorn_no_useless_promise_resolve_reject.go +81 -0
  335. package/linthost/rules_unicorn_no_useless_spread.go +67 -0
  336. package/linthost/rules_unicorn_no_useless_switch_case.go +55 -0
  337. package/linthost/rules_unicorn_no_useless_undefined.go +55 -0
  338. package/linthost/rules_unicorn_no_zero_fractions.go +52 -0
  339. package/linthost/rules_unicorn_number_literal_case.go +69 -0
  340. package/linthost/rules_unicorn_numeric_separators_style.go +75 -0
  341. package/linthost/rules_unicorn_prefer_add_event_listener.go +66 -0
  342. package/linthost/rules_unicorn_prefer_array_find.go +51 -0
  343. package/linthost/rules_unicorn_prefer_array_flat.go +52 -0
  344. package/linthost/rules_unicorn_prefer_array_flat_map.go +63 -0
  345. package/linthost/rules_unicorn_prefer_array_index_of.go +147 -0
  346. package/linthost/rules_unicorn_prefer_array_some.go +67 -0
  347. package/linthost/rules_unicorn_prefer_at.go +77 -0
  348. package/linthost/rules_unicorn_prefer_bigint_literals.go +77 -0
  349. package/linthost/rules_unicorn_prefer_blob_reading_methods.go +44 -0
  350. package/linthost/rules_unicorn_prefer_class_fields.go +93 -0
  351. package/linthost/rules_unicorn_prefer_classlist_toggle.go +120 -0
  352. package/linthost/rules_unicorn_prefer_code_point.go +49 -0
  353. package/linthost/rules_unicorn_prefer_date_now.go +78 -0
  354. package/linthost/rules_unicorn_prefer_default_parameters.go +144 -0
  355. package/linthost/rules_unicorn_prefer_dom_node_append.go +40 -0
  356. package/linthost/rules_unicorn_prefer_dom_node_dataset.go +55 -0
  357. package/linthost/rules_unicorn_prefer_dom_node_remove.go +41 -0
  358. package/linthost/rules_unicorn_prefer_dom_node_text_content.go +37 -0
  359. package/linthost/rules_unicorn_prefer_event_target.go +36 -0
  360. package/linthost/rules_unicorn_prefer_export_from.go +129 -0
  361. package/linthost/rules_unicorn_prefer_global_this.go +127 -0
  362. package/linthost/rules_unicorn_prefer_import_meta_properties.go +66 -0
  363. package/linthost/rules_unicorn_prefer_includes.go +149 -0
  364. package/linthost/rules_unicorn_prefer_json_parse_buffer.go +65 -0
  365. package/linthost/rules_unicorn_prefer_keyboard_event_key.go +38 -0
  366. package/linthost/rules_unicorn_prefer_logical_operator_over_ternary.go +48 -0
  367. package/linthost/rules_unicorn_prefer_math_min_max.go +60 -0
  368. package/linthost/rules_unicorn_prefer_math_trunc.go +62 -0
  369. package/linthost/rules_unicorn_prefer_modern_dom_apis.go +47 -0
  370. package/linthost/rules_unicorn_prefer_modern_math_apis.go +70 -0
  371. package/linthost/rules_unicorn_prefer_module.go +50 -0
  372. package/linthost/rules_unicorn_prefer_native_coercion_functions.go +114 -0
  373. package/linthost/rules_unicorn_prefer_negative_index.go +74 -0
  374. package/linthost/rules_unicorn_prefer_node_protocol.go +122 -0
  375. package/linthost/rules_unicorn_prefer_number_properties.go +88 -0
  376. package/linthost/rules_unicorn_prefer_object_from_entries.go +55 -0
  377. package/linthost/rules_unicorn_prefer_optional_catch_binding.go +62 -0
  378. package/linthost/rules_unicorn_prefer_prototype_methods.go +54 -0
  379. package/linthost/rules_unicorn_prefer_query_selector.go +56 -0
  380. package/linthost/rules_unicorn_prefer_reflect_apply.go +36 -0
  381. package/linthost/rules_unicorn_prefer_regexp_test_rule.go +80 -0
  382. package/linthost/rules_unicorn_prefer_response_static_json.go +53 -0
  383. package/linthost/rules_unicorn_prefer_set_has.go +42 -0
  384. package/linthost/rules_unicorn_prefer_set_size.go +48 -0
  385. package/linthost/rules_unicorn_prefer_simple_condition_first.go +34 -0
  386. package/linthost/rules_unicorn_prefer_single_call.go +96 -0
  387. package/linthost/rules_unicorn_prefer_spread.go +51 -0
  388. package/linthost/rules_unicorn_prefer_string_raw.go +43 -0
  389. package/linthost/rules_unicorn_prefer_string_replace_all.go +95 -0
  390. package/linthost/rules_unicorn_prefer_string_slice.go +43 -0
  391. package/linthost/rules_unicorn_prefer_string_starts_ends_with.go +148 -0
  392. package/linthost/rules_unicorn_prefer_string_trim_start_end.go +48 -0
  393. package/linthost/rules_unicorn_prefer_structured_clone.go +71 -0
  394. package/linthost/rules_unicorn_prefer_switch.go +103 -0
  395. package/linthost/rules_unicorn_prefer_ternary.go +71 -0
  396. package/linthost/rules_unicorn_prefer_top_level_await.go +72 -0
  397. package/linthost/rules_unicorn_prefer_type_error.go +127 -0
  398. package/linthost/rules_unicorn_prevent_abbreviations.go +127 -0
  399. package/linthost/rules_unicorn_relative_url_style.go +49 -0
  400. package/linthost/rules_unicorn_require_array_join_separator.go +45 -0
  401. package/linthost/rules_unicorn_require_module_attributes.go +54 -0
  402. package/linthost/rules_unicorn_require_module_specifiers.go +55 -0
  403. package/linthost/rules_unicorn_require_number_to_fixed_digits_argument.go +43 -0
  404. package/linthost/rules_unicorn_require_post_message_target_origin.go +44 -0
  405. package/linthost/rules_unicorn_string_content.go +27 -0
  406. package/linthost/rules_unicorn_switch_case_braces.go +42 -0
  407. package/linthost/rules_unicorn_switch_case_break_position.go +31 -0
  408. package/linthost/rules_unicorn_template_indent.go +28 -0
  409. package/linthost/rules_unicorn_text_encoding_identifier_case.go +72 -0
  410. package/linthost/rules_unicorn_throw_new_error.go +61 -0
  411. package/linthost/rules_var.go +4 -4
  412. package/linthost/rules_vitest.go +568 -0
  413. package/package.json +3 -3
  414. package/plugin/main.go +49 -3
  415. package/rule/astutil/astutil.go +10 -3
  416. package/rule/rule.go +12 -10
  417. package/src/defaultFormat.ts +11 -8
  418. package/src/index.ts +40 -16
  419. package/src/structures/ITtscLintConfig.ts +12 -6
  420. package/src/structures/{ITtscLintFormatConfig.ts → ITtscLintFormat.ts} +2 -2
  421. package/src/structures/TtscLintRuleSetting.ts +55 -0
  422. package/src/structures/index.ts +3 -4
  423. package/src/structures/rules/ITtscLintBoundariesRuleOptions.ts +128 -0
  424. package/src/structures/rules/ITtscLintBoundariesRules.ts +95 -0
  425. package/src/structures/rules/ITtscLintContributorRules.ts +21 -0
  426. package/src/structures/rules/ITtscLintCoreRules.ts +1406 -0
  427. package/src/structures/rules/ITtscLintCypressRuleOptions.ts +18 -0
  428. package/src/structures/rules/ITtscLintCypressRules.ts +145 -0
  429. package/src/structures/rules/ITtscLintFunctionalRuleOptions.ts +213 -0
  430. package/src/structures/rules/ITtscLintFunctionalRules.ts +202 -0
  431. package/src/structures/rules/ITtscLintJestRules.ts +220 -0
  432. package/src/structures/rules/ITtscLintJsdocRules.ts +153 -0
  433. package/src/structures/rules/ITtscLintJsxA11yRules.ts +339 -0
  434. package/src/structures/rules/ITtscLintNextjsRules.ts +206 -0
  435. package/src/structures/rules/ITtscLintPlaywrightRules.ts +361 -0
  436. package/src/structures/rules/ITtscLintPromiseRules.ts +205 -0
  437. package/src/structures/rules/ITtscLintReactPerfRuleOptions.ts +19 -0
  438. package/src/structures/rules/ITtscLintReactPerfRules.ts +55 -0
  439. package/src/structures/rules/ITtscLintReactRuleOptions.ts +43 -0
  440. package/src/structures/rules/ITtscLintReactRules.ts +321 -0
  441. package/src/structures/rules/ITtscLintRegexpRules.ts +212 -0
  442. package/src/structures/rules/ITtscLintRuleOptionsMap.ts +89 -0
  443. package/src/structures/rules/ITtscLintRules.ts +77 -0
  444. package/src/structures/rules/ITtscLintSecurityRules.ts +162 -0
  445. package/src/structures/rules/ITtscLintSolidRules.ts +202 -0
  446. package/src/structures/rules/ITtscLintStorybookRuleOptions.ts +23 -0
  447. package/src/structures/rules/ITtscLintStorybookRules.ts +193 -0
  448. package/src/structures/rules/ITtscLintTanstackQueryRules.ts +102 -0
  449. package/src/structures/rules/ITtscLintTestingLibraryRuleOptions.ts +24 -0
  450. package/src/structures/rules/ITtscLintTestingLibraryRules.ts +342 -0
  451. package/src/structures/rules/ITtscLintTypeScriptRules.ts +1230 -0
  452. package/src/structures/rules/ITtscLintUnicornRules.ts +1143 -0
  453. package/src/structures/rules/ITtscLintVitestRules.ts +154 -0
  454. package/src/structures/rules/index.ts +31 -0
  455. package/lib/structures/ITtscLintFormatConfig.js.map +0 -1
  456. package/lib/structures/TtscLintRule.d.ts +0 -17
  457. package/lib/structures/TtscLintRule.js.map +0 -1
  458. package/lib/structures/TtscLintRuleMap.d.ts +0 -46
  459. package/lib/structures/TtscLintRuleMap.js.map +0 -1
  460. package/lib/structures/TtscLintRuleOptions.d.ts +0 -137
  461. package/lib/structures/TtscLintRuleOptions.js.map +0 -1
  462. package/src/structures/TtscLintRule.ts +0 -160
  463. package/src/structures/TtscLintRuleMap.ts +0 -55
  464. package/src/structures/TtscLintRuleOptions.ts +0 -151
@@ -6,7 +6,7 @@ import (
6
6
  shimast "github.com/microsoft/typescript-go/shim/ast"
7
7
  )
8
8
 
9
- // no-template-curly-in-string: a regular string contains `${...}`. The
9
+ // noTemplateCurlyInString: a regular string contains `${...}`. The
10
10
  // developer probably meant a template literal.
11
11
  // https://eslint.org/docs/latest/rules/no-template-curly-in-string
12
12
  type noTemplateCurlyInString struct{}
@@ -45,7 +45,7 @@ func hasTemplatePlaceholder(text string) bool {
45
45
  return false
46
46
  }
47
47
 
48
- // no-multi-str: `"line one \\n line two"` style backslash continuations.
48
+ // noMultiStr: `"line one \\n line two"` style backslash continuations.
49
49
  // TS strips them silently and the result is rarely what the author meant.
50
50
  // https://eslint.org/docs/latest/rules/no-multi-str
51
51
  type noMultiStr struct{}
@@ -75,7 +75,7 @@ func hasBackslashLineContinuation(src string) bool {
75
75
  return false
76
76
  }
77
77
 
78
- // no-useless-concat: `"a" + "b"` of two literals. The compiler can't
78
+ // noUselessConcat: `"a" + "b"` of two literals. The compiler can't
79
79
  // constant-fold every case, but this catches the obvious shapes.
80
80
  // https://eslint.org/docs/latest/rules/no-useless-concat
81
81
  type noUselessConcat struct{}
@@ -109,7 +109,7 @@ func isStringLikeLiteral(node *shimast.Node) bool {
109
109
  return false
110
110
  }
111
111
 
112
- // no-octal: `010` octal literal. Has to be opt-in via `0o10` in
112
+ // noOctal: `010` octal literal. Has to be opt-in via `0o10` in
113
113
  // modern code; the legacy form is silently confusing.
114
114
  // https://eslint.org/docs/latest/rules/no-octal
115
115
  type noOctal struct{}
@@ -10,7 +10,7 @@ import (
10
10
  shimscanner "github.com/microsoft/typescript-go/shim/scanner"
11
11
  )
12
12
 
13
- // no-alert: `alert()` / `confirm()` / `prompt()`. Rarely the right
13
+ // noAlert: `alert()` / `confirm()` / `prompt()`. Rarely the right
14
14
  // answer in production code.
15
15
  type noAlert struct{}
16
16
 
@@ -27,7 +27,7 @@ func (noAlert) Check(ctx *Context, node *shimast.Node) {
27
27
  }
28
28
  }
29
29
 
30
- // no-bitwise: `&`, `|`, `^`, `~`, `<<`, `>>`, `>>>` — almost always a
30
+ // noBitwise: `&`, `|`, `^`, `~`, `<<`, `>>`, `>>>` — almost always a
31
31
  // typo for the boolean-logic operators.
32
32
  type noBitwise struct{}
33
33
 
@@ -67,7 +67,7 @@ func (noBitwise) Check(ctx *Context, node *shimast.Node) {
67
67
  }
68
68
  }
69
69
 
70
- // no-caller: `arguments.caller` / `arguments.callee` — strict-mode
70
+ // noCaller: `arguments.caller` / `arguments.callee` — strict-mode
71
71
  // errors elsewhere; lint catches them earlier.
72
72
  type noCaller struct{}
73
73
 
@@ -87,7 +87,7 @@ func (noCaller) Check(ctx *Context, node *shimast.Node) {
87
87
  }
88
88
  }
89
89
 
90
- // no-case-declarations: `switch (x) { case 1: let y = 2; break; }` —
90
+ // noCaseDeclarations: `switch (x) { case 1: let y = 2; break; }` —
91
91
  // block-scoped declarations leak across case labels.
92
92
  type noCaseDeclarations struct{}
93
93
 
@@ -118,7 +118,7 @@ func (noCaseDeclarations) Check(ctx *Context, node *shimast.Node) {
118
118
  }
119
119
  }
120
120
 
121
- // no-continue: `continue` keyword. ESLint flags it as a code-smell
121
+ // noContinue: `continue` keyword. ESLint flags it as a code-smell
122
122
  // (loop body should usually be reorganized).
123
123
  type noContinue struct{}
124
124
 
@@ -128,7 +128,7 @@ func (noContinue) Check(ctx *Context, node *shimast.Node) {
128
128
  ctx.Report(node, "Unexpected use of continue statement.")
129
129
  }
130
130
 
131
- // no-delete-var: `delete x` where `x` is a variable. Strict-mode error.
131
+ // noDeleteVar: `delete x` where `x` is a variable. Strict-mode error.
132
132
  type noDeleteVar struct{}
133
133
 
134
134
  func (noDeleteVar) Name() string { return "no-delete-var" }
@@ -143,7 +143,7 @@ func (noDeleteVar) Check(ctx *Context, node *shimast.Node) {
143
143
  }
144
144
  }
145
145
 
146
- // no-eq-null: `x == null` — ambiguous with eqeqeq's `null` exception
146
+ // noEqNull: `x == null` — ambiguous with eqeqeq's `null` exception
147
147
  // when developers want to also catch `undefined`.
148
148
  type noEqNull struct{}
149
149
 
@@ -166,7 +166,7 @@ func isNullLiteral(node *shimast.Node) bool {
166
166
  return node != nil && node.Kind == shimast.KindNullKeyword
167
167
  }
168
168
 
169
- // no-extra-bind: `(function () {}).bind(this)` where `this` isn't used
169
+ // noExtraBind: `(function () {}).bind(this)` where `this` isn't used
170
170
  // — only flag the case where the bind target is empty/parameterless,
171
171
  // keeping false-positives down.
172
172
  type noExtraBind struct{}
@@ -230,7 +230,7 @@ func bodyReferencesThis(node *shimast.Node) bool {
230
230
  return found
231
231
  }
232
232
 
233
- // no-labels: labels (`outer: for (...) { break outer; }`) are
233
+ // noLabels: labels (`outer: for (...) { break outer; }`) are
234
234
  // confusing and rarely needed.
235
235
  type noLabels struct{}
236
236
 
@@ -240,7 +240,7 @@ func (noLabels) Check(ctx *Context, node *shimast.Node) {
240
240
  ctx.Report(node, "Unexpected labeled statement.")
241
241
  }
242
242
 
243
- // no-lone-blocks: `{ doStuff(); }` outside a control flow context —
243
+ // noLoneBlocks: `{ doStuff(); }` outside a control flow context —
244
244
  // the braces add no scope (in non-strict mode) and obscure intent.
245
245
  type noLoneBlocks struct{}
246
246
 
@@ -293,7 +293,7 @@ func (noLoneBlocks) Check(ctx *Context, node *shimast.Node) {
293
293
  ctx.Report(node, "Block is redundant.")
294
294
  }
295
295
 
296
- // no-lonely-if: `else { if (...) {...} }` should be `else if (...)`.
296
+ // noLonelyIf: `else { if (...) {...} }` should be `else if (...)`.
297
297
  type noLonelyIf struct{}
298
298
 
299
299
  func (noLonelyIf) Name() string { return "no-lonely-if" }
@@ -321,7 +321,7 @@ func (noLonelyIf) Check(ctx *Context, node *shimast.Node) {
321
321
  ctx.Report(node, "Unexpected if as the only statement in an else block.")
322
322
  }
323
323
 
324
- // no-multi-assign: `a = b = 1`. Confusing right-to-left chains.
324
+ // noMultiAssign: `a = b = 1`. Confusing right-to-left chains.
325
325
  type noMultiAssign struct{}
326
326
 
327
327
  func (noMultiAssign) Name() string { return "no-multi-assign" }
@@ -342,7 +342,7 @@ func (noMultiAssign) Check(ctx *Context, node *shimast.Node) {
342
342
  }
343
343
  }
344
344
 
345
- // no-negated-condition: `if (!x) {} else {}`. Easier to read with the
345
+ // noNegatedCondition: `if (!x) {} else {}`. Easier to read with the
346
346
  // branches swapped.
347
347
  type noNegatedCondition struct{}
348
348
 
@@ -397,7 +397,7 @@ func isNegatedExpression(node *shimast.Node) bool {
397
397
  return false
398
398
  }
399
399
 
400
- // no-nested-ternary: `a ? b : c ? d : e`.
400
+ // noNestedTernary: `a ? b : c ? d : e`.
401
401
  type noNestedTernary struct{}
402
402
 
403
403
  func (noNestedTernary) Name() string { return "no-nested-ternary" }
@@ -419,7 +419,7 @@ func hasConditional(node *shimast.Node) bool {
419
419
  return expr != nil && expr.Kind == shimast.KindConditionalExpression
420
420
  }
421
421
 
422
- // no-new: `new Foo()` whose result is discarded. Either store it or
422
+ // noNew: `new Foo()` whose result is discarded. Either store it or
423
423
  // avoid the constructor.
424
424
  type noNew struct{}
425
425
 
@@ -435,7 +435,7 @@ func (noNew) Check(ctx *Context, node *shimast.Node) {
435
435
  }
436
436
  }
437
437
 
438
- // no-new-func: `new Function("...")` — a third form of dynamic eval.
438
+ // noNewFunc: `new Function("...")` — a third form of dynamic eval.
439
439
  type noNewFunc struct{}
440
440
 
441
441
  func (noNewFunc) Name() string { return "no-new-func" }
@@ -454,8 +454,8 @@ func (noNewFunc) Check(ctx *Context, node *shimast.Node) {
454
454
  }
455
455
  }
456
456
 
457
- // no-object-constructor: `new Object()` / `Object()` — same shape as
458
- // no-array-constructor but for objects.
457
+ // noObjectConstructor: `new Object()` / `Object()` — same shape as
458
+ // noArrayConstructor but for objects.
459
459
  type noObjectConstructor struct{}
460
460
 
461
461
  func (noObjectConstructor) Name() string { return "no-object-constructor" }
@@ -486,7 +486,7 @@ func (noObjectConstructor) Check(ctx *Context, node *shimast.Node) {
486
486
  }
487
487
  }
488
488
 
489
- // no-octal-escape: `"\251"` — octal escapes in string literals are
489
+ // noOctalEscape: `"\251"` — octal escapes in string literals are
490
490
  // deprecated and forbidden in template literals.
491
491
  type noOctalEscape struct{}
492
492
 
@@ -524,7 +524,7 @@ func hasOctalEscape(src string) bool {
524
524
  return false
525
525
  }
526
526
 
527
- // no-plusplus: `++x` / `x++`. Equivalent to `x += 1`, considered less
527
+ // noPlusplus: `++x` / `x++`. Equivalent to `x += 1`, considered less
528
528
  // clear in some style guides.
529
529
  type noPlusPlus struct{}
530
530
 
@@ -545,7 +545,7 @@ func (noPlusPlus) Check(ctx *Context, node *shimast.Node) {
545
545
  }
546
546
  }
547
547
 
548
- // no-regex-spaces: multiple spaces in a regex literal — confusing
548
+ // noRegexSpaces: multiple spaces in a regex literal — confusing
549
549
  // because the count is invisible.
550
550
  type noRegexSpaces struct{}
551
551
 
@@ -597,7 +597,7 @@ func regexHasMultipleSpaces(src string) bool {
597
597
  return false
598
598
  }
599
599
 
600
- // no-return-assign: `return a = b` mixes assignment with return.
600
+ // noReturnAssign: `return a = b` mixes assignment with return.
601
601
  type noReturnAssign struct{}
602
602
 
603
603
  func (noReturnAssign) Name() string { return "no-return-assign" }
@@ -625,7 +625,7 @@ func (noReturnAssign) Check(ctx *Context, node *shimast.Node) {
625
625
  }
626
626
  }
627
627
 
628
- // no-sequences: `(a, b)` — comma operator. Almost always a confusing
628
+ // noSequences: `(a, b)` — comma operator. Almost always a confusing
629
629
  // pattern outside of `for` headers.
630
630
  type noSequences struct{}
631
631
 
@@ -653,7 +653,7 @@ func (noSequences) Check(ctx *Context, node *shimast.Node) {
653
653
  ctx.Report(node, "Unexpected use of comma operator.")
654
654
  }
655
655
 
656
- // no-shadow-restricted-names: redeclaring `undefined`, `NaN`, `Infinity`,
656
+ // noShadowRestrictedNames: redeclaring `undefined`, `NaN`, `Infinity`,
657
657
  // `arguments`, or `eval`.
658
658
  type noShadowRestrictedNames struct{}
659
659
 
@@ -681,7 +681,7 @@ func (noShadowRestrictedNames) Check(ctx *Context, node *shimast.Node) {
681
681
  }
682
682
  }
683
683
 
684
- // no-undefined: literal `undefined` (vs `void 0`). Easier to misuse
684
+ // noUndefined: literal `undefined` (vs `void 0`). Easier to misuse
685
685
  // because it's writable in older environments.
686
686
  type noUndefined struct{}
687
687
 
@@ -695,7 +695,7 @@ func (noUndefined) Check(ctx *Context, node *shimast.Node) {
695
695
  if parent == nil {
696
696
  return
697
697
  }
698
- // Don't flag a declaration *named* `undefined` (no-shadow-restricted-names
698
+ // Don't flag a declaration *named* `undefined` (noShadowRestrictedNames
699
699
  // covers that), or a member-access / object-key position
700
700
  // (`x.undefined`, `{ undefined: 1 }`).
701
701
  switch parent.Kind {
@@ -734,7 +734,7 @@ func nodesShareLoc(a, b *shimast.Node) bool {
734
734
  return a == b || (a.Pos() == b.Pos() && a.End() == b.End())
735
735
  }
736
736
 
737
- // no-unneeded-ternary: `x ? true : false` → `Boolean(x)` / `!!x`.
737
+ // noUnneededTernary: `x ? true : false` → `Boolean(x)` / `!!x`.
738
738
  type noUnneededTernary struct{}
739
739
 
740
740
  func (noUnneededTernary) Name() string { return "no-unneeded-ternary" }
@@ -811,7 +811,7 @@ func needsParensForUnaryNegation(node *shimast.Node) bool {
811
811
  return false
812
812
  }
813
813
 
814
- // no-unused-expressions: an expression statement whose value isn't used.
814
+ // noUnusedExpressions: an expression statement whose value isn't used.
815
815
  // Filtered down to common patterns ESLint flags by default.
816
816
  type noUnusedExpressions struct{}
817
817
 
@@ -879,7 +879,7 @@ func isProductiveExpression(node *shimast.Node) bool {
879
879
  return false
880
880
  }
881
881
 
882
- // no-useless-call: `func.call(undefined, ...args)` / `func.apply(undefined, args)`
882
+ // noUselessCall: `func.call(undefined, ...args)` / `func.apply(undefined, args)`
883
883
  // — call/apply with no this binding is just a regular call.
884
884
  type noUselessCall struct{}
885
885
 
@@ -908,7 +908,7 @@ func (noUselessCall) Check(ctx *Context, node *shimast.Node) {
908
908
  }
909
909
  }
910
910
 
911
- // no-useless-computed-key: `{ ["foo"]: 1 }` could be `{ foo: 1 }`.
911
+ // noUselessComputedKey: `{ ["foo"]: 1 }` could be `{ foo: 1 }`.
912
912
  type noUselessComputedKey struct{}
913
913
 
914
914
  func (noUselessComputedKey) Name() string { return "no-useless-computed-key" }
@@ -943,7 +943,7 @@ func (noUselessComputedKey) Check(ctx *Context, node *shimast.Node) {
943
943
  }
944
944
  }
945
945
 
946
- // no-useless-rename: `import { x as x } from ...` / `const { x: x } = obj`
946
+ // noUselessRename: `import { x as x } from ...` / `const { x: x } = obj`
947
947
  // — the rename is a no-op.
948
948
  type noUselessRename struct{}
949
949
 
@@ -1013,7 +1013,7 @@ func reportUselessRenameFix(ctx *Context, node, propertyName, name *shimast.Node
1013
1013
  )
1014
1014
  }
1015
1015
 
1016
- // object-shorthand: `{ x: x }` → `{ x }`.
1016
+ // objectShorthand: `{ x: x }` → `{ x }`.
1017
1017
  type objectShorthand struct{}
1018
1018
 
1019
1019
  func (objectShorthand) Name() string { return "object-shorthand" }
@@ -1042,7 +1042,7 @@ func (objectShorthand) Check(ctx *Context, node *shimast.Node) {
1042
1042
  )
1043
1043
  }
1044
1044
 
1045
- // operator-assignment: `x = x + 1` → `x += 1`.
1045
+ // operatorAssignment: `x = x + 1` → `x += 1`.
1046
1046
  type operatorAssignment struct{}
1047
1047
 
1048
1048
  func (operatorAssignment) Name() string { return "operator-assignment" }
@@ -1082,7 +1082,7 @@ func isCompoundEligibleOperator(kind shimast.Kind) bool {
1082
1082
  return false
1083
1083
  }
1084
1084
 
1085
- // prefer-exponentiation-operator: `Math.pow(a, b)` → `a ** b`.
1085
+ // preferExponentiationOperator: `Math.pow(a, b)` → `a ** b`.
1086
1086
  type preferExponentiationOperator struct{}
1087
1087
 
1088
1088
  func (preferExponentiationOperator) Name() string { return "prefer-exponentiation-operator" }
@@ -1100,7 +1100,7 @@ func (preferExponentiationOperator) Check(ctx *Context, node *shimast.Node) {
1100
1100
  ctx.Report(node, "Use the '**' operator instead of 'Math.pow'.")
1101
1101
  }
1102
1102
 
1103
- // prefer-spread: `fn.apply(null, args)` → `fn(...args)`.
1103
+ // preferSpread: `fn.apply(null, args)` → `fn(...args)`.
1104
1104
  type preferSpread struct{}
1105
1105
 
1106
1106
  func (preferSpread) Name() string { return "prefer-spread" }
@@ -1131,7 +1131,7 @@ func (preferSpread) Check(ctx *Context, node *shimast.Node) {
1131
1131
  }
1132
1132
  }
1133
1133
 
1134
- // prefer-template: string concatenation that would read better as a
1134
+ // preferTemplate: string concatenation that would read better as a
1135
1135
  // template literal — heuristic: any `+` involving a string literal AND
1136
1136
  // a non-literal.
1137
1137
  type preferTemplate struct{}
@@ -1277,7 +1277,7 @@ func escapeTemplateLiteralBody(text string) string {
1277
1277
  return sb.String()
1278
1278
  }
1279
1279
 
1280
- // require-yield: `function* gen() { return 1; }` — generators that
1280
+ // requireYield: `function* gen() { return 1; }` — generators that
1281
1281
  // never yield are usually unintended.
1282
1282
  type requireYield struct{}
1283
1283
 
@@ -1337,7 +1337,7 @@ func subtreeContainsYield(node *shimast.Node) bool {
1337
1337
  return found
1338
1338
  }
1339
1339
 
1340
- // vars-on-top: `var` declarations should appear at the top of their
1340
+ // varsOnTop: `var` declarations should appear at the top of their
1341
1341
  // function/script scope.
1342
1342
  type varsOnTop struct{}
1343
1343