Home / File/ index.ts — react Source File

index.ts — react Source File

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

File typescript BabelCompiler Validation 6 imports 1 dependents 1 functions

Entity Profile

Dependency Diagram

graph LR
  4a067d5c_bbcb_c424_2a8c_331d08f994f4["index.ts"]
  102f7d62_f771_0080_dd43_d867f5a8bd55["core"]
  4a067d5c_bbcb_c424_2a8c_331d08f994f4 --> 102f7d62_f771_0080_dd43_d867f5a8bd55
  33e3aca7_66ee_ce27_72ad_b6d7fb17e06c["babel-plugin-react-compiler"]
  4a067d5c_bbcb_c424_2a8c_331d08f994f4 --> 33e3aca7_66ee_ce27_72ad_b6d7fb17e06c
  37f720e4_fff3_ae37_6209_c9a4d57720ea["babel.js"]
  4a067d5c_bbcb_c424_2a8c_331d08f994f4 --> 37f720e4_fff3_ae37_6209_c9a4d57720ea
  2fb395b5_83d7_bd84_f6d4_e6eb93d46cbe["estree"]
  4a067d5c_bbcb_c424_2a8c_331d08f994f4 --> 2fb395b5_83d7_bd84_f6d4_e6eb93d46cbe
  c8164626_5f31_06be_8d18_f60b20438832["typescript"]
  4a067d5c_bbcb_c424_2a8c_331d08f994f4 --> c8164626_5f31_06be_8d18_f60b20438832
  cf4e707f_7fdd_6e90_ffb8_10ca93718846["standalone"]
  4a067d5c_bbcb_c424_2a8c_331d08f994f4 --> cf4e707f_7fdd_6e90_ffb8_10ca93718846
  45729896_cc85_f8cb_a3e3_efc08e3b01a6["index.ts"]
  45729896_cc85_f8cb_a3e3_efc08e3b01a6 --> 4a067d5c_bbcb_c424_2a8c_331d08f994f4
  style 4a067d5c_bbcb_c424_2a8c_331d08f994f4 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';
import * as babelParser from 'prettier/plugins/babel.js';
import estreeParser from 'prettier/plugins/estree';
import * as typescriptParser from 'prettier/plugins/typescript';
import * as prettier from 'prettier/standalone';

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

type CompileOptions = {
  text: string;
  file: string;
  options: PluginOptions | null;
};
export async function compile({
  text,
  file,
  options,
}: CompileOptions): Promise<BabelCore.BabelFileResult | null> {
  const ast = await parseAsync(text, {
    sourceFileName: file,
    parserOpts: {
      plugins: ['typescript', 'jsx'],
    },
    sourceType: 'module',
    configFile: false,
    babelrc: false,
  });
  if (ast == null) {
    return null;
  }
  const plugins =
    options != null
      ? [[BabelPluginReactCompiler, options]]
      : [[BabelPluginReactCompiler]];
  const result = await transformFromAstAsync(ast, text, {
    filename: file,
    highlightCode: false,
    retainLines: true,
    plugins,
    sourceType: 'module',
    sourceFileName: file,
    configFile: false,
    babelrc: false,
  });
  if (result?.code == null) {
    throw new Error(
      `Expected BabelPluginReactCompiler to compile successfully, got ${result}`,
    );
  }
  result.code = await prettier.format(result.code, {
    semi: false,
    parser: 'babel-ts',
    plugins: [babelParser, estreeParser, typescriptParser],
  });
  if (result.code != null) {
    lastResult = result;
  }
  return result;
}

Domain

Subdomains

Functions

Dependencies

  • babel-plugin-react-compiler
  • babel.js
  • core
  • estree
  • standalone
  • typescript

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 6 module(s): babel-plugin-react-compiler, babel.js, core, estree, standalone, typescript.
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-forgive/server/src/compiler/index.ts (domain: BabelCompiler, subdomain: Validation, directory: compiler/packages/react-forgive/server/src/compiler).

Analyze Your Own Codebase

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

Try Supermodel Free