Home / Function/ runReactCompilerImpl() — react Function Reference

runReactCompilerImpl() — react Function Reference

Architecture documentation for the runReactCompilerImpl() function in RunReactCompiler.ts from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  a65ef042_f6cf_f635_9ce4_aa7d8d0ecb18["runReactCompilerImpl()"]
  0e801e17_9dc9_7a83_ce0f_d28b56e090f5["RunReactCompiler.ts"]
  a65ef042_f6cf_f635_9ce4_aa7d8d0ecb18 -->|defined in| 0e801e17_9dc9_7a83_ce0f_d28b56e090f5
  a175348c_963a_8fa3_863b_f233ca6a33b6["runReactCompiler()"]
  a175348c_963a_8fa3_863b_f233ca6a33b6 -->|calls| a65ef042_f6cf_f635_9ce4_aa7d8d0ecb18
  14b7faa8_3b52_8cd7_c4d1_996ed950dc7f["push()"]
  a65ef042_f6cf_f635_9ce4_aa7d8d0ecb18 -->|calls| 14b7faa8_3b52_8cd7_c4d1_996ed950dc7f
  3b279355_1122_eec7_78a2_e5c73c152b88["getFlowSuppressions()"]
  a65ef042_f6cf_f635_9ce4_aa7d8d0ecb18 -->|calls| 3b279355_1122_eec7_78a2_e5c73c152b88
  style a65ef042_f6cf_f635_9ce4_aa7d8d0ecb18 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/eslint-plugin-react-hooks/src/shared/RunReactCompiler.ts lines 182–260

function runReactCompilerImpl({
  sourceCode,
  filename,
  userOpts,
}: RunParams): RunCacheEntry {
  // Compat with older versions of eslint
  const options = parsePluginOptions({
    ...COMPILER_OPTIONS,
    ...userOpts,
    environment: {
      ...COMPILER_OPTIONS.environment,
      ...userOpts.environment,
    },
  });
  const results: RunCacheEntry = {
    sourceCode: sourceCode.text,
    filename,
    userOpts,
    flowSuppressions: [],
    events: [],
  };
  const userLogger: Logger | null = options.logger;
  options.logger = {
    logEvent: (eventFilename, event): void => {
      userLogger?.logEvent(eventFilename, event);
      results.events.push(event);
    },
  };

  try {
    options.environment = validateEnvironmentConfig(options.environment ?? {});
  } catch (err: unknown) {
    options.logger?.logEvent(filename, err as LoggerEvent);
  }

  let babelAST: ParseResult<File> | null = null;

  if (filename.endsWith('.tsx') || filename.endsWith('.ts')) {
    try {
      babelAST = babelParse(sourceCode.text, {
        sourceFilename: filename,
        sourceType: 'unambiguous',
        plugins: ['typescript', 'jsx'],
      });
    } catch {
      /* empty */
    }
  } else {
    try {
      babelAST = HermesParser.parse(sourceCode.text, {
        babel: true,
        enableExperimentalComponentSyntax: true,
        sourceFilename: filename,
        sourceType: 'module',
      });
    } catch {
      /* empty */
    }
  }

  if (babelAST != null) {
    results.flowSuppressions = getFlowSuppressions(sourceCode);
    try {
      transformFromAstSync(babelAST, sourceCode.text, {
        filename,
        highlightCode: false,
        retainLines: true,
        plugins: [[BabelPluginReactCompiler, options]],
        sourceType: 'module',
        configFile: false,
        babelrc: false,
      });
    } catch (err) {
      /* errors handled by injected logger */
    }
  }

  return results;
}

Domain

Subdomains

Called By

Frequently Asked Questions

What does runReactCompilerImpl() do?
runReactCompilerImpl() is a function in the react codebase, defined in packages/eslint-plugin-react-hooks/src/shared/RunReactCompiler.ts.
Where is runReactCompilerImpl() defined?
runReactCompilerImpl() is defined in packages/eslint-plugin-react-hooks/src/shared/RunReactCompiler.ts at line 182.
What does runReactCompilerImpl() call?
runReactCompilerImpl() calls 2 function(s): getFlowSuppressions, push.
What calls runReactCompilerImpl()?
runReactCompilerImpl() is called by 1 function(s): runReactCompiler.

Analyze Your Own Codebase

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

Try Supermodel Free