Skip to content

Commit

Permalink
fix(linter): disable react/rules-of-hooks for vue and svelte files
Browse files Browse the repository at this point in the history
  • Loading branch information
Sysix committed Dec 28, 2024
1 parent 1b9a5ba commit 47870eb
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions crates/oxc_linter/src/rules/react/rules_of_hooks.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ use crate::{
context::LintContext,
rule::Rule,
utils::{is_react_component_or_hook_name, is_react_function_call, is_react_hook},
AstNode,
AstNode, FrameworkFlags,
};

mod diagnostics {
Expand Down Expand Up @@ -99,7 +99,7 @@ pub struct RulesOfHooks;
declare_oxc_lint!(
/// ### What it does
///
/// This enforcecs the Rules of Hooks
/// This enforces the Rules of Hooks
///
/// <https://reactjs.org/docs/hooks-rules.html>
///
Expand All @@ -108,6 +108,12 @@ declare_oxc_lint!(
);

impl Rule for RulesOfHooks {
fn should_run(&self, ctx: &crate::rules::ContextHost) -> bool {
// disable this rule in vue/nuxt and svelte(kit) files
// top level useFunction are very common
!ctx.frameworks().contains(FrameworkFlags::SvelteKit | FrameworkFlags::Nuxt)
}

fn run<'a>(&self, node: &AstNode<'a>, ctx: &LintContext<'a>) {
let AstKind::CallExpression(call) = node.kind() else { return };

Expand Down

0 comments on commit 47870eb

Please sign in to comment.