@ttsc/lint 0.13.0 → 0.14.0-dev.20260528
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.
- package/README.md +948 -69
- package/lib/defaultFormat.d.ts +9 -6
- package/lib/defaultFormat.js +9 -6
- package/lib/defaultFormat.js.map +1 -1
- package/lib/index.d.ts +46 -0
- package/lib/index.js +60 -37
- package/lib/index.js.map +1 -1
- package/lib/structures/ITtscLintConfig.d.ts +12 -6
- package/lib/structures/{ITtscLintFormatConfig.d.ts → ITtscLintFormat.d.ts} +2 -2
- package/lib/structures/{TtscLintRuleMap.js → ITtscLintFormat.js} +1 -1
- package/lib/structures/ITtscLintFormat.js.map +1 -0
- package/lib/structures/TtscLintRuleSetting.d.ts +49 -0
- package/lib/structures/{TtscLintRuleOptions.js → TtscLintRuleSetting.js} +1 -1
- package/lib/structures/TtscLintRuleSetting.js.map +1 -0
- package/lib/structures/index.d.ts +3 -4
- package/lib/structures/index.js +3 -4
- package/lib/structures/index.js.map +1 -1
- package/lib/structures/rules/ITtscLintBoundariesRuleOptions.d.ts +104 -0
- package/lib/structures/rules/ITtscLintBoundariesRuleOptions.js +14 -0
- package/lib/structures/rules/ITtscLintBoundariesRuleOptions.js.map +1 -0
- package/lib/structures/rules/ITtscLintBoundariesRules.d.ts +79 -0
- package/lib/structures/rules/ITtscLintBoundariesRules.js +3 -0
- package/lib/structures/rules/ITtscLintBoundariesRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintContributorRules.d.ts +17 -0
- package/lib/structures/rules/ITtscLintContributorRules.js +3 -0
- package/lib/structures/rules/ITtscLintContributorRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintCoreRules.d.ts +1257 -0
- package/lib/structures/{ITtscLintFormatConfig.js → rules/ITtscLintCoreRules.js} +1 -1
- package/lib/structures/rules/ITtscLintCoreRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintCypressRuleOptions.d.ts +17 -0
- package/lib/structures/rules/ITtscLintCypressRuleOptions.js +10 -0
- package/lib/structures/rules/ITtscLintCypressRuleOptions.js.map +1 -0
- package/lib/structures/rules/ITtscLintCypressRules.d.ts +129 -0
- package/lib/structures/rules/ITtscLintCypressRules.js +3 -0
- package/lib/structures/rules/ITtscLintCypressRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintFunctionalRuleOptions.d.ts +157 -0
- package/lib/structures/rules/ITtscLintFunctionalRuleOptions.js +13 -0
- package/lib/structures/rules/ITtscLintFunctionalRuleOptions.js.map +1 -0
- package/lib/structures/rules/ITtscLintFunctionalRules.d.ts +167 -0
- package/lib/structures/rules/ITtscLintFunctionalRules.js +3 -0
- package/lib/structures/rules/ITtscLintFunctionalRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintJestRules.d.ts +201 -0
- package/lib/structures/rules/ITtscLintJestRules.js +3 -0
- package/lib/structures/rules/ITtscLintJestRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintJsdocRules.d.ts +140 -0
- package/lib/structures/rules/ITtscLintJsdocRules.js +3 -0
- package/lib/structures/rules/ITtscLintJsdocRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintJsxA11yRules.d.ts +302 -0
- package/lib/structures/rules/ITtscLintJsxA11yRules.js +3 -0
- package/lib/structures/rules/ITtscLintJsxA11yRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintNextjsRules.d.ts +185 -0
- package/lib/structures/rules/ITtscLintNextjsRules.js +3 -0
- package/lib/structures/rules/ITtscLintNextjsRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintPlaywrightRules.d.ts +330 -0
- package/lib/structures/rules/ITtscLintPlaywrightRules.js +3 -0
- package/lib/structures/rules/ITtscLintPlaywrightRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintPromiseRules.d.ts +188 -0
- package/lib/structures/rules/ITtscLintPromiseRules.js +3 -0
- package/lib/structures/rules/ITtscLintPromiseRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintReactPerfRuleOptions.d.ts +18 -0
- package/lib/structures/rules/ITtscLintReactPerfRuleOptions.js +8 -0
- package/lib/structures/rules/ITtscLintReactPerfRuleOptions.js.map +1 -0
- package/lib/structures/rules/ITtscLintReactPerfRules.d.ts +51 -0
- package/lib/structures/rules/ITtscLintReactPerfRules.js +3 -0
- package/lib/structures/rules/ITtscLintReactPerfRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintReactRuleOptions.d.ts +39 -0
- package/lib/structures/rules/ITtscLintReactRuleOptions.js +12 -0
- package/lib/structures/rules/ITtscLintReactRuleOptions.js.map +1 -0
- package/lib/structures/rules/ITtscLintReactRules.d.ts +289 -0
- package/lib/structures/rules/ITtscLintReactRules.js +3 -0
- package/lib/structures/rules/ITtscLintReactRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintRegexpRules.d.ts +190 -0
- package/lib/structures/rules/ITtscLintRegexpRules.js +3 -0
- package/lib/structures/rules/ITtscLintRegexpRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintRuleOptionsMap.d.ts +66 -0
- package/lib/structures/rules/ITtscLintRuleOptionsMap.js +3 -0
- package/lib/structures/rules/ITtscLintRuleOptionsMap.js.map +1 -0
- package/lib/structures/rules/ITtscLintRules.d.ts +55 -0
- package/lib/structures/{TtscLintRule.js → rules/ITtscLintRules.js} +1 -1
- package/lib/structures/rules/ITtscLintRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintSecurityRules.d.ts +148 -0
- package/lib/structures/rules/ITtscLintSecurityRules.js +3 -0
- package/lib/structures/rules/ITtscLintSecurityRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintSolidRules.d.ts +181 -0
- package/lib/structures/rules/ITtscLintSolidRules.js +3 -0
- package/lib/structures/rules/ITtscLintSolidRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintStorybookRuleOptions.d.ts +21 -0
- package/lib/structures/rules/ITtscLintStorybookRuleOptions.js +9 -0
- package/lib/structures/rules/ITtscLintStorybookRuleOptions.js.map +1 -0
- package/lib/structures/rules/ITtscLintStorybookRules.d.ts +174 -0
- package/lib/structures/rules/ITtscLintStorybookRules.js +3 -0
- package/lib/structures/rules/ITtscLintStorybookRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintTanstackQueryRules.d.ts +94 -0
- package/lib/structures/rules/ITtscLintTanstackQueryRules.js +3 -0
- package/lib/structures/rules/ITtscLintTanstackQueryRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintTestingLibraryRuleOptions.d.ts +22 -0
- package/lib/structures/rules/ITtscLintTestingLibraryRuleOptions.js +10 -0
- package/lib/structures/rules/ITtscLintTestingLibraryRuleOptions.js.map +1 -0
- package/lib/structures/rules/ITtscLintTestingLibraryRules.d.ts +310 -0
- package/lib/structures/rules/ITtscLintTestingLibraryRules.js +3 -0
- package/lib/structures/rules/ITtscLintTestingLibraryRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintTypeScriptRules.d.ts +1132 -0
- package/lib/structures/rules/ITtscLintTypeScriptRules.js +3 -0
- package/lib/structures/rules/ITtscLintTypeScriptRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintUnicornRules.d.ts +997 -0
- package/lib/structures/rules/ITtscLintUnicornRules.js +3 -0
- package/lib/structures/rules/ITtscLintUnicornRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintVitestRules.d.ts +141 -0
- package/lib/structures/rules/ITtscLintVitestRules.js +3 -0
- package/lib/structures/rules/ITtscLintVitestRules.js.map +1 -0
- package/lib/structures/rules/index.d.ts +31 -0
- package/lib/structures/rules/index.js +48 -0
- package/lib/structures/rules/index.js.map +1 -0
- package/linthost/ast_helpers.go +30 -5
- package/linthost/compile.go +33 -2
- package/linthost/config.go +48 -17
- package/linthost/config_format.go +9 -9
- package/linthost/directives.go +67 -25
- package/linthost/dispatch.go +14 -3
- package/linthost/engine.go +160 -40
- package/linthost/fix.go +2 -2
- package/linthost/flags_gen.go +17 -15
- package/linthost/host.go +40 -3
- package/linthost/lsp.go +747 -0
- package/linthost/print_dispatch.go +2 -2
- package/linthost/print_nodes_function.go +2 -2
- package/linthost/print_nodes_object.go +1 -1
- package/linthost/rule_names.go +14 -0
- package/linthost/rules_arrays.go +2 -2
- package/linthost/rules_boundaries.go +532 -0
- package/linthost/rules_camelcase.go +133 -0
- package/linthost/rules_complexity.go +94 -0
- package/linthost/rules_consistent_return.go +130 -0
- package/linthost/rules_console.go +1 -1
- package/linthost/rules_core_extra.go +739 -0
- package/linthost/rules_curly.go +70 -0
- package/linthost/rules_cypress.go +608 -0
- package/linthost/rules_debugger.go +2 -2
- package/linthost/rules_default_case.go +39 -0
- package/linthost/rules_default_case_last.go +46 -0
- package/linthost/rules_dupes.go +3 -3
- package/linthost/rules_empty.go +3 -3
- package/linthost/rules_escape.go +44 -24
- package/linthost/rules_eval.go +2 -2
- package/linthost/rules_finally.go +2 -2
- package/linthost/rules_format_jsdoc.go +1 -1
- package/linthost/rules_format_print_width.go +9 -9
- package/linthost/rules_format_quotes.go +1 -1
- package/linthost/rules_format_semi.go +1 -1
- package/linthost/rules_format_sort_imports.go +1 -1
- package/linthost/rules_format_trailing_comma.go +1 -1
- package/linthost/rules_functional.go +967 -0
- package/linthost/rules_gap.go +24 -45
- package/linthost/rules_grouped_accessor_pairs.go +87 -0
- package/linthost/rules_guard_for_in.go +198 -0
- package/linthost/rules_id_length.go +77 -0
- package/linthost/rules_imports.go +70 -2
- package/linthost/rules_init_declarations.go +53 -0
- package/linthost/rules_jest.go +618 -0
- package/linthost/rules_jsdoc.go +502 -0
- package/linthost/rules_jsx_a11y.go +1264 -0
- package/linthost/rules_logic.go +12 -12
- package/linthost/rules_loops.go +1 -1
- package/linthost/rules_max_classes_per_file.go +58 -0
- package/linthost/rules_max_depth.go +83 -0
- package/linthost/rules_max_lines.go +101 -0
- package/linthost/rules_max_lines_per_function.go +57 -0
- package/linthost/rules_max_nested_callbacks.go +61 -0
- package/linthost/rules_max_params.go +49 -0
- package/linthost/rules_max_statements.go +59 -0
- package/linthost/rules_misc.go +1 -1
- package/linthost/rules_nextjs.go +697 -0
- package/linthost/rules_no_else_return.go +75 -0
- package/linthost/rules_no_empty_named_blocks.go +91 -0
- package/linthost/rules_no_extend_native.go +51 -0
- package/linthost/rules_no_import_assign.go +140 -0
- package/linthost/rules_no_invalid_this.go +52 -0
- package/linthost/rules_no_loop_func.go +85 -0
- package/linthost/rules_no_magic_numbers.go +123 -0
- package/linthost/rules_no_mixed_operators.go +80 -0
- package/linthost/rules_no_param_reassign.go +98 -0
- package/linthost/rules_no_redeclare.go +270 -0
- package/linthost/rules_no_restricted_imports.go +105 -0
- package/linthost/rules_no_restricted_syntax.go +49 -0
- package/linthost/rules_no_shadow.go +147 -0
- package/linthost/rules_no_unreachable.go +77 -0
- package/linthost/rules_no_useless_assignment.go +120 -0
- package/linthost/rules_no_useless_constructor.go +245 -0
- package/linthost/rules_no_useless_return.go +51 -0
- package/linthost/rules_params.go +1 -1
- package/linthost/rules_playwright.go +788 -0
- package/linthost/rules_prefer_arrow_callback.go +124 -0
- package/linthost/rules_prefer_destructuring.go +98 -0
- package/linthost/rules_prefer_named_capture_group.go +129 -0
- package/linthost/rules_prefer_rest_params.go +94 -0
- package/linthost/rules_problems.go +41 -30
- package/linthost/rules_promise.go +1128 -73
- package/linthost/rules_protos.go +2 -2
- package/linthost/rules_react.go +773 -0
- package/linthost/rules_react_extras.go +227 -0
- package/linthost/rules_react_hooks.go +848 -0
- package/linthost/rules_react_perf.go +293 -0
- package/linthost/rules_react_refresh.go +583 -0
- package/linthost/rules_regexp.go +410 -0
- package/linthost/rules_security.go +830 -0
- package/linthost/rules_self.go +2 -2
- package/linthost/rules_solid.go +1073 -0
- package/linthost/rules_sort_imports.go +69 -0
- package/linthost/rules_sort_keys.go +134 -0
- package/linthost/rules_storybook.go +1176 -0
- package/linthost/rules_strings.go +4 -4
- package/linthost/rules_suggestions.go +38 -38
- package/linthost/rules_tanstack_query.go +844 -0
- package/linthost/rules_testing_library.go +1204 -0
- package/linthost/rules_throw.go +1 -1
- package/linthost/rules_ts.go +19 -19
- package/linthost/rules_ts_async.go +399 -0
- package/linthost/rules_ts_class_literal_property_style.go +115 -0
- package/linthost/rules_ts_consistent_type_exports.go +256 -0
- package/linthost/rules_ts_explicit_function_return_type.go +67 -0
- package/linthost/rules_ts_extra.go +155 -36
- package/linthost/rules_ts_no_base_to_string.go +218 -0
- package/linthost/rules_ts_no_confusing_void.go +72 -0
- package/linthost/rules_ts_no_deprecated.go +195 -0
- package/linthost/rules_ts_no_for_in_array.go +84 -0
- package/linthost/rules_ts_no_magic_numbers.go +124 -0
- package/linthost/rules_ts_no_meaningless_void_operator.go +84 -0
- package/linthost/rules_ts_no_misused_spread.go +104 -0
- package/linthost/rules_ts_no_redundant_type_constituents.go +113 -0
- package/linthost/rules_ts_no_restricted_types.go +62 -0
- package/linthost/rules_ts_no_unnecessary_boolean_literal_compare.go +129 -0
- package/linthost/rules_ts_no_unnecessary_condition.go +250 -0
- package/linthost/rules_ts_no_unnecessary_qualifier.go +118 -0
- package/linthost/rules_ts_no_unnecessary_template_expression.go +178 -0
- package/linthost/rules_ts_no_unnecessary_type_arguments.go +234 -0
- package/linthost/rules_ts_no_unnecessary_type_assertion.go +157 -0
- package/linthost/rules_ts_no_unsafe_argument.go +82 -0
- package/linthost/rules_ts_no_unsafe_assignment.go +102 -0
- package/linthost/rules_ts_no_unsafe_call.go +82 -0
- package/linthost/rules_ts_no_unsafe_enum_comparison.go +235 -0
- package/linthost/rules_ts_no_unsafe_member_access.go +58 -0
- package/linthost/rules_ts_no_unsafe_return.go +126 -0
- package/linthost/rules_ts_no_unsafe_unary_minus.go +81 -0
- package/linthost/rules_ts_no_useless_constructor.go +52 -0
- package/linthost/rules_ts_non_nullable_type_assertion_style.go +108 -0
- package/linthost/rules_ts_parameter_properties.go +38 -0
- package/linthost/rules_ts_prefer_find.go +178 -0
- package/linthost/rules_ts_prefer_includes.go +255 -0
- package/linthost/rules_ts_prefer_nullish_coalescing.go +104 -0
- package/linthost/rules_ts_prefer_optional_chain.go +228 -0
- package/linthost/rules_ts_prefer_promise_reject_errors.go +176 -0
- package/linthost/rules_ts_prefer_readonly.go +73 -0
- package/linthost/rules_ts_prefer_reduce_type_parameter.go +116 -0
- package/linthost/rules_ts_prefer_regexp_exec.go +122 -0
- package/linthost/rules_ts_prefer_return_this_type.go +135 -0
- package/linthost/rules_ts_prefer_string_starts_ends_with.go +360 -0
- package/linthost/rules_ts_promise_function_async.go +77 -0
- package/linthost/rules_ts_related_getter_setter_pairs.go +113 -0
- package/linthost/rules_ts_require_array_sort_compare.go +96 -0
- package/linthost/rules_ts_restrict_plus_operands.go +127 -0
- package/linthost/rules_ts_restrict_template_expressions.go +95 -0
- package/linthost/rules_ts_simple.go +387 -0
- package/linthost/rules_ts_sort_type_constituents.go +144 -0
- package/linthost/rules_ts_strict_boolean_expressions.go +157 -0
- package/linthost/rules_ts_switch_exhaustiveness_check.go +147 -0
- package/linthost/rules_ts_unbound_method.go +126 -0
- package/linthost/rules_tsdoc.go +136 -0
- package/linthost/rules_unicorn_better_regex.go +27 -0
- package/linthost/rules_unicorn_catch_error_name.go +46 -0
- package/linthost/rules_unicorn_consistent_assert.go +47 -0
- package/linthost/rules_unicorn_consistent_date_clone.go +54 -0
- package/linthost/rules_unicorn_consistent_destructuring.go +25 -0
- package/linthost/rules_unicorn_consistent_empty_array_spread.go +62 -0
- package/linthost/rules_unicorn_consistent_existence_index_check.go +80 -0
- package/linthost/rules_unicorn_consistent_function_scoping.go +25 -0
- package/linthost/rules_unicorn_consistent_template_literal_escape.go +25 -0
- package/linthost/rules_unicorn_custom_error_definition.go +138 -0
- package/linthost/rules_unicorn_empty_brace_spaces.go +73 -0
- package/linthost/rules_unicorn_error_message.go +64 -0
- package/linthost/rules_unicorn_escape_case.go +51 -0
- package/linthost/rules_unicorn_expiring_todo_comments.go +78 -0
- package/linthost/rules_unicorn_explicit_length_check.go +88 -0
- package/linthost/rules_unicorn_filename_case.go +29 -0
- package/linthost/rules_unicorn_import_style.go +28 -0
- package/linthost/rules_unicorn_isolated_functions.go +29 -0
- package/linthost/rules_unicorn_new_for_builtins.go +87 -0
- package/linthost/rules_unicorn_no_abusive_eslint_disable.go +63 -0
- package/linthost/rules_unicorn_no_accessor_recursion.go +115 -0
- package/linthost/rules_unicorn_no_anonymous_default_export.go +74 -0
- package/linthost/rules_unicorn_no_array_callback_reference.go +65 -0
- package/linthost/rules_unicorn_no_array_for_each.go +40 -0
- package/linthost/rules_unicorn_no_array_method_this_argument.go +61 -0
- package/linthost/rules_unicorn_no_array_reduce.go +41 -0
- package/linthost/rules_unicorn_no_array_reverse.go +44 -0
- package/linthost/rules_unicorn_no_array_sort.go +43 -0
- package/linthost/rules_unicorn_no_await_expression_member.go +40 -0
- package/linthost/rules_unicorn_no_await_in_promise_methods.go +69 -0
- package/linthost/rules_unicorn_no_console_spaces.go +61 -0
- package/linthost/rules_unicorn_no_document_cookie.go +41 -0
- package/linthost/rules_unicorn_no_empty_file.go +44 -0
- package/linthost/rules_unicorn_no_for_loop.go +102 -0
- package/linthost/rules_unicorn_no_hex_escape.go +42 -0
- package/linthost/rules_unicorn_no_immediate_mutation.go +90 -0
- package/linthost/rules_unicorn_no_instanceof_builtins.go +66 -0
- package/linthost/rules_unicorn_no_invalid_fetch_options.go +79 -0
- package/linthost/rules_unicorn_no_invalid_remove_event_listener.go +51 -0
- package/linthost/rules_unicorn_no_keyword_prefix.go +101 -0
- package/linthost/rules_unicorn_no_lonely_if.go +44 -0
- package/linthost/rules_unicorn_no_magic_array_flat_depth.go +51 -0
- package/linthost/rules_unicorn_no_named_default.go +54 -0
- package/linthost/rules_unicorn_no_negated_condition.go +85 -0
- package/linthost/rules_unicorn_no_negation_in_equality_check.go +50 -0
- package/linthost/rules_unicorn_no_nested_ternary.go +43 -0
- package/linthost/rules_unicorn_no_new_array.go +30 -0
- package/linthost/rules_unicorn_no_new_buffer.go +31 -0
- package/linthost/rules_unicorn_no_null.go +24 -0
- package/linthost/rules_unicorn_no_object_as_default_parameter.go +48 -0
- package/linthost/rules_unicorn_no_process_exit.go +43 -0
- package/linthost/rules_unicorn_no_single_promise_in_promise_methods.go +59 -0
- package/linthost/rules_unicorn_no_static_only_class.go +56 -0
- package/linthost/rules_unicorn_no_thenable.go +74 -0
- package/linthost/rules_unicorn_no_this_assignment.go +35 -0
- package/linthost/rules_unicorn_no_typeof_undefined.go +58 -0
- package/linthost/rules_unicorn_no_unnecessary_array_flat_depth.go +49 -0
- package/linthost/rules_unicorn_no_unnecessary_array_splice_count.go +70 -0
- package/linthost/rules_unicorn_no_unnecessary_await.go +51 -0
- package/linthost/rules_unicorn_no_unnecessary_polyfills.go +32 -0
- package/linthost/rules_unicorn_no_unnecessary_slice_end.go +48 -0
- package/linthost/rules_unicorn_no_unreadable_array_destructuring.go +115 -0
- package/linthost/rules_unicorn_no_unreadable_iife.go +50 -0
- package/linthost/rules_unicorn_no_unused_properties.go +30 -0
- package/linthost/rules_unicorn_no_useless_collection_argument.go +63 -0
- package/linthost/rules_unicorn_no_useless_error_capture_stack_trace.go +46 -0
- package/linthost/rules_unicorn_no_useless_fallback_in_spread.go +81 -0
- package/linthost/rules_unicorn_no_useless_iterator_to_array.go +72 -0
- package/linthost/rules_unicorn_no_useless_length_check.go +144 -0
- package/linthost/rules_unicorn_no_useless_promise_resolve_reject.go +81 -0
- package/linthost/rules_unicorn_no_useless_spread.go +67 -0
- package/linthost/rules_unicorn_no_useless_switch_case.go +55 -0
- package/linthost/rules_unicorn_no_useless_undefined.go +55 -0
- package/linthost/rules_unicorn_no_zero_fractions.go +52 -0
- package/linthost/rules_unicorn_number_literal_case.go +69 -0
- package/linthost/rules_unicorn_numeric_separators_style.go +75 -0
- package/linthost/rules_unicorn_prefer_add_event_listener.go +66 -0
- package/linthost/rules_unicorn_prefer_array_find.go +51 -0
- package/linthost/rules_unicorn_prefer_array_flat.go +52 -0
- package/linthost/rules_unicorn_prefer_array_flat_map.go +63 -0
- package/linthost/rules_unicorn_prefer_array_index_of.go +147 -0
- package/linthost/rules_unicorn_prefer_array_some.go +67 -0
- package/linthost/rules_unicorn_prefer_at.go +77 -0
- package/linthost/rules_unicorn_prefer_bigint_literals.go +77 -0
- package/linthost/rules_unicorn_prefer_blob_reading_methods.go +44 -0
- package/linthost/rules_unicorn_prefer_class_fields.go +93 -0
- package/linthost/rules_unicorn_prefer_classlist_toggle.go +120 -0
- package/linthost/rules_unicorn_prefer_code_point.go +49 -0
- package/linthost/rules_unicorn_prefer_date_now.go +78 -0
- package/linthost/rules_unicorn_prefer_default_parameters.go +144 -0
- package/linthost/rules_unicorn_prefer_dom_node_append.go +40 -0
- package/linthost/rules_unicorn_prefer_dom_node_dataset.go +55 -0
- package/linthost/rules_unicorn_prefer_dom_node_remove.go +41 -0
- package/linthost/rules_unicorn_prefer_dom_node_text_content.go +37 -0
- package/linthost/rules_unicorn_prefer_event_target.go +36 -0
- package/linthost/rules_unicorn_prefer_export_from.go +129 -0
- package/linthost/rules_unicorn_prefer_global_this.go +127 -0
- package/linthost/rules_unicorn_prefer_import_meta_properties.go +66 -0
- package/linthost/rules_unicorn_prefer_includes.go +149 -0
- package/linthost/rules_unicorn_prefer_json_parse_buffer.go +65 -0
- package/linthost/rules_unicorn_prefer_keyboard_event_key.go +38 -0
- package/linthost/rules_unicorn_prefer_logical_operator_over_ternary.go +48 -0
- package/linthost/rules_unicorn_prefer_math_min_max.go +60 -0
- package/linthost/rules_unicorn_prefer_math_trunc.go +62 -0
- package/linthost/rules_unicorn_prefer_modern_dom_apis.go +47 -0
- package/linthost/rules_unicorn_prefer_modern_math_apis.go +70 -0
- package/linthost/rules_unicorn_prefer_module.go +50 -0
- package/linthost/rules_unicorn_prefer_native_coercion_functions.go +114 -0
- package/linthost/rules_unicorn_prefer_negative_index.go +74 -0
- package/linthost/rules_unicorn_prefer_node_protocol.go +122 -0
- package/linthost/rules_unicorn_prefer_number_properties.go +88 -0
- package/linthost/rules_unicorn_prefer_object_from_entries.go +55 -0
- package/linthost/rules_unicorn_prefer_optional_catch_binding.go +62 -0
- package/linthost/rules_unicorn_prefer_prototype_methods.go +54 -0
- package/linthost/rules_unicorn_prefer_query_selector.go +56 -0
- package/linthost/rules_unicorn_prefer_reflect_apply.go +36 -0
- package/linthost/rules_unicorn_prefer_regexp_test_rule.go +80 -0
- package/linthost/rules_unicorn_prefer_response_static_json.go +53 -0
- package/linthost/rules_unicorn_prefer_set_has.go +42 -0
- package/linthost/rules_unicorn_prefer_set_size.go +48 -0
- package/linthost/rules_unicorn_prefer_simple_condition_first.go +34 -0
- package/linthost/rules_unicorn_prefer_single_call.go +96 -0
- package/linthost/rules_unicorn_prefer_spread.go +51 -0
- package/linthost/rules_unicorn_prefer_string_raw.go +43 -0
- package/linthost/rules_unicorn_prefer_string_replace_all.go +95 -0
- package/linthost/rules_unicorn_prefer_string_slice.go +43 -0
- package/linthost/rules_unicorn_prefer_string_starts_ends_with.go +148 -0
- package/linthost/rules_unicorn_prefer_string_trim_start_end.go +48 -0
- package/linthost/rules_unicorn_prefer_structured_clone.go +71 -0
- package/linthost/rules_unicorn_prefer_switch.go +103 -0
- package/linthost/rules_unicorn_prefer_ternary.go +71 -0
- package/linthost/rules_unicorn_prefer_top_level_await.go +72 -0
- package/linthost/rules_unicorn_prefer_type_error.go +127 -0
- package/linthost/rules_unicorn_prevent_abbreviations.go +127 -0
- package/linthost/rules_unicorn_relative_url_style.go +49 -0
- package/linthost/rules_unicorn_require_array_join_separator.go +45 -0
- package/linthost/rules_unicorn_require_module_attributes.go +54 -0
- package/linthost/rules_unicorn_require_module_specifiers.go +55 -0
- package/linthost/rules_unicorn_require_number_to_fixed_digits_argument.go +43 -0
- package/linthost/rules_unicorn_require_post_message_target_origin.go +44 -0
- package/linthost/rules_unicorn_string_content.go +27 -0
- package/linthost/rules_unicorn_switch_case_braces.go +42 -0
- package/linthost/rules_unicorn_switch_case_break_position.go +31 -0
- package/linthost/rules_unicorn_template_indent.go +28 -0
- package/linthost/rules_unicorn_text_encoding_identifier_case.go +72 -0
- package/linthost/rules_unicorn_throw_new_error.go +61 -0
- package/linthost/rules_var.go +10 -4
- package/linthost/rules_vitest.go +568 -0
- package/package.json +3 -3
- package/plugin/main.go +49 -3
- package/rule/astutil/astutil.go +10 -3
- package/rule/rule.go +12 -10
- package/src/defaultFormat.ts +11 -8
- package/src/index.ts +65 -43
- package/src/structures/ITtscLintConfig.ts +12 -6
- package/src/structures/{ITtscLintFormatConfig.ts → ITtscLintFormat.ts} +2 -2
- package/src/structures/TtscLintRuleSetting.ts +55 -0
- package/src/structures/index.ts +3 -4
- package/src/structures/rules/ITtscLintBoundariesRuleOptions.ts +128 -0
- package/src/structures/rules/ITtscLintBoundariesRules.ts +95 -0
- package/src/structures/rules/ITtscLintContributorRules.ts +21 -0
- package/src/structures/rules/ITtscLintCoreRules.ts +1406 -0
- package/src/structures/rules/ITtscLintCypressRuleOptions.ts +18 -0
- package/src/structures/rules/ITtscLintCypressRules.ts +145 -0
- package/src/structures/rules/ITtscLintFunctionalRuleOptions.ts +213 -0
- package/src/structures/rules/ITtscLintFunctionalRules.ts +202 -0
- package/src/structures/rules/ITtscLintJestRules.ts +220 -0
- package/src/structures/rules/ITtscLintJsdocRules.ts +153 -0
- package/src/structures/rules/ITtscLintJsxA11yRules.ts +339 -0
- package/src/structures/rules/ITtscLintNextjsRules.ts +206 -0
- package/src/structures/rules/ITtscLintPlaywrightRules.ts +361 -0
- package/src/structures/rules/ITtscLintPromiseRules.ts +205 -0
- package/src/structures/rules/ITtscLintReactPerfRuleOptions.ts +19 -0
- package/src/structures/rules/ITtscLintReactPerfRules.ts +55 -0
- package/src/structures/rules/ITtscLintReactRuleOptions.ts +43 -0
- package/src/structures/rules/ITtscLintReactRules.ts +321 -0
- package/src/structures/rules/ITtscLintRegexpRules.ts +212 -0
- package/src/structures/rules/ITtscLintRuleOptionsMap.ts +89 -0
- package/src/structures/rules/ITtscLintRules.ts +77 -0
- package/src/structures/rules/ITtscLintSecurityRules.ts +162 -0
- package/src/structures/rules/ITtscLintSolidRules.ts +202 -0
- package/src/structures/rules/ITtscLintStorybookRuleOptions.ts +23 -0
- package/src/structures/rules/ITtscLintStorybookRules.ts +193 -0
- package/src/structures/rules/ITtscLintTanstackQueryRules.ts +102 -0
- package/src/structures/rules/ITtscLintTestingLibraryRuleOptions.ts +24 -0
- package/src/structures/rules/ITtscLintTestingLibraryRules.ts +342 -0
- package/src/structures/rules/ITtscLintTypeScriptRules.ts +1230 -0
- package/src/structures/rules/ITtscLintUnicornRules.ts +1143 -0
- package/src/structures/rules/ITtscLintVitestRules.ts +154 -0
- package/src/structures/rules/index.ts +31 -0
- package/lib/structures/ITtscLintFormatConfig.js.map +0 -1
- package/lib/structures/TtscLintRule.d.ts +0 -17
- package/lib/structures/TtscLintRule.js.map +0 -1
- package/lib/structures/TtscLintRuleMap.d.ts +0 -46
- package/lib/structures/TtscLintRuleMap.js.map +0 -1
- package/lib/structures/TtscLintRuleOptions.d.ts +0 -137
- package/lib/structures/TtscLintRuleOptions.js.map +0 -1
- package/src/structures/TtscLintRule.ts +0 -160
- package/src/structures/TtscLintRuleMap.ts +0 -55
- package/src/structures/TtscLintRuleOptions.ts +0 -151
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
import type { ITtscLintTestingLibraryConsistentDataTestIdRuleOptions } from "./ITtscLintTestingLibraryRuleOptions";
|
|
2
|
+
import type { TtscLintRuleOptionsSetting, TtscLintRuleSetting } from "../TtscLintRuleSetting";
|
|
3
|
+
/**
|
|
4
|
+
* Testing Library test source rules from
|
|
5
|
+
* `eslint-plugin-testing-library`.
|
|
6
|
+
*
|
|
7
|
+
* Apply to TypeScript test sources that use any `@testing-library/*`
|
|
8
|
+
* package and detect Testing Library anti-patterns — `container`
|
|
9
|
+
* access, `ByTestId` overuse, missing `await` on async queries.
|
|
10
|
+
*
|
|
11
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library
|
|
12
|
+
*/
|
|
13
|
+
export interface ITtscLintTestingLibraryRules {
|
|
14
|
+
/**
|
|
15
|
+
* Require awaiting async user-event methods (`userEvent.click`,
|
|
16
|
+
* `userEvent.type`, ...) under the v14+ Promise-returning API.
|
|
17
|
+
*
|
|
18
|
+
* Without `await` the next assertion runs against the
|
|
19
|
+
* pre-interaction DOM, which masks effects the user action was
|
|
20
|
+
* meant to trigger.
|
|
21
|
+
*
|
|
22
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/await-async-events.md
|
|
23
|
+
*/
|
|
24
|
+
"testing-library/await-async-events"?: TtscLintRuleSetting;
|
|
25
|
+
/**
|
|
26
|
+
* Require awaiting `findBy*` and `findAllBy*` queries.
|
|
27
|
+
*
|
|
28
|
+
* They return a Promise that resolves once the element appears; an
|
|
29
|
+
* unawaited query yields a pending Promise that no matcher can
|
|
30
|
+
* assert against meaningfully.
|
|
31
|
+
*
|
|
32
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/await-async-queries.md
|
|
33
|
+
*/
|
|
34
|
+
"testing-library/await-async-queries"?: TtscLintRuleSetting;
|
|
35
|
+
/**
|
|
36
|
+
* Require awaiting `waitFor`, `waitForElementToBeRemoved`, and
|
|
37
|
+
* the other async Testing Library utilities.
|
|
38
|
+
*
|
|
39
|
+
* Skipping the `await` means the test moves on before the
|
|
40
|
+
* predicate settles, so subsequent assertions race against the
|
|
41
|
+
* wait.
|
|
42
|
+
*
|
|
43
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/await-async-utils.md
|
|
44
|
+
*/
|
|
45
|
+
"testing-library/await-async-utils"?: TtscLintRuleSetting;
|
|
46
|
+
/**
|
|
47
|
+
* Validate JSX `data-testid` attribute values against a regex
|
|
48
|
+
* pattern.
|
|
49
|
+
*
|
|
50
|
+
* The options object names the attribute and the pattern, keeping
|
|
51
|
+
* test ids consistently formed across components.
|
|
52
|
+
*
|
|
53
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/consistent-data-testid.md
|
|
54
|
+
*/
|
|
55
|
+
"testing-library/consistent-data-testid"?: TtscLintRuleOptionsSetting<ITtscLintTestingLibraryConsistentDataTestIdRuleOptions>;
|
|
56
|
+
/**
|
|
57
|
+
* Reject unnecessary `await` before synchronous event helpers
|
|
58
|
+
* (`fireEvent.click(...)`).
|
|
59
|
+
*
|
|
60
|
+
* The helpers return `boolean` rather than a Promise, so the
|
|
61
|
+
* `await` is a no-op that misleads readers into thinking the
|
|
62
|
+
* helper is async.
|
|
63
|
+
*
|
|
64
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-await-sync-events.md
|
|
65
|
+
*/
|
|
66
|
+
"testing-library/no-await-sync-events"?: TtscLintRuleSetting;
|
|
67
|
+
/**
|
|
68
|
+
* Reject unnecessary `await` before synchronous queries
|
|
69
|
+
* (`getBy*`, `queryBy*`).
|
|
70
|
+
*
|
|
71
|
+
* These queries return DOM nodes directly, so the `await` misleads
|
|
72
|
+
* readers and can shadow a genuine missing `await` on an adjacent
|
|
73
|
+
* `findBy*`.
|
|
74
|
+
*
|
|
75
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-await-sync-queries.md
|
|
76
|
+
*/
|
|
77
|
+
"testing-library/no-await-sync-queries"?: TtscLintRuleSetting;
|
|
78
|
+
/**
|
|
79
|
+
* Reject `container` destructuring and DOM query methods on the
|
|
80
|
+
* render result.
|
|
81
|
+
*
|
|
82
|
+
* `screen` queries the same document but matches how the user sees
|
|
83
|
+
* the page, keeping tests accessibility-first and resilient to
|
|
84
|
+
* layout refactors that move nodes inside the tree.
|
|
85
|
+
*
|
|
86
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-container.md
|
|
87
|
+
*/
|
|
88
|
+
"testing-library/no-container"?: TtscLintRuleSetting;
|
|
89
|
+
/**
|
|
90
|
+
* Reject `debug`, `prettyDOM`, `logTestingPlaygroundURL`, and
|
|
91
|
+
* related debugging utilities in committed tests.
|
|
92
|
+
*
|
|
93
|
+
* They print large DOM dumps to CI logs and only exist to help
|
|
94
|
+
* during local authoring.
|
|
95
|
+
*
|
|
96
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-debugging-utils.md
|
|
97
|
+
*/
|
|
98
|
+
"testing-library/no-debugging-utils"?: TtscLintRuleSetting;
|
|
99
|
+
/**
|
|
100
|
+
* Reject direct `@testing-library/dom` imports when a
|
|
101
|
+
* framework-specific package is installed.
|
|
102
|
+
*
|
|
103
|
+
* Framework packages (`@testing-library/react`, ...) re-export the
|
|
104
|
+
* same surface plus a `render` that wires the framework's
|
|
105
|
+
* lifecycle — importing `dom` directly skips that wiring.
|
|
106
|
+
*
|
|
107
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-dom-import.md
|
|
108
|
+
*/
|
|
109
|
+
"testing-library/no-dom-import"?: TtscLintRuleSetting;
|
|
110
|
+
/**
|
|
111
|
+
* Reject global RegExp flags (`/foo/g`) inside query text
|
|
112
|
+
* matchers.
|
|
113
|
+
*
|
|
114
|
+
* The matcher reuses the regex across nodes, so a global regex's
|
|
115
|
+
* persistent `lastIndex` state causes the second call to skip
|
|
116
|
+
* matches the first one found.
|
|
117
|
+
*
|
|
118
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-global-regexp-flag-in-query.md
|
|
119
|
+
*/
|
|
120
|
+
"testing-library/no-global-regexp-flag-in-query"?: TtscLintRuleSetting;
|
|
121
|
+
/**
|
|
122
|
+
* Reject manual `cleanup()` calls.
|
|
123
|
+
*
|
|
124
|
+
* Framework wrappers (`@testing-library/react`, ...) register
|
|
125
|
+
* automatic cleanup, so explicit calls duplicate the unmount and
|
|
126
|
+
* can race against the runner's between-test reset.
|
|
127
|
+
*
|
|
128
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-manual-cleanup.md
|
|
129
|
+
*/
|
|
130
|
+
"testing-library/no-manual-cleanup"?: TtscLintRuleSetting;
|
|
131
|
+
/**
|
|
132
|
+
* Reject direct DOM node traversal from query results
|
|
133
|
+
* (`.parentElement`, `.firstChild`, `.children`, ...).
|
|
134
|
+
*
|
|
135
|
+
* Traversal couples the test to incidental markup; another
|
|
136
|
+
* semantic query names what the assertion actually cares about.
|
|
137
|
+
*
|
|
138
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-node-access.md
|
|
139
|
+
*/
|
|
140
|
+
"testing-library/no-node-access"?: TtscLintRuleSetting;
|
|
141
|
+
/**
|
|
142
|
+
* Reject Promise-producing expressions passed to `fireEvent`,
|
|
143
|
+
* since `fireEvent` is synchronous and the Promise is dropped.
|
|
144
|
+
*
|
|
145
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-promise-in-fire-event.md
|
|
146
|
+
*/
|
|
147
|
+
"testing-library/no-promise-in-fire-event"?: TtscLintRuleSetting;
|
|
148
|
+
/**
|
|
149
|
+
* Reject `render(...)` inside lifecycle hooks (`beforeEach`,
|
|
150
|
+
* etc.).
|
|
151
|
+
*
|
|
152
|
+
* Each test should render its component directly so the arrange
|
|
153
|
+
* step is visible in-place and auto-cleanup runs between cases
|
|
154
|
+
* without sharing state.
|
|
155
|
+
*
|
|
156
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-render-in-lifecycle.md
|
|
157
|
+
*/
|
|
158
|
+
"testing-library/no-render-in-lifecycle"?: TtscLintRuleSetting;
|
|
159
|
+
/**
|
|
160
|
+
* Reject `*ByTestId` queries.
|
|
161
|
+
*
|
|
162
|
+
* Test ids couple the test to incidental markup and skip the
|
|
163
|
+
* accessibility tree that real users navigate; queries by role,
|
|
164
|
+
* label, or text describe the UI in user-visible terms instead.
|
|
165
|
+
*
|
|
166
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-test-id-queries.md
|
|
167
|
+
*/
|
|
168
|
+
"testing-library/no-test-id-queries"?: TtscLintRuleSetting;
|
|
169
|
+
/**
|
|
170
|
+
* Reject unnecessary `act(...)` wrappers around Testing Library
|
|
171
|
+
* helpers.
|
|
172
|
+
*
|
|
173
|
+
* `render`, `fireEvent`, and `userEvent` already wrap their work
|
|
174
|
+
* in `act`, so the extra wrapper is dead code that obscures the
|
|
175
|
+
* real state change.
|
|
176
|
+
*
|
|
177
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-unnecessary-act.md
|
|
178
|
+
*/
|
|
179
|
+
"testing-library/no-unnecessary-act"?: TtscLintRuleSetting;
|
|
180
|
+
/**
|
|
181
|
+
* Reject multiple assertions inside one `waitFor` callback —
|
|
182
|
+
* split into separate `waitFor`s so each retry boundary is
|
|
183
|
+
* narrow.
|
|
184
|
+
*
|
|
185
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-wait-for-multiple-assertions.md
|
|
186
|
+
*/
|
|
187
|
+
"testing-library/no-wait-for-multiple-assertions"?: TtscLintRuleSetting;
|
|
188
|
+
/**
|
|
189
|
+
* Reject side effects inside `waitFor` callbacks — `waitFor`
|
|
190
|
+
* retries the callback, so side effects fire repeatedly.
|
|
191
|
+
*
|
|
192
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-wait-for-side-effects.md
|
|
193
|
+
*/
|
|
194
|
+
"testing-library/no-wait-for-side-effects"?: TtscLintRuleSetting;
|
|
195
|
+
/**
|
|
196
|
+
* Reject snapshot assertions inside `waitFor`.
|
|
197
|
+
*
|
|
198
|
+
* `waitFor` retries until the callback stops throwing, so the
|
|
199
|
+
* captured snapshot is whichever pass happened to match — usually
|
|
200
|
+
* an intermediate render rather than the settled UI the test
|
|
201
|
+
* cares about.
|
|
202
|
+
*
|
|
203
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-wait-for-snapshot.md
|
|
204
|
+
*/
|
|
205
|
+
"testing-library/no-wait-for-snapshot"?: TtscLintRuleSetting;
|
|
206
|
+
/**
|
|
207
|
+
* Require explicit assertions on the result of standalone
|
|
208
|
+
* queries.
|
|
209
|
+
*
|
|
210
|
+
* A bare `screen.getByRole(...)` looks like an assertion but only
|
|
211
|
+
* checks presence (and only for `getBy*`); adding `expect(...)`
|
|
212
|
+
* makes the intent and the matched property obvious.
|
|
213
|
+
*
|
|
214
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-explicit-assert.md
|
|
215
|
+
*/
|
|
216
|
+
"testing-library/prefer-explicit-assert"?: TtscLintRuleSetting;
|
|
217
|
+
/**
|
|
218
|
+
* Prefer `findBy*` over `waitFor` wrapping a `getBy*`.
|
|
219
|
+
*
|
|
220
|
+
* `findBy*` is the dedicated retry-aware query; the manual
|
|
221
|
+
* combination duplicates its semantics and is easy to misconfigure
|
|
222
|
+
* (wrong timeout, missing `await`).
|
|
223
|
+
*
|
|
224
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-find-by.md
|
|
225
|
+
*/
|
|
226
|
+
"testing-library/prefer-find-by"?: TtscLintRuleSetting;
|
|
227
|
+
/**
|
|
228
|
+
* Avoid redundant `toBeInTheDocument()` around `getBy*` queries.
|
|
229
|
+
*
|
|
230
|
+
* `getBy*` already throws when nothing is found, so the extra
|
|
231
|
+
* matcher only restates what the query promises and adds noise to
|
|
232
|
+
* the failure trace.
|
|
233
|
+
*
|
|
234
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-implicit-assert.md
|
|
235
|
+
*/
|
|
236
|
+
"testing-library/prefer-implicit-assert"?: TtscLintRuleSetting;
|
|
237
|
+
/**
|
|
238
|
+
* Match presence and absence assertions to the query variant
|
|
239
|
+
* that already encodes the same semantic: `getBy*` for presence
|
|
240
|
+
* (throws when missing), `queryBy*` for absence (returns `null`
|
|
241
|
+
* when missing). Mixing the two yields confusing failure modes.
|
|
242
|
+
*
|
|
243
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-presence-queries.md
|
|
244
|
+
*/
|
|
245
|
+
"testing-library/prefer-presence-queries"?: TtscLintRuleSetting;
|
|
246
|
+
/**
|
|
247
|
+
* Prefer `queryBy*` inside `waitForElementToBeRemoved`.
|
|
248
|
+
*
|
|
249
|
+
* The helper retries the callback against the disappearing
|
|
250
|
+
* element, but `getBy*` throws on the very state being waited for,
|
|
251
|
+
* which produces a noisy error in the trace each retry.
|
|
252
|
+
*
|
|
253
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-query-by-disappearance.md
|
|
254
|
+
*/
|
|
255
|
+
"testing-library/prefer-query-by-disappearance"?: TtscLintRuleSetting;
|
|
256
|
+
/**
|
|
257
|
+
* Prefer jest-dom document matchers (`toBeVisible`,
|
|
258
|
+
* `toHaveTextContent`, ...) over generic equality checks on
|
|
259
|
+
* Testing Library queries.
|
|
260
|
+
*
|
|
261
|
+
* The dedicated matchers explain failures in terms of the DOM
|
|
262
|
+
* property they assert on, not a structural diff of nodes.
|
|
263
|
+
*
|
|
264
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-query-matchers.md
|
|
265
|
+
*/
|
|
266
|
+
"testing-library/prefer-query-matchers"?: TtscLintRuleSetting;
|
|
267
|
+
/**
|
|
268
|
+
* Prefer `screen.*` over queries on the render-result object.
|
|
269
|
+
*
|
|
270
|
+
* `screen` is the single global query target, so tests stay
|
|
271
|
+
* consistent regardless of which component is mounted and the
|
|
272
|
+
* render call's return value rarely needs destructuring.
|
|
273
|
+
*
|
|
274
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-screen-queries.md
|
|
275
|
+
*/
|
|
276
|
+
"testing-library/prefer-screen-queries"?: TtscLintRuleSetting;
|
|
277
|
+
/**
|
|
278
|
+
* Prefer `userEvent` over `fireEvent`.
|
|
279
|
+
*
|
|
280
|
+
* `userEvent` simulates the full sequence of DOM events a real
|
|
281
|
+
* user triggers (focus, keydown, input, change, ...) while
|
|
282
|
+
* `fireEvent` dispatches a single event and skips intermediate
|
|
283
|
+
* state.
|
|
284
|
+
*
|
|
285
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-user-event.md
|
|
286
|
+
*/
|
|
287
|
+
"testing-library/prefer-user-event"?: TtscLintRuleSetting;
|
|
288
|
+
/**
|
|
289
|
+
* Prefer `userEvent.setup()` (the v14+ instance pattern) over
|
|
290
|
+
* the static `userEvent.*` calls.
|
|
291
|
+
*
|
|
292
|
+
* The instance binds fresh pointer state per test, removing the
|
|
293
|
+
* cross-test focus and click bookkeeping that the static API
|
|
294
|
+
* leaks.
|
|
295
|
+
*
|
|
296
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-user-event-setup.md
|
|
297
|
+
*/
|
|
298
|
+
"testing-library/prefer-user-event-setup"?: TtscLintRuleSetting;
|
|
299
|
+
/**
|
|
300
|
+
* Require the variable assigned from `render(...)` to use one of
|
|
301
|
+
* the conventional names (`view`, `result`, ...).
|
|
302
|
+
*
|
|
303
|
+
* The name is a reading cue: a non-conventional one usually
|
|
304
|
+
* signals that the destructured queries are being treated as a
|
|
305
|
+
* component surface instead of a render artifact.
|
|
306
|
+
*
|
|
307
|
+
* @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/render-result-naming-convention.md
|
|
308
|
+
*/
|
|
309
|
+
"testing-library/render-result-naming-convention"?: TtscLintRuleSetting;
|
|
310
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITtscLintTestingLibraryRules.js","sourceRoot":"","sources":["../../../src/structures/rules/ITtscLintTestingLibraryRules.ts"],"names":[],"mappings":""}
|