@ttsc/lint 0.14.0-dev.20260529.2 → 0.14.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.
- package/README.md +23 -25
- package/lib/defaultFormat.d.ts +10 -6
- package/lib/defaultFormat.js +10 -6
- package/lib/defaultFormat.js.map +1 -1
- package/lib/structures/ITtscLintConfig.d.ts +5 -5
- package/lib/structures/TtscLintRuleSetting.d.ts +19 -19
- package/lib/structures/{ITtscLintFormat.d.ts → format/ITtscLintFormat.d.ts} +45 -70
- package/lib/structures/format/ITtscLintFormat.js.map +1 -0
- package/lib/structures/format/ITtscLintFormatJsDoc.d.ts +15 -0
- package/lib/structures/format/ITtscLintFormatJsDoc.js +3 -0
- package/lib/structures/format/ITtscLintFormatJsDoc.js.map +1 -0
- package/lib/structures/format/ITtscLintFormatSortImports.d.ts +54 -0
- package/lib/structures/format/ITtscLintFormatSortImports.js +3 -0
- package/lib/structures/format/ITtscLintFormatSortImports.js.map +1 -0
- package/lib/structures/format/index.d.ts +3 -0
- package/lib/structures/format/index.js +20 -0
- package/lib/structures/format/index.js.map +1 -0
- package/lib/structures/index.d.ts +1 -1
- package/lib/structures/index.js +1 -1
- package/lib/structures/index.js.map +1 -1
- package/lib/structures/rules/ITtscLintBoundariesRuleOptions.d.ts +18 -27
- package/lib/structures/rules/ITtscLintBoundariesRuleOptions.js +4 -5
- package/lib/structures/rules/ITtscLintBoundariesRuleOptions.js.map +1 -1
- package/lib/structures/rules/ITtscLintBoundariesRules.d.ts +29 -33
- package/lib/structures/rules/ITtscLintContributorRules.d.ts +6 -7
- package/lib/structures/rules/ITtscLintCoreRules.d.ts +380 -408
- package/lib/structures/rules/ITtscLintCypressRuleOptions.d.ts +5 -5
- package/lib/structures/rules/ITtscLintCypressRuleOptions.js +2 -2
- package/lib/structures/rules/ITtscLintCypressRules.d.ts +34 -38
- package/lib/structures/rules/ITtscLintFunctionalRuleOptions.d.ts +21 -24
- package/lib/structures/rules/ITtscLintFunctionalRuleOptions.js +2 -2
- package/lib/structures/rules/ITtscLintFunctionalRules.d.ts +51 -56
- package/lib/structures/rules/ITtscLintJestRules.d.ts +63 -74
- package/lib/structures/rules/ITtscLintJsdocRules.d.ts +47 -54
- package/lib/structures/rules/ITtscLintJsxA11yRules.d.ts +94 -102
- package/lib/structures/rules/ITtscLintNextjsRules.d.ts +50 -55
- package/lib/structures/rules/ITtscLintPlaywrightRules.d.ts +104 -122
- package/lib/structures/rules/ITtscLintPromiseRules.d.ts +62 -71
- package/lib/structures/rules/ITtscLintReactPerfRuleOptions.d.ts +4 -4
- package/lib/structures/rules/ITtscLintReactPerfRules.d.ts +17 -19
- package/lib/structures/rules/ITtscLintReactRuleOptions.d.ts +8 -10
- package/lib/structures/rules/ITtscLintReactRuleOptions.js +1 -2
- package/lib/structures/rules/ITtscLintReactRuleOptions.js.map +1 -1
- package/lib/structures/rules/ITtscLintReactRules.d.ts +91 -104
- package/lib/structures/rules/ITtscLintRegexpRules.d.ts +46 -54
- package/lib/structures/rules/ITtscLintRuleOptionsMap.d.ts +7 -8
- package/lib/structures/rules/ITtscLintSecurityRules.d.ts +45 -52
- package/lib/structures/rules/ITtscLintSolidRules.d.ts +53 -56
- package/lib/structures/rules/ITtscLintStorybookRuleOptions.d.ts +3 -4
- package/lib/structures/rules/ITtscLintStorybookRules.d.ts +60 -69
- package/lib/structures/rules/ITtscLintTanstackQueryRules.d.ts +31 -37
- package/lib/structures/rules/ITtscLintTestingLibraryRuleOptions.d.ts +2 -3
- package/lib/structures/rules/ITtscLintTestingLibraryRules.d.ts +102 -119
- package/lib/structures/rules/ITtscLintTypeScriptRules.d.ts +460 -518
- package/lib/structures/rules/ITtscLintVitestRules.d.ts +43 -51
- package/linthost/config.go +89 -72
- package/linthost/config_format.go +265 -99
- package/linthost/directives.go +5 -1
- package/linthost/display_width.go +72 -0
- package/linthost/fix.go +26 -1
- package/linthost/format.go +222 -25
- package/linthost/format_editor_settings.go +262 -0
- package/linthost/lsp.go +8 -4
- package/linthost/print_dispatch.go +3 -0
- package/linthost/print_doc.go +13 -0
- package/linthost/print_engine.go +68 -11
- package/linthost/print_nodes_array.go +167 -5
- package/linthost/print_nodes_call.go +786 -77
- package/linthost/print_nodes_function.go +43 -0
- package/linthost/print_nodes_imports.go +64 -14
- package/linthost/print_nodes_list.go +214 -8
- package/linthost/print_nodes_object.go +14 -6
- package/linthost/print_nodes_ternary.go +147 -0
- package/linthost/rules_boundaries.go +400 -400
- package/linthost/rules_camelcase.go +81 -81
- package/linthost/rules_complexity.go +52 -51
- package/linthost/rules_consistent_return.go +81 -81
- package/linthost/rules_core_extra.go +472 -472
- package/linthost/rules_curly.go +43 -43
- package/linthost/rules_default_case.go +15 -15
- package/linthost/rules_default_case_last.go +22 -22
- package/linthost/rules_format_arrow_parens.go +213 -0
- package/linthost/rules_format_bracket_spacing.go +117 -0
- package/linthost/rules_format_clause_join.go +179 -0
- package/linthost/rules_format_declaration_header.go +664 -0
- package/linthost/rules_format_indent.go +616 -0
- package/linthost/rules_format_jsdoc.go +4 -4
- package/linthost/rules_format_orphan_semi.go +106 -0
- package/linthost/rules_format_parameter_properties.go +175 -0
- package/linthost/rules_format_print_width.go +180 -69
- package/linthost/rules_format_quote_props.go +169 -0
- package/linthost/rules_format_quotes.go +75 -29
- package/linthost/rules_format_semi.go +185 -10
- package/linthost/rules_format_sort_imports.go +517 -121
- package/linthost/rules_format_statement_split.go +368 -0
- package/linthost/rules_format_ternary_nullish_parens.go +77 -0
- package/linthost/rules_format_trailing_comma.go +21 -2
- package/linthost/rules_format_whitespace.go +336 -0
- package/linthost/rules_functional.go +688 -688
- package/linthost/rules_gap.go +146 -11
- package/linthost/rules_grouped_accessor_pairs.go +60 -60
- package/linthost/rules_guard_for_in.go +122 -122
- package/linthost/rules_id_length.go +44 -44
- package/linthost/rules_imports.go +11 -3
- package/linthost/rules_init_declarations.go +25 -25
- package/linthost/rules_jsx_a11y.go +844 -844
- package/linthost/rules_max_classes_per_file.go +24 -24
- package/linthost/rules_max_depth.go +43 -43
- package/linthost/rules_max_lines.go +53 -53
- package/linthost/rules_max_lines_per_function.go +28 -28
- package/linthost/rules_max_nested_callbacks.go +26 -26
- package/linthost/rules_max_params.go +20 -20
- package/linthost/rules_max_statements.go +29 -29
- package/linthost/rules_nextjs.go +5 -5
- package/linthost/rules_no_else_return.go +38 -38
- package/linthost/rules_no_empty_named_blocks.go +45 -45
- package/linthost/rules_no_import_assign.go +96 -96
- package/linthost/rules_no_invalid_this.go +19 -19
- package/linthost/rules_no_loop_func.go +43 -43
- package/linthost/rules_no_magic_numbers.go +60 -60
- package/linthost/rules_no_mixed_operators.go +44 -44
- package/linthost/rules_no_param_reassign.go +64 -64
- package/linthost/rules_no_restricted_imports.go +45 -45
- package/linthost/rules_no_restricted_syntax.go +17 -17
- package/linthost/rules_no_shadow.go +112 -112
- package/linthost/rules_no_unreachable.go +36 -36
- package/linthost/rules_no_useless_assignment.go +79 -79
- package/linthost/rules_no_useless_constructor.go +167 -167
- package/linthost/rules_no_useless_return.go +28 -28
- package/linthost/rules_prefer_arrow_callback.go +74 -74
- package/linthost/rules_prefer_destructuring.go +61 -61
- package/linthost/rules_prefer_named_capture_group.go +87 -87
- package/linthost/rules_prefer_rest_params.go +61 -61
- package/linthost/rules_promise.go +800 -800
- package/linthost/rules_react.go +600 -600
- package/linthost/rules_react_extras.go +162 -162
- package/linthost/rules_react_hooks.go +2 -2
- package/linthost/rules_react_perf.go +231 -231
- package/linthost/rules_regexp.go +293 -293
- package/linthost/rules_security.go +613 -613
- package/linthost/rules_sort_imports.go +37 -37
- package/linthost/rules_sort_keys.go +88 -88
- package/linthost/rules_suggestions.go +13 -0
- package/linthost/rules_ts.go +2 -2
- package/linthost/rules_ts_async.go +247 -247
- package/linthost/rules_ts_class_literal_property_style.go +64 -64
- package/linthost/rules_ts_consistent_type_exports.go +209 -209
- package/linthost/rules_ts_explicit_function_return_type.go +35 -35
- package/linthost/rules_ts_extra.go +6 -2
- package/linthost/rules_ts_no_base_to_string.go +140 -140
- package/linthost/rules_ts_no_confusing_void.go +28 -28
- package/linthost/rules_ts_no_deprecated.go +110 -110
- package/linthost/rules_ts_no_for_in_array.go +45 -45
- package/linthost/rules_ts_no_magic_numbers.go +67 -67
- package/linthost/rules_ts_no_meaningless_void_operator.go +44 -44
- package/linthost/rules_ts_no_misused_spread.go +64 -64
- package/linthost/rules_ts_no_redundant_type_constituents.go +72 -72
- package/linthost/rules_ts_no_restricted_types.go +28 -28
- package/linthost/rules_ts_no_unnecessary_boolean_literal_compare.go +87 -87
- package/linthost/rules_ts_no_unnecessary_condition.go +184 -184
- package/linthost/rules_ts_no_unnecessary_qualifier.go +72 -72
- package/linthost/rules_ts_no_unnecessary_template_expression.go +120 -120
- package/linthost/rules_ts_no_unnecessary_type_arguments.go +171 -171
- package/linthost/rules_ts_no_unnecessary_type_assertion.go +90 -90
- package/linthost/rules_ts_no_unsafe_argument.go +50 -50
- package/linthost/rules_ts_no_unsafe_assignment.go +60 -60
- package/linthost/rules_ts_no_unsafe_call.go +40 -40
- package/linthost/rules_ts_no_unsafe_enum_comparison.go +147 -147
- package/linthost/rules_ts_no_unsafe_member_access.go +29 -29
- package/linthost/rules_ts_no_unsafe_return.go +64 -64
- package/linthost/rules_ts_no_unsafe_unary_minus.go +42 -42
- package/linthost/rules_ts_no_useless_constructor.go +20 -20
- package/linthost/rules_ts_non_nullable_type_assertion_style.go +60 -60
- package/linthost/rules_ts_parameter_properties.go +10 -10
- package/linthost/rules_ts_prefer_find.go +116 -116
- package/linthost/rules_ts_prefer_includes.go +173 -173
- package/linthost/rules_ts_prefer_nullish_coalescing.go +54 -54
- package/linthost/rules_ts_prefer_optional_chain.go +156 -156
- package/linthost/rules_ts_prefer_promise_reject_errors.go +104 -104
- package/linthost/rules_ts_prefer_readonly.go +31 -31
- package/linthost/rules_ts_prefer_reduce_type_parameter.go +74 -74
- package/linthost/rules_ts_prefer_regexp_exec.go +69 -69
- package/linthost/rules_ts_prefer_return_this_type.go +79 -79
- package/linthost/rules_ts_prefer_string_starts_ends_with.go +237 -237
- package/linthost/rules_ts_promise_function_async.go +41 -41
- package/linthost/rules_ts_related_getter_setter_pairs.go +61 -61
- package/linthost/rules_ts_require_array_sort_compare.go +58 -58
- package/linthost/rules_ts_restrict_plus_operands.go +82 -82
- package/linthost/rules_ts_restrict_template_expressions.go +50 -50
- package/linthost/rules_ts_simple.go +249 -249
- package/linthost/rules_ts_sort_type_constituents.go +88 -88
- package/linthost/rules_ts_strict_boolean_expressions.go +103 -103
- package/linthost/rules_ts_switch_exhaustiveness_check.go +90 -90
- package/linthost/rules_ts_unbound_method.go +65 -65
- package/linthost/rules_tsdoc.go +88 -88
- package/linthost/rules_unicorn_better_regex.go +1 -1
- package/linthost/rules_unicorn_catch_error_name.go +19 -19
- package/linthost/rules_unicorn_consistent_assert.go +20 -20
- package/linthost/rules_unicorn_consistent_date_clone.go +27 -27
- package/linthost/rules_unicorn_consistent_destructuring.go +3 -3
- package/linthost/rules_unicorn_consistent_empty_array_spread.go +34 -34
- package/linthost/rules_unicorn_consistent_existence_index_check.go +42 -42
- package/linthost/rules_unicorn_consistent_function_scoping.go +3 -3
- package/linthost/rules_unicorn_consistent_template_literal_escape.go +3 -3
- package/linthost/rules_unicorn_custom_error_definition.go +92 -92
- package/linthost/rules_unicorn_empty_brace_spaces.go +47 -47
- package/linthost/rules_unicorn_error_message.go +34 -34
- package/linthost/rules_unicorn_escape_case.go +14 -14
- package/linthost/rules_unicorn_expiring_todo_comments.go +36 -36
- package/linthost/rules_unicorn_explicit_length_check.go +51 -51
- package/linthost/rules_unicorn_filename_case.go +1 -1
- package/linthost/rules_unicorn_import_style.go +1 -1
- package/linthost/rules_unicorn_isolated_functions.go +2 -2
- package/linthost/rules_unicorn_new_for_builtins.go +49 -49
- package/linthost/rules_unicorn_no_abusive_eslint_disable.go +31 -31
- package/linthost/rules_unicorn_no_accessor_recursion.go +69 -69
- package/linthost/rules_unicorn_no_anonymous_default_export.go +40 -40
- package/linthost/rules_unicorn_no_array_callback_reference.go +33 -33
- package/linthost/rules_unicorn_no_array_for_each.go +14 -14
- package/linthost/rules_unicorn_no_array_method_this_argument.go +29 -29
- package/linthost/rules_unicorn_no_array_reduce.go +15 -15
- package/linthost/rules_unicorn_no_array_reverse.go +17 -17
- package/linthost/rules_unicorn_no_array_sort.go +17 -17
- package/linthost/rules_unicorn_no_await_expression_member.go +12 -12
- package/linthost/rules_unicorn_no_await_in_promise_methods.go +38 -38
- package/linthost/rules_unicorn_no_console_spaces.go +30 -30
- package/linthost/rules_unicorn_no_document_cookie.go +13 -13
- package/linthost/rules_unicorn_no_empty_file.go +16 -16
- package/linthost/rules_unicorn_no_for_loop.go +58 -58
- package/linthost/rules_unicorn_no_hex_escape.go +11 -11
- package/linthost/rules_unicorn_no_immediate_mutation.go +55 -55
- package/linthost/rules_unicorn_no_instanceof_builtins.go +34 -34
- package/linthost/rules_unicorn_no_invalid_fetch_options.go +52 -52
- package/linthost/rules_unicorn_no_invalid_remove_event_listener.go +25 -25
- package/linthost/rules_unicorn_no_keyword_prefix.go +56 -56
- package/linthost/rules_unicorn_no_lonely_if.go +21 -21
- package/linthost/rules_unicorn_no_magic_array_flat_depth.go +22 -22
- package/linthost/rules_unicorn_no_named_default.go +25 -25
- package/linthost/rules_unicorn_no_negated_condition.go +54 -54
- package/linthost/rules_unicorn_no_negation_in_equality_check.go +23 -23
- package/linthost/rules_unicorn_no_nested_ternary.go +15 -15
- package/linthost/rules_unicorn_no_new_array.go +5 -5
- package/linthost/rules_unicorn_no_new_buffer.go +5 -5
- package/linthost/rules_unicorn_no_null.go +2 -2
- package/linthost/rules_unicorn_no_object_as_default_parameter.go +19 -19
- package/linthost/rules_unicorn_no_process_exit.go +17 -17
- package/linthost/rules_unicorn_no_single_promise_in_promise_methods.go +29 -29
- package/linthost/rules_unicorn_no_static_only_class.go +27 -27
- package/linthost/rules_unicorn_no_thenable.go +47 -47
- package/linthost/rules_unicorn_no_this_assignment.go +10 -10
- package/linthost/rules_unicorn_no_typeof_undefined.go +31 -31
- package/linthost/rules_unicorn_no_unnecessary_array_flat_depth.go +23 -23
- package/linthost/rules_unicorn_no_unnecessary_array_splice_count.go +37 -37
- package/linthost/rules_unicorn_no_unnecessary_await.go +24 -24
- package/linthost/rules_unicorn_no_unnecessary_slice_end.go +22 -22
- package/linthost/rules_unicorn_no_unreadable_array_destructuring.go +67 -67
- package/linthost/rules_unicorn_no_unreadable_iife.go +22 -22
- package/linthost/rules_unicorn_no_useless_collection_argument.go +34 -34
- package/linthost/rules_unicorn_no_useless_error_capture_stack_trace.go +18 -18
- package/linthost/rules_unicorn_no_useless_fallback_in_spread.go +49 -49
- package/linthost/rules_unicorn_no_useless_iterator_to_array.go +41 -41
- package/linthost/rules_unicorn_no_useless_length_check.go +82 -82
- package/linthost/rules_unicorn_no_useless_promise_resolve_reject.go +42 -42
- package/linthost/rules_unicorn_no_useless_spread.go +38 -38
- package/linthost/rules_unicorn_no_useless_switch_case.go +29 -29
- package/linthost/rules_unicorn_no_useless_undefined.go +25 -25
- package/linthost/rules_unicorn_no_zero_fractions.go +17 -17
- package/linthost/rules_unicorn_number_literal_case.go +33 -33
- package/linthost/rules_unicorn_numeric_separators_style.go +36 -36
- package/linthost/rules_unicorn_prefer_add_event_listener.go +30 -30
- package/linthost/rules_unicorn_prefer_array_find.go +27 -27
- package/linthost/rules_unicorn_prefer_array_flat.go +25 -25
- package/linthost/rules_unicorn_prefer_array_flat_map.go +37 -37
- package/linthost/rules_unicorn_prefer_array_index_of.go +108 -108
- package/linthost/rules_unicorn_prefer_array_some.go +43 -43
- package/linthost/rules_unicorn_prefer_at.go +42 -42
- package/linthost/rules_unicorn_prefer_bigint_literals.go +42 -42
- package/linthost/rules_unicorn_prefer_blob_reading_methods.go +15 -15
- package/linthost/rules_unicorn_prefer_class_fields.go +57 -57
- package/linthost/rules_unicorn_prefer_classlist_toggle.go +76 -76
- package/linthost/rules_unicorn_prefer_code_point.go +21 -21
- package/linthost/rules_unicorn_prefer_date_now.go +47 -47
- package/linthost/rules_unicorn_prefer_default_parameters.go +96 -96
- package/linthost/rules_unicorn_prefer_dom_node_append.go +14 -14
- package/linthost/rules_unicorn_prefer_dom_node_dataset.go +27 -27
- package/linthost/rules_unicorn_prefer_dom_node_remove.go +17 -17
- package/linthost/rules_unicorn_prefer_dom_node_text_content.go +11 -11
- package/linthost/rules_unicorn_prefer_event_target.go +10 -10
- package/linthost/rules_unicorn_prefer_export_from.go +99 -99
- package/linthost/rules_unicorn_prefer_global_this.go +91 -91
- package/linthost/rules_unicorn_prefer_import_meta_properties.go +38 -38
- package/linthost/rules_unicorn_prefer_includes.go +108 -108
- package/linthost/rules_unicorn_prefer_json_parse_buffer.go +37 -37
- package/linthost/rules_unicorn_prefer_keyboard_event_key.go +10 -10
- package/linthost/rules_unicorn_prefer_logical_operator_over_ternary.go +20 -20
- package/linthost/rules_unicorn_prefer_math_min_max.go +33 -33
- package/linthost/rules_unicorn_prefer_math_trunc.go +32 -32
- package/linthost/rules_unicorn_prefer_modern_dom_apis.go +18 -18
- package/linthost/rules_unicorn_prefer_modern_math_apis.go +38 -38
- package/linthost/rules_unicorn_prefer_module.go +22 -22
- package/linthost/rules_unicorn_prefer_native_coercion_functions.go +73 -73
- package/linthost/rules_unicorn_prefer_negative_index.go +46 -46
- package/linthost/rules_unicorn_prefer_node_protocol.go +90 -90
- package/linthost/rules_unicorn_prefer_number_properties.go +57 -57
- package/linthost/rules_unicorn_prefer_object_from_entries.go +26 -26
- package/linthost/rules_unicorn_prefer_optional_catch_binding.go +24 -24
- package/linthost/rules_unicorn_prefer_prototype_methods.go +25 -25
- package/linthost/rules_unicorn_prefer_query_selector.go +25 -25
- package/linthost/rules_unicorn_prefer_reflect_apply.go +10 -10
- package/linthost/rules_unicorn_prefer_regexp_test_rule.go +47 -47
- package/linthost/rules_unicorn_prefer_response_static_json.go +26 -26
- package/linthost/rules_unicorn_prefer_set_has.go +16 -16
- package/linthost/rules_unicorn_prefer_set_size.go +22 -22
- package/linthost/rules_unicorn_prefer_simple_condition_first.go +3 -3
- package/linthost/rules_unicorn_prefer_single_call.go +59 -59
- package/linthost/rules_unicorn_prefer_spread.go +24 -24
- package/linthost/rules_unicorn_prefer_string_raw.go +12 -12
- package/linthost/rules_unicorn_prefer_string_replace_all.go +46 -46
- package/linthost/rules_unicorn_prefer_string_slice.go +17 -17
- package/linthost/rules_unicorn_prefer_string_starts_ends_with.go +104 -104
- package/linthost/rules_unicorn_prefer_string_trim_start_end.go +21 -21
- package/linthost/rules_unicorn_prefer_structured_clone.go +36 -36
- package/linthost/rules_unicorn_prefer_switch.go +65 -65
- package/linthost/rules_unicorn_prefer_ternary.go +35 -35
- package/linthost/rules_unicorn_prefer_top_level_await.go +34 -34
- package/linthost/rules_unicorn_prefer_type_error.go +84 -84
- package/linthost/rules_unicorn_prevent_abbreviations.go +68 -68
- package/linthost/rules_unicorn_relative_url_style.go +19 -19
- package/linthost/rules_unicorn_require_array_join_separator.go +18 -18
- package/linthost/rules_unicorn_require_module_attributes.go +25 -25
- package/linthost/rules_unicorn_require_module_specifiers.go +28 -28
- package/linthost/rules_unicorn_require_number_to_fixed_digits_argument.go +18 -18
- package/linthost/rules_unicorn_require_post_message_target_origin.go +18 -18
- package/linthost/rules_unicorn_string_content.go +1 -1
- package/linthost/rules_unicorn_switch_case_braces.go +16 -16
- package/linthost/rules_unicorn_switch_case_break_position.go +3 -3
- package/linthost/rules_unicorn_template_indent.go +1 -1
- package/linthost/rules_unicorn_text_encoding_identifier_case.go +36 -36
- package/linthost/rules_unicorn_throw_new_error.go +30 -30
- package/linthost/rules_var.go +273 -3
- package/package.json +3 -3
- package/src/defaultFormat.ts +11 -7
- package/src/structures/ITtscLintConfig.ts +5 -5
- package/src/structures/TtscLintRuleSetting.ts +19 -19
- package/src/structures/{ITtscLintFormat.ts → format/ITtscLintFormat.ts} +48 -75
- package/src/structures/format/ITtscLintFormatJsDoc.ts +16 -0
- package/src/structures/format/ITtscLintFormatSortImports.ts +62 -0
- package/src/structures/format/index.ts +3 -0
- package/src/structures/index.ts +1 -1
- package/src/structures/rules/ITtscLintBoundariesRuleOptions.ts +20 -31
- package/src/structures/rules/ITtscLintBoundariesRules.ts +32 -36
- package/src/structures/rules/ITtscLintContributorRules.ts +6 -7
- package/src/structures/rules/ITtscLintCoreRules.ts +380 -408
- package/src/structures/rules/ITtscLintCypressRuleOptions.ts +5 -5
- package/src/structures/rules/ITtscLintCypressRules.ts +34 -38
- package/src/structures/rules/ITtscLintFunctionalRuleOptions.ts +28 -41
- package/src/structures/rules/ITtscLintFunctionalRules.ts +51 -56
- package/src/structures/rules/ITtscLintJestRules.ts +63 -74
- package/src/structures/rules/ITtscLintJsdocRules.ts +47 -54
- package/src/structures/rules/ITtscLintJsxA11yRules.ts +94 -102
- package/src/structures/rules/ITtscLintNextjsRules.ts +50 -55
- package/src/structures/rules/ITtscLintPlaywrightRules.ts +104 -122
- package/src/structures/rules/ITtscLintPromiseRules.ts +62 -71
- package/src/structures/rules/ITtscLintReactPerfRuleOptions.ts +4 -4
- package/src/structures/rules/ITtscLintReactPerfRules.ts +17 -19
- package/src/structures/rules/ITtscLintReactRuleOptions.ts +8 -10
- package/src/structures/rules/ITtscLintReactRules.ts +91 -104
- package/src/structures/rules/ITtscLintRegexpRules.ts +46 -54
- package/src/structures/rules/ITtscLintRuleOptionsMap.ts +7 -8
- package/src/structures/rules/ITtscLintSecurityRules.ts +45 -52
- package/src/structures/rules/ITtscLintSolidRules.ts +53 -56
- package/src/structures/rules/ITtscLintStorybookRuleOptions.ts +3 -4
- package/src/structures/rules/ITtscLintStorybookRules.ts +60 -69
- package/src/structures/rules/ITtscLintTanstackQueryRules.ts +31 -37
- package/src/structures/rules/ITtscLintTestingLibraryRuleOptions.ts +2 -3
- package/src/structures/rules/ITtscLintTestingLibraryRules.ts +102 -119
- package/src/structures/rules/ITtscLintTypeScriptRules.ts +460 -518
- package/src/structures/rules/ITtscLintVitestRules.ts +43 -51
- package/lib/structures/ITtscLintFormat.js.map +0 -1
- /package/lib/structures/{ITtscLintFormat.js → format/ITtscLintFormat.js} +0 -0
|
@@ -4,62 +4,58 @@ import type { TtscLintRuleSetting } from "../TtscLintRuleSetting";
|
|
|
4
4
|
* Jest test source rules from `eslint-plugin-jest`.
|
|
5
5
|
*
|
|
6
6
|
* Apply to TypeScript test files that use the Jest runner (`describe`,
|
|
7
|
-
* `test`/`it`, `expect`, lifecycle hooks). They guard test-quality
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* `test`/`it`, `expect`, lifecycle hooks). They guard test-quality patterns the
|
|
8
|
+
* type system cannot detect — unended assertions, focused tests left behind,
|
|
9
|
+
* duplicate hook calls.
|
|
10
10
|
*
|
|
11
11
|
* @reference https://github.com/jest-community/eslint-plugin-jest
|
|
12
12
|
*/
|
|
13
13
|
export interface ITtscLintJestRules {
|
|
14
14
|
/**
|
|
15
|
-
* Require every Jest test body to contain at least one
|
|
16
|
-
*
|
|
15
|
+
* Require every Jest test body to contain at least one `expect(...)` call. A
|
|
16
|
+
* test with no expectations passes silently.
|
|
17
17
|
*
|
|
18
18
|
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/expect-expect.md
|
|
19
19
|
*/
|
|
20
20
|
"jest/expect-expect"?: TtscLintRuleSetting;
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
-
* Limit the number of `expect(...)` calls inside a single Jest test
|
|
24
|
-
* body.
|
|
23
|
+
* Limit the number of `expect(...)` calls inside a single Jest test body.
|
|
25
24
|
*
|
|
26
|
-
* A test packed with assertions usually verifies several behaviors
|
|
27
|
-
*
|
|
28
|
-
*
|
|
25
|
+
* A test packed with assertions usually verifies several behaviors at once,
|
|
26
|
+
* making failures ambiguous — splitting per scenario keeps each case
|
|
27
|
+
* diagnostic.
|
|
29
28
|
*
|
|
30
29
|
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/max-expects.md
|
|
31
30
|
*/
|
|
32
31
|
"jest/max-expects"?: TtscLintRuleSetting;
|
|
33
32
|
|
|
34
33
|
/**
|
|
35
|
-
* Reject `expect(...)` calls under `if`/`try`/`catch` or other
|
|
36
|
-
*
|
|
34
|
+
* Reject `expect(...)` calls under `if`/`try`/`catch` or other conditional
|
|
35
|
+
* branches in Jest tests.
|
|
37
36
|
*
|
|
38
|
-
* A branch that never executes turns the assertion into a silent
|
|
39
|
-
*
|
|
37
|
+
* A branch that never executes turns the assertion into a silent no-op, so
|
|
38
|
+
* the test passes without verifying anything.
|
|
40
39
|
*
|
|
41
40
|
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-conditional-expect.md
|
|
42
41
|
*/
|
|
43
42
|
"jest/no-conditional-expect"?: TtscLintRuleSetting;
|
|
44
43
|
|
|
45
44
|
/**
|
|
46
|
-
* Reject conditional logic (`if`/`switch`/ternary) inside Jest
|
|
47
|
-
* test bodies.
|
|
45
|
+
* Reject conditional logic (`if`/`switch`/ternary) inside Jest test bodies.
|
|
48
46
|
*
|
|
49
|
-
* Each test should describe a single deterministic scenario;
|
|
50
|
-
*
|
|
51
|
-
* passing log.
|
|
47
|
+
* Each test should describe a single deterministic scenario; branching hides
|
|
48
|
+
* which path the runner took when reading a passing log.
|
|
52
49
|
*
|
|
53
50
|
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-conditional-in-test.md
|
|
54
51
|
*/
|
|
55
52
|
"jest/no-conditional-in-test"?: TtscLintRuleSetting;
|
|
56
53
|
|
|
57
54
|
/**
|
|
58
|
-
* Reject `test.skip`, `xit`, `xdescribe`, and other disabled Jest
|
|
59
|
-
* tests.
|
|
55
|
+
* Reject `test.skip`, `xit`, `xdescribe`, and other disabled Jest tests.
|
|
60
56
|
*
|
|
61
|
-
* Skipped tests appear green in CI but quietly drop coverage for
|
|
62
|
-
*
|
|
57
|
+
* Skipped tests appear green in CI but quietly drop coverage for the feature
|
|
58
|
+
* they were meant to pin, so they rot unseen.
|
|
63
59
|
*
|
|
64
60
|
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-disabled-tests.md
|
|
65
61
|
*/
|
|
@@ -68,21 +64,20 @@ export interface ITtscLintJestRules {
|
|
|
68
64
|
/**
|
|
69
65
|
* Reject `done` callback parameters in Jest tests and hooks.
|
|
70
66
|
*
|
|
71
|
-
* The callback style predates async/await and makes error
|
|
72
|
-
*
|
|
73
|
-
*
|
|
67
|
+
* The callback style predates async/await and makes error propagation easy to
|
|
68
|
+
* miss — forgetting `done()` hangs the test until timeout. Use
|
|
69
|
+
* `async`/`await` or return a Promise instead.
|
|
74
70
|
*
|
|
75
71
|
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-done-callback.md
|
|
76
72
|
*/
|
|
77
73
|
"jest/no-done-callback"?: TtscLintRuleSetting;
|
|
78
74
|
|
|
79
75
|
/**
|
|
80
|
-
* Reject duplicate setup/teardown hook calls
|
|
81
|
-
*
|
|
82
|
-
* block.
|
|
76
|
+
* Reject duplicate setup/teardown hook calls (`beforeEach`/`beforeAll`/etc.)
|
|
77
|
+
* within the same `describe` block.
|
|
83
78
|
*
|
|
84
|
-
* Jest runs both copies in declaration order, which is almost
|
|
85
|
-
*
|
|
79
|
+
* Jest runs both copies in declaration order, which is almost always a
|
|
80
|
+
* copy-paste mistake.
|
|
86
81
|
*
|
|
87
82
|
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-duplicate-hooks.md
|
|
88
83
|
*/
|
|
@@ -91,21 +86,19 @@ export interface ITtscLintJestRules {
|
|
|
91
86
|
/**
|
|
92
87
|
* Reject `export` declarations in Jest test files.
|
|
93
88
|
*
|
|
94
|
-
* Tests are leaf consumers and should not expose helpers; the
|
|
95
|
-
*
|
|
96
|
-
*
|
|
89
|
+
* Tests are leaf consumers and should not expose helpers; the runner silently
|
|
90
|
+
* skips test files with any export, so a stray `export` can make a whole file
|
|
91
|
+
* disappear from the suite.
|
|
97
92
|
*
|
|
98
93
|
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-export.md
|
|
99
94
|
*/
|
|
100
95
|
"jest/no-export"?: TtscLintRuleSetting;
|
|
101
96
|
|
|
102
97
|
/**
|
|
103
|
-
* Reject `test.only`, `fit`, `fdescribe`, and other focused Jest
|
|
104
|
-
* tests.
|
|
98
|
+
* Reject `test.only`, `fit`, `fdescribe`, and other focused Jest tests.
|
|
105
99
|
*
|
|
106
|
-
* A focused test silently skips every other test in the file, so
|
|
107
|
-
*
|
|
108
|
-
* in CI.
|
|
100
|
+
* A focused test silently skips every other test in the file, so a stray
|
|
101
|
+
* `.only` left from debugging hides the rest of the suite in CI.
|
|
109
102
|
*
|
|
110
103
|
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-focused-tests.md
|
|
111
104
|
*/
|
|
@@ -114,42 +107,39 @@ export interface ITtscLintJestRules {
|
|
|
114
107
|
/**
|
|
115
108
|
* Reject Jest setup/teardown hooks altogether.
|
|
116
109
|
*
|
|
117
|
-
* Promotes the style where each test arranges and tears down its
|
|
118
|
-
*
|
|
119
|
-
*
|
|
110
|
+
* Promotes the style where each test arranges and tears down its own state
|
|
111
|
+
* inline, so a reader can understand it in isolation without scrolling to a
|
|
112
|
+
* distant `beforeEach`.
|
|
120
113
|
*
|
|
121
114
|
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-hooks.md
|
|
122
115
|
*/
|
|
123
116
|
"jest/no-hooks"?: TtscLintRuleSetting;
|
|
124
117
|
|
|
125
118
|
/**
|
|
126
|
-
* Reject duplicate test or `describe` titles at the same suite
|
|
127
|
-
*
|
|
128
|
-
* name in error output.
|
|
119
|
+
* Reject duplicate test or `describe` titles at the same suite level — the
|
|
120
|
+
* runner cannot distinguish two tests with the same name in error output.
|
|
129
121
|
*
|
|
130
122
|
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-identical-title.md
|
|
131
123
|
*/
|
|
132
124
|
"jest/no-identical-title"?: TtscLintRuleSetting;
|
|
133
125
|
|
|
134
126
|
/**
|
|
135
|
-
* Reject `expect(...)` calls outside the body of a Jest test or
|
|
136
|
-
*
|
|
127
|
+
* Reject `expect(...)` calls outside the body of a Jest test or lifecycle
|
|
128
|
+
* hook.
|
|
137
129
|
*
|
|
138
|
-
* Top-level assertions execute at module load before any test
|
|
139
|
-
*
|
|
140
|
-
* report.
|
|
130
|
+
* Top-level assertions execute at module load before any test starts, so
|
|
131
|
+
* failures never attach to a named case in the runner's report.
|
|
141
132
|
*
|
|
142
133
|
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-standalone-expect.md
|
|
143
134
|
*/
|
|
144
135
|
"jest/no-standalone-expect"?: TtscLintRuleSetting;
|
|
145
136
|
|
|
146
137
|
/**
|
|
147
|
-
* Reject `xit`, `fit`, `xdescribe`, `fdescribe`, and the rest of
|
|
148
|
-
*
|
|
138
|
+
* Reject `xit`, `fit`, `xdescribe`, `fdescribe`, and the rest of the
|
|
139
|
+
* single-letter Jest test prefix aliases.
|
|
149
140
|
*
|
|
150
|
-
* They duplicate the `.only`/`.skip` variants but read as typos at
|
|
151
|
-
*
|
|
152
|
-
* review.
|
|
141
|
+
* They duplicate the `.only`/`.skip` variants but read as typos at a glance,
|
|
142
|
+
* making accidental focus or disable harder to spot in review.
|
|
153
143
|
*
|
|
154
144
|
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-test-prefixes.md
|
|
155
145
|
*/
|
|
@@ -158,28 +148,28 @@ export interface ITtscLintJestRules {
|
|
|
158
148
|
/**
|
|
159
149
|
* Reject non-Promise `return` statements from Jest test bodies.
|
|
160
150
|
*
|
|
161
|
-
* Jest only awaits returned thenables, so a plain `return` value
|
|
162
|
-
*
|
|
163
|
-
*
|
|
151
|
+
* Jest only awaits returned thenables, so a plain `return` value is dropped
|
|
152
|
+
* and following code becomes dead — usually a symptom of a missing `await` or
|
|
153
|
+
* an accidental early exit.
|
|
164
154
|
*
|
|
165
155
|
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-test-return-statement.md
|
|
166
156
|
*/
|
|
167
157
|
"jest/no-test-return-statement"?: TtscLintRuleSetting;
|
|
168
158
|
|
|
169
159
|
/**
|
|
170
|
-
* Prefer `expect(value).toHaveLength(n)` over asserting on
|
|
171
|
-
*
|
|
160
|
+
* Prefer `expect(value).toHaveLength(n)` over asserting on `value.length`
|
|
161
|
+
* directly with `toBe`.
|
|
172
162
|
*
|
|
173
|
-
* The dedicated matcher reports the actual length on failure
|
|
174
|
-
*
|
|
163
|
+
* The dedicated matcher reports the actual length on failure instead of a
|
|
164
|
+
* bare number mismatch with no context.
|
|
175
165
|
*
|
|
176
166
|
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/prefer-to-have-length.md
|
|
177
167
|
*/
|
|
178
168
|
"jest/prefer-to-have-length"?: TtscLintRuleSetting;
|
|
179
169
|
|
|
180
170
|
/**
|
|
181
|
-
* Require a message argument on `expect(...).toThrow(...)` so a
|
|
182
|
-
*
|
|
171
|
+
* Require a message argument on `expect(...).toThrow(...)` so a regression
|
|
172
|
+
* with a different error type still surfaces clearly.
|
|
183
173
|
*
|
|
184
174
|
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/require-to-throw-message.md
|
|
185
175
|
*/
|
|
@@ -188,21 +178,20 @@ export interface ITtscLintJestRules {
|
|
|
188
178
|
/**
|
|
189
179
|
* Validate the shape of Jest `describe` callbacks.
|
|
190
180
|
*
|
|
191
|
-
* The callback must be synchronous and take no arguments — Jest
|
|
192
|
-
*
|
|
193
|
-
*
|
|
181
|
+
* The callback must be synchronous and take no arguments — Jest ignores
|
|
182
|
+
* returned Promises and `done`-style parameters at the describe level,
|
|
183
|
+
* silently swallowing setup errors.
|
|
194
184
|
*
|
|
195
185
|
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/valid-describe-callback.md
|
|
196
186
|
*/
|
|
197
187
|
"jest/valid-describe-callback"?: TtscLintRuleSetting;
|
|
198
188
|
|
|
199
189
|
/**
|
|
200
|
-
* Validate `expect(...)` arity and matcher chaining: exactly one
|
|
201
|
-
*
|
|
202
|
-
* properly awaited.
|
|
190
|
+
* Validate `expect(...)` arity and matcher chaining: exactly one argument,
|
|
191
|
+
* terminated by a matcher call, and async matchers properly awaited.
|
|
203
192
|
*
|
|
204
|
-
* Malformed expects either throw at runtime or pass without
|
|
205
|
-
*
|
|
193
|
+
* Malformed expects either throw at runtime or pass without asserting
|
|
194
|
+
* anything.
|
|
206
195
|
*
|
|
207
196
|
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/valid-expect.md
|
|
208
197
|
*/
|
|
@@ -211,8 +200,8 @@ export interface ITtscLintJestRules {
|
|
|
211
200
|
/**
|
|
212
201
|
* Require non-empty static Jest test and `describe` titles.
|
|
213
202
|
*
|
|
214
|
-
* Empty or dynamically-built titles produce unreadable failure
|
|
215
|
-
*
|
|
203
|
+
* Empty or dynamically-built titles produce unreadable failure output and
|
|
204
|
+
* break filter-by-name flags like `--testNamePattern`.
|
|
216
205
|
*
|
|
217
206
|
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/valid-title.md
|
|
218
207
|
*/
|
|
@@ -3,30 +3,30 @@ import type { TtscLintRuleSetting } from "../TtscLintRuleSetting";
|
|
|
3
3
|
/**
|
|
4
4
|
* Documentation-comment validation rules.
|
|
5
5
|
*
|
|
6
|
-
* Bundles `eslint-plugin-jsdoc` content checks (tag names, parameter
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* Bundles `eslint-plugin-jsdoc` content checks (tag names, parameter coverage,
|
|
7
|
+
* descriptions) with the lone `eslint-plugin-tsdoc` syntax check
|
|
8
|
+
* (`jsdoc/tsdoc-syntax`) — both target `/** ... *\/` comments and are too small
|
|
9
|
+
* in upstream-tsdoc's case to justify a dedicated family.
|
|
10
10
|
*
|
|
11
|
-
* Formatting concerns (alignment, indentation) are configured through
|
|
12
|
-
*
|
|
11
|
+
* Formatting concerns (alignment, indentation) are configured through the
|
|
12
|
+
* top-level `format` block, not here.
|
|
13
13
|
*
|
|
14
14
|
* @reference https://github.com/gajus/eslint-plugin-jsdoc
|
|
15
15
|
*/
|
|
16
16
|
export interface ITtscLintJsdocRules {
|
|
17
17
|
/**
|
|
18
|
-
* Reject unknown JSDoc block-tag names. Catches typos like
|
|
19
|
-
* `@
|
|
18
|
+
* Reject unknown JSDoc block-tag names. Catches typos like `@returs` or
|
|
19
|
+
* `@parm`.
|
|
20
20
|
*
|
|
21
21
|
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-tag-names.md
|
|
22
22
|
*/
|
|
23
23
|
"jsdoc/check-tag-names"?: TtscLintRuleSetting;
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
|
-
* Validate `@access` values against the closed set `public`,
|
|
27
|
-
* `
|
|
28
|
-
* `@version`/`@since`/`@license`/`@kind`/`@import` value checks;
|
|
29
|
-
*
|
|
26
|
+
* Validate `@access` values against the closed set `public`, `protected`,
|
|
27
|
+
* `private`, `package`. (Upstream extends to
|
|
28
|
+
* `@version`/`@since`/`@license`/`@kind`/`@import` value checks; those shapes
|
|
29
|
+
* are not yet implemented in the native engine.)
|
|
30
30
|
*
|
|
31
31
|
* Catches typos and stale enum members that slip past doc tooling.
|
|
32
32
|
*
|
|
@@ -35,24 +35,24 @@ export interface ITtscLintJsdocRules {
|
|
|
35
35
|
"jsdoc/check-values"?: TtscLintRuleSetting;
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
|
-
* Reject content on marker-only JSDoc tags (`@async`, `@public`,
|
|
39
|
-
*
|
|
38
|
+
* Reject content on marker-only JSDoc tags (`@async`, `@public`, `@override`,
|
|
39
|
+
* ...) — these tags take no value.
|
|
40
40
|
*
|
|
41
41
|
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/empty-tags.md
|
|
42
42
|
*/
|
|
43
43
|
"jsdoc/empty-tags"?: TtscLintRuleSetting;
|
|
44
44
|
|
|
45
45
|
/**
|
|
46
|
-
* Reject JSDoc type braces in TypeScript sources, since the
|
|
47
|
-
*
|
|
46
|
+
* Reject JSDoc type braces in TypeScript sources, since the surrounding
|
|
47
|
+
* TypeScript already carries the type.
|
|
48
48
|
*
|
|
49
49
|
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-types.md
|
|
50
50
|
*/
|
|
51
51
|
"jsdoc/no-types"?: TtscLintRuleSetting;
|
|
52
52
|
|
|
53
53
|
/**
|
|
54
|
-
* Reject `any` and `*` inside JSDoc type braces — these escape
|
|
55
|
-
*
|
|
54
|
+
* Reject `any` and `*` inside JSDoc type braces — these escape the documented
|
|
55
|
+
* type system the same way TypeScript `any` does.
|
|
56
56
|
*
|
|
57
57
|
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-any-type.md
|
|
58
58
|
*/
|
|
@@ -69,83 +69,76 @@ export interface ITtscLintJsdocRules {
|
|
|
69
69
|
"jsdoc/reject-function-type"?: TtscLintRuleSetting;
|
|
70
70
|
|
|
71
71
|
/**
|
|
72
|
-
* Require JSDoc blocks to include a leading block-level
|
|
73
|
-
*
|
|
72
|
+
* Require JSDoc blocks to include a leading block-level description — every
|
|
73
|
+
* documented identifier should explain itself.
|
|
74
74
|
*
|
|
75
75
|
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-description.md
|
|
76
76
|
*/
|
|
77
77
|
"jsdoc/require-description"?: TtscLintRuleSetting;
|
|
78
78
|
|
|
79
79
|
/**
|
|
80
|
-
* Require every `@param` tag that names a parameter to also
|
|
81
|
-
*
|
|
80
|
+
* Require every `@param` tag that names a parameter to also carry a
|
|
81
|
+
* description after the name.
|
|
82
82
|
*
|
|
83
|
-
* A name-only `@param` adds nothing beyond the signature, so the
|
|
84
|
-
*
|
|
85
|
-
* the tag.
|
|
83
|
+
* A name-only `@param` adds nothing beyond the signature, so the rule pushes
|
|
84
|
+
* authors to either describe the parameter or drop the tag.
|
|
86
85
|
*
|
|
87
86
|
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-description.md
|
|
88
87
|
*/
|
|
89
88
|
"jsdoc/require-param-description"?: TtscLintRuleSetting;
|
|
90
89
|
|
|
91
90
|
/**
|
|
92
|
-
* Require every `@param` tag to include the parameter name it
|
|
93
|
-
* documents.
|
|
91
|
+
* Require every `@param` tag to include the parameter name it documents.
|
|
94
92
|
*
|
|
95
|
-
* A bare `@param` cannot be linked to a signature position, so
|
|
96
|
-
*
|
|
93
|
+
* A bare `@param` cannot be linked to a signature position, so doc tooling
|
|
94
|
+
* silently drops it.
|
|
97
95
|
*
|
|
98
96
|
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-name.md
|
|
99
97
|
*/
|
|
100
98
|
"jsdoc/require-param-name"?: TtscLintRuleSetting;
|
|
101
99
|
|
|
102
100
|
/**
|
|
103
|
-
* Require every `@property` tag that names a property to also
|
|
104
|
-
*
|
|
101
|
+
* Require every `@property` tag that names a property to also carry a
|
|
102
|
+
* description.
|
|
105
103
|
*
|
|
106
|
-
* Mirrors `require-param-description` for typedef and object-shape
|
|
107
|
-
*
|
|
108
|
-
* type doesn't convey.
|
|
104
|
+
* Mirrors `require-param-description` for typedef and object-shape comments,
|
|
105
|
+
* where a name-only entry adds nothing the surrounding type doesn't convey.
|
|
109
106
|
*
|
|
110
107
|
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-description.md
|
|
111
108
|
*/
|
|
112
109
|
"jsdoc/require-property-description"?: TtscLintRuleSetting;
|
|
113
110
|
|
|
114
111
|
/**
|
|
115
|
-
* Require every `@property` tag to include the property name it
|
|
116
|
-
* documents.
|
|
112
|
+
* Require every `@property` tag to include the property name it documents.
|
|
117
113
|
*
|
|
118
|
-
* Without the name the tag cannot be linked to a member of the
|
|
119
|
-
*
|
|
114
|
+
* Without the name the tag cannot be linked to a member of the surrounding
|
|
115
|
+
* typedef, and doc generators discard it.
|
|
120
116
|
*
|
|
121
117
|
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-name.md
|
|
122
118
|
*/
|
|
123
119
|
"jsdoc/require-property-name"?: TtscLintRuleSetting;
|
|
124
120
|
|
|
125
121
|
/**
|
|
126
|
-
* Require every `@returns` tag to carry a description of the
|
|
127
|
-
* returned value.
|
|
122
|
+
* Require every `@returns` tag to carry a description of the returned value.
|
|
128
123
|
*
|
|
129
|
-
* The TypeScript signature already states the return type, so the
|
|
130
|
-
*
|
|
131
|
-
* not its shape.
|
|
124
|
+
* The TypeScript signature already states the return type, so the tag earns
|
|
125
|
+
* its keep only when it explains what the value means, not its shape.
|
|
132
126
|
*
|
|
133
127
|
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-description.md
|
|
134
128
|
*/
|
|
135
129
|
"jsdoc/require-returns-description"?: TtscLintRuleSetting;
|
|
136
130
|
|
|
137
131
|
/**
|
|
138
|
-
* Detect structural TSDoc problems in documentation comments:
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
*
|
|
148
|
-
* here rather than in a one-rule `tsdoc/*` family.
|
|
132
|
+
* Detect structural TSDoc problems in documentation comments: malformed
|
|
133
|
+
* top-level block tags (`@` followed by non-letter) and malformed or unclosed
|
|
134
|
+
* inline tags (`{@link ...}`). The broader TSDoc grammar — closed-set tag
|
|
135
|
+
* names, escape sequences, `{Type}`-annotation rejection, fenced-code rules —
|
|
136
|
+
* is not yet implemented.
|
|
137
|
+
*
|
|
138
|
+
* TSDoc is Microsoft's curated dialect that powers API Extractor and the rest
|
|
139
|
+
* of the Microsoft TypeScript documentation pipeline. Upstream
|
|
140
|
+
* `eslint-plugin-tsdoc` ships exactly one rule; it lives here rather than in
|
|
141
|
+
* a one-rule `tsdoc/*` family.
|
|
149
142
|
*
|
|
150
143
|
* @reference https://github.com/microsoft/tsdoc/blob/main/eslint-plugin/README.md
|
|
151
144
|
*/
|