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
Source
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