Skip to content

Commit b82f4ad

Browse files
committed
feat(lint): move some rules to the react domain
1 parent ea23d15 commit b82f4ad

7 files changed

Lines changed: 27 additions & 6 deletions

File tree

.changeset/seven-beans-cough.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
"@biomejs/biome": minor
3+
---
4+
5+
The following rules are now a part of the `react` domain, and they won't be enabled automatically unless you enabled the domain:
6+
7+
- `lint/correctness/noChildrenProp` (recommended)
8+
- `lint/correctness/noReactPropAssignments`
9+
- `lint/security/noDangerouslySetInnerHtml` (recommended)
10+
- `lint/security/noDangerouslySetInnerHtmlWithChildren` (recommended)
11+
- `lint/style/useComponentExportOnlyModules`
12+
- `lint/suspicious/noArrayIndexKey` (recommended)

crates/biome_js_analyze/src/lint/correctness/no_children_prop.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
use crate::react::{ReactApiCall, ReactCreateElementCall};
22
use crate::services::semantic::Semantic;
33
use biome_analyze::context::RuleContext;
4-
use biome_analyze::{Rule, RuleDiagnostic, RuleSource, declare_lint_rule};
4+
use biome_analyze::{Rule, RuleDiagnostic, RuleDomain, RuleSource, declare_lint_rule};
55
use biome_console::markup;
66
use biome_diagnostics::Severity;
77
use biome_js_syntax::{JsCallExpression, JsxAttribute};
88
use biome_rowan::{AstNode, TextRange, declare_node_union};
99
use biome_rule_options::no_children_prop::NoChildrenPropOptions;
10+
1011
declare_lint_rule! {
1112
/// Prevent passing of **children** as props.
1213
///
@@ -29,6 +30,7 @@ declare_lint_rule! {
2930
name: "noChildrenProp",
3031
language: "jsx",
3132
sources: &[RuleSource::EslintReact("no-children-prop").same()],
33+
domains: &[RuleDomain::React],
3234
recommended: true,
3335
severity: Severity::Error,
3436
}

crates/biome_js_analyze/src/lint/correctness/no_react_prop_assignments.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ use crate::react::components::{
22
AnyPotentialReactComponentDeclaration, ReactComponentInfo, ReactComponentKind,
33
};
44
use crate::services::semantic::Semantic;
5-
use biome_analyze::{Rule, RuleDiagnostic, RuleSource, context::RuleContext, declare_lint_rule};
5+
use biome_analyze::{
6+
Rule, RuleDiagnostic, RuleDomain, RuleSource, context::RuleContext, declare_lint_rule,
7+
};
68
use biome_console::markup;
79
use biome_js_semantic::SemanticModel;
810
use biome_js_syntax::{AnyJsExpression, AnyJsStatement, JsParameterList};
@@ -42,6 +44,7 @@ declare_lint_rule! {
4244
name: "noReactPropAssignments",
4345
language: "jsx",
4446
sources: &[RuleSource::EslintReactHooks("react-compiler").same()],
47+
domains: &[RuleDomain::React],
4548
recommended: false,
4649
}
4750
}

crates/biome_js_analyze/src/lint/security/no_dangerously_set_inner_html.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::react::ReactCreateElementCall;
22
use crate::services::semantic::Semantic;
33
use biome_analyze::context::RuleContext;
4-
use biome_analyze::{Rule, RuleDiagnostic, RuleSource, declare_lint_rule};
4+
use biome_analyze::{Rule, RuleDiagnostic, RuleDomain, RuleSource, declare_lint_rule};
55
use biome_console::markup;
66
use biome_diagnostics::Severity;
77
use biome_js_syntax::{AnyJsxAttributeName, JsCallExpression, JsxAttribute};
@@ -32,6 +32,7 @@ declare_lint_rule! {
3232
name: "noDangerouslySetInnerHtml",
3333
language: "jsx",
3434
sources: &[RuleSource::EslintReact("no-danger").same()],
35+
domains: &[RuleDomain::React],
3536
recommended: true,
3637
severity: Severity::Error,
3738
}

crates/biome_js_analyze/src/lint/security/no_dangerously_set_inner_html_with_children.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::react::{ReactApiCall, ReactCreateElementCall};
22
use crate::services::semantic::Semantic;
33
use biome_analyze::context::RuleContext;
4-
use biome_analyze::{Rule, RuleDiagnostic, RuleSource, declare_lint_rule};
4+
use biome_analyze::{Rule, RuleDiagnostic, RuleDomain, RuleSource, declare_lint_rule};
55
use biome_console::markup;
66
use biome_diagnostics::Severity;
77
use biome_js_semantic::SemanticModel;
@@ -41,6 +41,7 @@ declare_lint_rule! {
4141
name: "noDangerouslySetInnerHtmlWithChildren",
4242
language: "jsx",
4343
sources: &[RuleSource::EslintReact("no-danger-with-children").same()],
44+
domains: &[RuleDomain::React],
4445
recommended: true,
4546
severity: Severity::Error,
4647
}

crates/biome_js_analyze/src/lint/style/use_component_export_only_modules.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::react::components::ReactComponentInfo;
22
use biome_analyze::{
3-
Ast, Rule, RuleDiagnostic, RuleSource, context::RuleContext, declare_lint_rule,
3+
Ast, Rule, RuleDiagnostic, RuleDomain, RuleSource, context::RuleContext, declare_lint_rule,
44
};
55
use biome_console::markup;
66
use biome_diagnostics::Severity;
@@ -101,6 +101,7 @@ declare_lint_rule! {
101101
name: "useComponentExportOnlyModules",
102102
language: "jsx",
103103
sources: &[RuleSource::EslintReactRefresh("only-export-components").inspired()],
104+
domains: &[RuleDomain::React],
104105
recommended: false,
105106
severity: Severity::Warning,
106107
}

crates/biome_js_analyze/src/lint/suspicious/no_array_index_key.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::react::{ReactLibrary, is_react_call_api};
22
use crate::services::semantic::Semantic;
33
use biome_analyze::context::RuleContext;
4-
use biome_analyze::{Rule, RuleDiagnostic, RuleSource, declare_lint_rule};
4+
use biome_analyze::{Rule, RuleDiagnostic, RuleDomain, RuleSource, declare_lint_rule};
55
use biome_console::markup;
66
use biome_diagnostics::Severity;
77
use biome_js_syntax::{
@@ -70,6 +70,7 @@ declare_lint_rule! {
7070
name: "noArrayIndexKey",
7171
language: "jsx",
7272
sources: &[RuleSource::EslintReact("no-array-index-key").same()],
73+
domains: &[RuleDomain::React],
7374
recommended: true,
7475
severity: Severity::Error,
7576
}

0 commit comments

Comments
 (0)