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
  f669130d_1dfd_ce21_6e6c_fdd29cff29f1["runReactCompilerImpl()"]
  93161a4a_8836_f386_2264_41352eee2303["RunReactCompiler.ts"]
  f669130d_1dfd_ce21_6e6c_fdd29cff29f1 -->|defined in| 93161a4a_8836_f386_2264_41352eee2303
  d4cd9aad_c1ae_8b32_c4af_ba2106ad7951["runReactCompiler()"]
  d4cd9aad_c1ae_8b32_c4af_ba2106ad7951 -->|calls| f669130d_1dfd_ce21_6e6c_fdd29cff29f1
  82cff55e_c62f_83e0_0695_7a9f132d4b4e["push()"]
  f669130d_1dfd_ce21_6e6c_fdd29cff29f1 -->|calls| 82cff55e_c62f_83e0_0695_7a9f132d4b4e
  f662ed1a_260d_752c_d423_1b4a995b2f6b["getFlowSuppressions()"]
  f669130d_1dfd_ce21_6e6c_fdd29cff29f1 -->|calls| f662ed1a_260d_752c_d423_1b4a995b2f6b
  style f669130d_1dfd_ce21_6e6c_fdd29cff29f1 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

compiler/packages/eslint-plugin-react-compiler/src/shared/RunReactCompiler.ts lines 80–157

function runReactCompilerImpl({
  sourceCode,
  filename,
  userOpts,
}: RunParams): RunCacheEntry {
  // Compat with older versions of eslint
  const options: PluginOptions = 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 compiler/packages/eslint-plugin-react-compiler/src/shared/RunReactCompiler.ts.
Where is runReactCompilerImpl() defined?
runReactCompilerImpl() is defined in compiler/packages/eslint-plugin-react-compiler/src/shared/RunReactCompiler.ts at line 80.
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