ReactCompilerRule.ts — react Source File
Architecture documentation for ReactCompilerRule.ts, a typescript file in the react codebase. 5 imports, 8 dependents.
Entity Profile
Dependency Diagram
graph LR cc8eb92a_b0c5_c461_8a5e_7435585bbc6e["ReactCompilerRule.ts"] 93161a4a_8836_f386_2264_41352eee2303["RunReactCompiler.ts"] cc8eb92a_b0c5_c461_8a5e_7435585bbc6e --> 93161a4a_8836_f386_2264_41352eee2303 52e3d8d7_abf4_7343_1f98_3f701ec04082["types"] cc8eb92a_b0c5_c461_8a5e_7435585bbc6e --> 52e3d8d7_abf4_7343_1f98_3f701ec04082 6532b592_e173_3956_4bd1_d55d91adeefe["src"] cc8eb92a_b0c5_c461_8a5e_7435585bbc6e --> 6532b592_e173_3956_4bd1_d55d91adeefe e023ae51_0bf7_c8b1_0545_8e7304e4bb72["eslint"] cc8eb92a_b0c5_c461_8a5e_7435585bbc6e --> e023ae51_0bf7_c8b1_0545_8e7304e4bb72 f1417319_0940_9839_f3b2_304147ce4f9d["CompilerError"] cc8eb92a_b0c5_c461_8a5e_7435585bbc6e --> f1417319_0940_9839_f3b2_304147ce4f9d fe900090_ffb7_69bc_e43c_31d1506aebdf["ImpureFunctionCallsRule-test.ts"] fe900090_ffb7_69bc_e43c_31d1506aebdf --> cc8eb92a_b0c5_c461_8a5e_7435585bbc6e 7b06326c_10b5_45ec_3ebb_f8b909c17ef4["InvalidHooksRule-test.ts"] 7b06326c_10b5_45ec_3ebb_f8b909c17ef4 --> cc8eb92a_b0c5_c461_8a5e_7435585bbc6e bef2af1f_8aae_95c1_7312_e60ab412c9ae["NoAmbiguousJsxRule-test.ts"] bef2af1f_8aae_95c1_7312_e60ab412c9ae --> cc8eb92a_b0c5_c461_8a5e_7435585bbc6e 7f76a9cf_909b_bef1_2557_38a00b1190af["NoCapitalizedCallsRule-test.ts"] 7f76a9cf_909b_bef1_2557_38a00b1190af --> cc8eb92a_b0c5_c461_8a5e_7435585bbc6e 08707db7_da45_6476_8614_d872c7abc3f1["NoRefAccessInRender-tests.ts"] 08707db7_da45_6476_8614_d872c7abc3f1 --> cc8eb92a_b0c5_c461_8a5e_7435585bbc6e a4e0a434_c5ac_2a3c_80f4_783788be4192["PluginTest-test.ts"] a4e0a434_c5ac_2a3c_80f4_783788be4192 --> cc8eb92a_b0c5_c461_8a5e_7435585bbc6e 799656f0_feaf_2c82_77fc_4a08283ea146["shared-utils.ts"] 799656f0_feaf_2c82_77fc_4a08283ea146 --> cc8eb92a_b0c5_c461_8a5e_7435585bbc6e 09f2574e_a7bc_f280_9531_89cfe9b31a61["index.ts"] 09f2574e_a7bc_f280_9531_89cfe9b31a61 --> cc8eb92a_b0c5_c461_8a5e_7435585bbc6e style cc8eb92a_b0c5_c461_8a5e_7435585bbc6e fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import type {SourceLocation as BabelSourceLocation} from '@babel/types';
import {
CompilerDiagnosticOptions,
CompilerErrorDetailOptions,
CompilerSuggestionOperation,
} from 'babel-plugin-react-compiler/src';
import type {Linter, Rule} from 'eslint';
import runReactCompiler, {RunCacheEntry} from '../shared/RunReactCompiler';
import {
ErrorSeverity,
LintRulePreset,
LintRules,
type LintRule,
} from 'babel-plugin-react-compiler/src/CompilerError';
function assertExhaustive(_: never, errorMsg: string): never {
throw new Error(errorMsg);
}
function makeSuggestions(
detail: CompilerErrorDetailOptions | CompilerDiagnosticOptions,
): Array<Rule.SuggestionReportDescriptor> {
const suggest: Array<Rule.SuggestionReportDescriptor> = [];
if (Array.isArray(detail.suggestions)) {
for (const suggestion of detail.suggestions) {
switch (suggestion.op) {
case CompilerSuggestionOperation.InsertBefore:
suggest.push({
desc: suggestion.description,
fix(fixer) {
return fixer.insertTextBeforeRange(
suggestion.range,
suggestion.text,
);
},
});
break;
case CompilerSuggestionOperation.InsertAfter:
suggest.push({
desc: suggestion.description,
fix(fixer) {
return fixer.insertTextAfterRange(
suggestion.range,
suggestion.text,
);
},
});
break;
case CompilerSuggestionOperation.Replace:
suggest.push({
desc: suggestion.description,
fix(fixer) {
return fixer.replaceTextRange(suggestion.range, suggestion.text);
// ... (149 more lines)
Domain
Subdomains
Functions
Types
Dependencies
- CompilerError
- RunReactCompiler.ts
- eslint
- src
- types
Imported By
- compiler/packages/eslint-plugin-react-compiler/__tests__/ImpureFunctionCallsRule-test.ts
- compiler/packages/eslint-plugin-react-compiler/__tests__/InvalidHooksRule-test.ts
- compiler/packages/eslint-plugin-react-compiler/__tests__/NoAmbiguousJsxRule-test.ts
- compiler/packages/eslint-plugin-react-compiler/__tests__/NoCapitalizedCallsRule-test.ts
- compiler/packages/eslint-plugin-react-compiler/__tests__/NoRefAccessInRender-tests.ts
- compiler/packages/eslint-plugin-react-compiler/__tests__/PluginTest-test.ts
- compiler/packages/eslint-plugin-react-compiler/src/index.ts
- compiler/packages/eslint-plugin-react-compiler/__tests__/shared-utils.ts
Source
Frequently Asked Questions
What does ReactCompilerRule.ts do?
ReactCompilerRule.ts is a source file in the react codebase, written in typescript. It belongs to the BabelCompiler domain, Validation subdomain.
What functions are defined in ReactCompilerRule.ts?
ReactCompilerRule.ts defines 9 function(s): allRules, assertExhaustive, getReactCompilerResult, hasFlowSuppression, makeRule, makeSuggestions, mapErrorSeverityToESlint, recommendedLatestRules, recommendedRules.
What does ReactCompilerRule.ts depend on?
ReactCompilerRule.ts imports 5 module(s): CompilerError, RunReactCompiler.ts, eslint, src, types.
What files import ReactCompilerRule.ts?
ReactCompilerRule.ts is imported by 8 file(s): ImpureFunctionCallsRule-test.ts, InvalidHooksRule-test.ts, NoAmbiguousJsxRule-test.ts, NoCapitalizedCallsRule-test.ts, NoRefAccessInRender-tests.ts, PluginTest-test.ts, index.ts, shared-utils.ts.
Where is ReactCompilerRule.ts in the architecture?
ReactCompilerRule.ts is located at compiler/packages/eslint-plugin-react-compiler/src/rules/ReactCompilerRule.ts (domain: BabelCompiler, subdomain: Validation, directory: compiler/packages/eslint-plugin-react-compiler/src/rules).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free