Home / File/ index.ts — react Source File

index.ts — react Source File

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

File typescript BabelCompiler Validation 3 imports 1 dependents 1 functions

Entity Profile

Dependency Diagram

graph LR
  b656edc6_fe94_de98_6d14_11431f83e3a2["index.ts"]
  102f7d62_f771_0080_dd43_d867f5a8bd55["core"]
  b656edc6_fe94_de98_6d14_11431f83e3a2 --> 102f7d62_f771_0080_dd43_d867f5a8bd55
  6532b592_e173_3956_4bd1_d55d91adeefe["src"]
  b656edc6_fe94_de98_6d14_11431f83e3a2 --> 6532b592_e173_3956_4bd1_d55d91adeefe
  2c31fc2d_8ad7_2757_84a0_d1d78436c41b["prettier"]
  b656edc6_fe94_de98_6d14_11431f83e3a2 --> 2c31fc2d_8ad7_2757_84a0_d1d78436c41b
  18cd5de5_c350_7de1_3060_3c6253caf5c4["index.ts"]
  18cd5de5_c350_7de1_3060_3c6253caf5c4 --> b656edc6_fe94_de98_6d14_11431f83e3a2
  style b656edc6_fe94_de98_6d14_11431f83e3a2 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 {parseAsync, transformFromAstAsync} from '@babel/core';
import BabelPluginReactCompiler, {
  type PluginOptions,
} from 'babel-plugin-react-compiler/src';
import * as prettier from 'prettier';

export let lastResult: BabelCore.BabelFileResult | null = null;

export type PrintedCompilerPipelineValue =
  | {
      kind: 'hir';
      name: string;
      fnName: string | null;
      value: string;
    }
  | {kind: 'reactive'; name: string; fnName: string | null; value: string}
  | {kind: 'debug'; name: string; fnName: string | null; value: string};

type CompileOptions = {
  text: string;
  file: string;
  options: PluginOptions | null;
};
export async function compile({
  text,
  file,
  options,
}: CompileOptions): Promise<BabelCore.BabelFileResult> {
  const ast = await parseAsync(text, {
    sourceFileName: file,
    parserOpts: {
      plugins: ['typescript', 'jsx'],
    },
    sourceType: 'module',
  });
  if (ast == null) {
    throw new Error('Could not parse');
  }
  const plugins =
    options != null
      ? [[BabelPluginReactCompiler, options]]
      : [[BabelPluginReactCompiler]];
  const result = await transformFromAstAsync(ast, text, {
    filename: file,
    highlightCode: false,
    retainLines: true,
    plugins,
    sourceType: 'module',
    sourceFileName: file,
  });
  if (result?.code == null) {
    throw new Error(
      `Expected BabelPluginReactCompiler to compile successfully, got ${result}`,
    );
  }
  try {
    result.code = await prettier.format(result.code, {
      semi: false,
      parser: 'babel-ts',
    });
    if (result.code != null) {
      lastResult = result;
    }
  } catch (err) {
    // If prettier failed just log, no need to crash
    console.error(err);
  }
  return result;
}

Domain

Subdomains

Functions

Dependencies

  • core
  • prettier
  • src

Frequently Asked Questions

What does index.ts do?
index.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 index.ts?
index.ts defines 1 function(s): compile.
What does index.ts depend on?
index.ts imports 3 module(s): core, prettier, src.
What files import index.ts?
index.ts is imported by 1 file(s): index.ts.
Where is index.ts in the architecture?
index.ts is located at compiler/packages/react-mcp-server/src/compiler/index.ts (domain: BabelCompiler, subdomain: Validation, directory: compiler/packages/react-mcp-server/src/compiler).

Analyze Your Own Codebase

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

Try Supermodel Free