Home / Function/ transformFixtureInput() — react Function Reference

transformFixtureInput() — react Function Reference

Architecture documentation for the transformFixtureInput() function in compiler.ts from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  34f68e46_4ab8_f2b5_b44f_59f14d4d25b8["transformFixtureInput()"]
  f294d5ab_dd3b_6bca_e120_e970909a7dc8["compiler.ts"]
  34f68e46_4ab8_f2b5_b44f_59f14d4d25b8 -->|defined in| f294d5ab_dd3b_6bca_e120_e970909a7dc8
  7b109a5c_c041_536b_2f9e_eb9ea6d3da19["compile()"]
  7b109a5c_c041_536b_2f9e_eb9ea6d3da19 -->|calls| 34f68e46_4ab8_f2b5_b44f_59f14d4d25b8
  5a048c02_8e86_6fb8_e501_a05c0f563dce["parseLanguage()"]
  34f68e46_4ab8_f2b5_b44f_59f14d4d25b8 -->|calls| 5a048c02_8e86_6fb8_e501_a05c0f563dce
  4553e8b5_c1d7_17bf_ec31_bf39f1f5df21["parseSourceType()"]
  34f68e46_4ab8_f2b5_b44f_59f14d4d25b8 -->|calls| 4553e8b5_c1d7_17bf_ec31_bf39f1f5df21
  a87dd476_f026_8f78_2fa7_26db794e5375["parseInput()"]
  34f68e46_4ab8_f2b5_b44f_59f14d4d25b8 -->|calls| a87dd476_f026_8f78_2fa7_26db794e5375
  f4c5894c_f623_de40_477c_448f60514907["makePluginOptions()"]
  34f68e46_4ab8_f2b5_b44f_59f14d4d25b8 -->|calls| f4c5894c_f623_de40_477c_448f60514907
  bf1ae175_0a76_7aa4_ad79_8ea2236e3b0a["isExpectError()"]
  34f68e46_4ab8_f2b5_b44f_59f14d4d25b8 -->|calls| bf1ae175_0a76_7aa4_ad79_8ea2236e3b0a
  e280875d_a772_f261_3d24_55f4118e3e6d["format()"]
  34f68e46_4ab8_f2b5_b44f_59f14d4d25b8 -->|calls| e280875d_a772_f261_3d24_55f4118e3e6d
  style 34f68e46_4ab8_f2b5_b44f_59f14d4d25b8 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

compiler/packages/snap/src/compiler.ts lines 218–389

export async function transformFixtureInput(
  input: string,
  fixturePath: string,
  parseConfigPragmaFn: typeof ParseConfigPragma,
  plugin: BabelCore.PluginObj,
  includeEvaluator: boolean,
  debugIRLogger: (value: CompilerPipelineValue) => void,
  EffectEnum: typeof Effect,
  ValueKindEnum: typeof ValueKind,
  ValueReasonEnum: typeof ValueReason,
): Promise<{kind: 'ok'; value: TransformResult} | {kind: 'err'; msg: string}> {
  // Extract the first line to quickly check for custom test directives
  const firstLine = input.substring(0, input.indexOf('\n'));

  const language = parseLanguage(firstLine);
  const sourceType = parseSourceType(firstLine);
  // Preserve file extension as it determines typescript's babel transform
  // mode (e.g. stripping types, parsing rules for brackets)
  const filename =
    path.basename(fixturePath) + (language === 'typescript' ? '.ts' : '');
  const inputAst = parseInput(input, filename, language, sourceType);
  // Give babel transforms an absolute path as relative paths get prefixed
  // with `cwd`, which is different across machines
  const virtualFilepath = '/' + filename;

  const presets =
    language === 'typescript'
      ? TypescriptEvaluatorPresets
      : FlowEvaluatorPresets;

  /**
   * Get Forget compiled code
   */
  const {options, loggerTestOnly, logs} = makePluginOptions(
    firstLine,
    parseConfigPragmaFn,
    debugIRLogger,
    EffectEnum,
    ValueKindEnum,
    ValueReasonEnum,
  );
  const forgetResult = transformFromAstSync(inputAst, input, {
    filename: virtualFilepath,
    highlightCode: false,
    retainLines: true,
    compact: true,
    plugins: [
      [plugin, options],
      'babel-plugin-fbt',
      'babel-plugin-fbt-runtime',
      'babel-plugin-idx',
    ],
    sourceType: 'module',
    ast: includeEvaluator,
    cloneInputAst: includeEvaluator,
    configFile: false,
    babelrc: false,
  });
  invariant(
    forgetResult?.code != null,
    'Expected BabelPluginReactForget to codegen successfully.',
  );
  const forgetCode = forgetResult.code;
  let evaluatorCode = null;

  if (
    includeEvaluator &&
    !SproutTodoFilter.has(fixturePath) &&
    !isExpectError(filename)
  ) {
    let forgetEval: string;
    try {
      invariant(
        forgetResult?.ast != null,
        'Expected BabelPluginReactForget ast.',
      );
      const result = transformFromAstSync(forgetResult.ast, forgetCode, {
        presets,
        filename: virtualFilepath,
        configFile: false,
        babelrc: false,

Domain

Subdomains

Called By

Frequently Asked Questions

What does transformFixtureInput() do?
transformFixtureInput() is a function in the react codebase, defined in compiler/packages/snap/src/compiler.ts.
Where is transformFixtureInput() defined?
transformFixtureInput() is defined in compiler/packages/snap/src/compiler.ts at line 218.
What does transformFixtureInput() call?
transformFixtureInput() calls 6 function(s): format, isExpectError, makePluginOptions, parseInput, parseLanguage, parseSourceType.
What calls transformFixtureInput()?
transformFixtureInput() is called by 1 function(s): compile.

Analyze Your Own Codebase

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

Try Supermodel Free