Home / File/ reactCompiler.ts — react Source File

reactCompiler.ts — react Source File

Architecture documentation for reactCompiler.ts, a typescript file in the react codebase. 5 imports, 1 dependents.

File typescript BabelCompiler Validation 5 imports 1 dependents 7 functions

Entity Profile

Dependency Diagram

graph LR
  73dc1103_e33f_6e55_0717_0792300bc7e8["reactCompiler.ts"]
  102f7d62_f771_0080_dd43_d867f5a8bd55["core"]
  73dc1103_e33f_6e55_0717_0792300bc7e8 --> 102f7d62_f771_0080_dd43_d867f5a8bd55
  ba38a3cc_fa9d_cd5d_0746_ec93bcb397e1["parser"]
  73dc1103_e33f_6e55_0717_0792300bc7e8 --> ba38a3cc_fa9d_cd5d_0746_ec93bcb397e1
  6532b592_e173_3956_4bd1_d55d91adeefe["src"]
  73dc1103_e33f_6e55_0717_0792300bc7e8 --> 6532b592_e173_3956_4bd1_d55d91adeefe
  3d96d43f_3b5e_656b_d955_c4fbf4f8a2d6["Entrypoint"]
  73dc1103_e33f_6e55_0717_0792300bc7e8 --> 3d96d43f_3b5e_656b_d955_c4fbf4f8a2d6
  178fc52d_e7f8_dce1_75f6_f388c2223069["chalk"]
  73dc1103_e33f_6e55_0717_0792300bc7e8 --> 178fc52d_e7f8_dce1_75f6_f388c2223069
  62c6ef48_b6c1_13e9_0d99_fe0a9fcba79a["index.ts"]
  62c6ef48_b6c1_13e9_0d99_fe0a9fcba79a --> 73dc1103_e33f_6e55_0717_0792300bc7e8
  style 73dc1103_e33f_6e55_0717_0792300bc7e8 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 * as BabelCore from '@babel/core';
import {transformFromAstSync} from '@babel/core';
import * as BabelParser from '@babel/parser';
import BabelPluginReactCompiler, {
  ErrorSeverity,
  type CompilerErrorDetailOptions,
  type PluginOptions,
} from 'babel-plugin-react-compiler/src';
import {LoggerEvent as RawLoggerEvent} from 'babel-plugin-react-compiler/src/Entrypoint';
import chalk from 'chalk';

type LoggerEvent = RawLoggerEvent & {filename: string | null};

const SucessfulCompilation: Array<LoggerEvent> = [];
const ActionableFailures: Array<LoggerEvent> = [];
const OtherFailures: Array<LoggerEvent> = [];

const logger = {
  logEvent(filename: string | null, rawEvent: RawLoggerEvent) {
    const event = {...rawEvent, filename};
    switch (event.kind) {
      case 'CompileSuccess': {
        SucessfulCompilation.push(event);
        return;
      }
      case 'CompileError': {
        if (isActionableDiagnostic(event.detail)) {
          ActionableFailures.push(event);
          return;
        }
        OtherFailures.push(event);
        return;
      }
      case 'CompileDiagnostic':
      case 'PipelineError':
        OtherFailures.push(event);
        return;
    }
  },
};

const COMPILER_OPTIONS: PluginOptions = {
  noEmit: true,
  compilationMode: 'infer',
  panicThreshold: 'critical_errors',
  logger,
};

function isActionableDiagnostic(detail: CompilerErrorDetailOptions) {
  switch (detail.severity) {
    case ErrorSeverity.InvalidReact:
    case ErrorSeverity.InvalidJS:
      return true;
// ... (94 more lines)

Domain

Subdomains

Types

Dependencies

  • Entrypoint
  • chalk
  • core
  • parser
  • src

Frequently Asked Questions

What does reactCompiler.ts do?
reactCompiler.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 reactCompiler.ts?
reactCompiler.ts defines 7 function(s): compile, countUniqueLocInEvents, default.report, default.run, isActionableDiagnostic, logger.logEvent, runBabelPluginReactCompiler.
What does reactCompiler.ts depend on?
reactCompiler.ts imports 5 module(s): Entrypoint, chalk, core, parser, src.
What files import reactCompiler.ts?
reactCompiler.ts is imported by 1 file(s): index.ts.
Where is reactCompiler.ts in the architecture?
reactCompiler.ts is located at compiler/packages/react-compiler-healthcheck/src/checks/reactCompiler.ts (domain: BabelCompiler, subdomain: Validation, directory: compiler/packages/react-compiler-healthcheck/src/checks).

Analyze Your Own Codebase

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

Try Supermodel Free