Home / Function/ makeRule() — react Function Reference

makeRule() — react Function Reference

Architecture documentation for the makeRule() function in ReactCompilerRule.ts from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  1d0413ae_726c_b2fe_86f8_a676db384257["makeRule()"]
  cc8eb92a_b0c5_c461_8a5e_7435585bbc6e["ReactCompilerRule.ts"]
  1d0413ae_726c_b2fe_86f8_a676db384257 -->|defined in| cc8eb92a_b0c5_c461_8a5e_7435585bbc6e
  c2fb1111_dc32_da0a_d43a_b38b8d13f4e9["allRules()"]
  c2fb1111_dc32_da0a_d43a_b38b8d13f4e9 -->|calls| 1d0413ae_726c_b2fe_86f8_a676db384257
  30ba4ebf_f43f_6cd4_4e5f_9d4207260224["recommendedRules()"]
  30ba4ebf_f43f_6cd4_4e5f_9d4207260224 -->|calls| 1d0413ae_726c_b2fe_86f8_a676db384257
  b0ba3b99_e916_1d83_cd31_c5924e951683["recommendedLatestRules()"]
  b0ba3b99_e916_1d83_cd31_c5924e951683 -->|calls| 1d0413ae_726c_b2fe_86f8_a676db384257
  82f0e95e_ae62_d675_9bf8_be3be42f1f86["getReactCompilerResult()"]
  1d0413ae_726c_b2fe_86f8_a676db384257 -->|calls| 82f0e95e_ae62_d675_9bf8_be3be42f1f86
  68e050f6_b972_4a5d_b24b_e3fd1dd64112["hasFlowSuppression()"]
  1d0413ae_726c_b2fe_86f8_a676db384257 -->|calls| 68e050f6_b972_4a5d_b24b_e3fd1dd64112
  02c364ac_a9af_1b49_1a58_fc16375d1f3d["makeSuggestions()"]
  1d0413ae_726c_b2fe_86f8_a676db384257 -->|calls| 02c364ac_a9af_1b49_1a58_fc16375d1f3d
  style 1d0413ae_726c_b2fe_86f8_a676db384257 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

compiler/packages/eslint-plugin-react-compiler/src/rules/ReactCompilerRule.ts lines 111–163

function makeRule(rule: LintRule): Rule.RuleModule {
  const create = (context: Rule.RuleContext): Rule.RuleListener => {
    const result = getReactCompilerResult(context);

    for (const event of result.events) {
      if (event.kind === 'CompileError') {
        const detail = event.detail;
        if (detail.category === rule.category) {
          const loc = detail.primaryLocation();
          if (loc == null || typeof loc === 'symbol') {
            continue;
          }
          if (
            hasFlowSuppression(result, loc, [
              'react-rule-hook',
              'react-rule-unsafe-ref',
            ])
          ) {
            // If Flow already caught this error, we don't need to report it again.
            continue;
          }
          /*
           * TODO: if multiple rules report the same linter category,
           * we should deduplicate them with a "reported" set
           */
          context.report({
            message: detail.printErrorMessage(result.sourceCode, {
              eslint: true,
            }),
            loc,
            suggest: makeSuggestions(detail.options),
          });
        }
      }
    }
    return {};
  };

  return {
    meta: {
      type: 'problem',
      docs: {
        description: rule.description,
        recommended: rule.preset === LintRulePreset.Recommended,
      },
      fixable: 'code',
      hasSuggestions: true,
      // validation is done at runtime with zod
      schema: [{type: 'object', additionalProperties: true}],
    },
    create,
  };
}

Domain

Subdomains

Frequently Asked Questions

What does makeRule() do?
makeRule() is a function in the react codebase, defined in compiler/packages/eslint-plugin-react-compiler/src/rules/ReactCompilerRule.ts.
Where is makeRule() defined?
makeRule() is defined in compiler/packages/eslint-plugin-react-compiler/src/rules/ReactCompilerRule.ts at line 111.
What does makeRule() call?
makeRule() calls 3 function(s): getReactCompilerResult, hasFlowSuppression, makeSuggestions.
What calls makeRule()?
makeRule() is called by 3 function(s): allRules, recommendedLatestRules, recommendedRules.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free