diff --git a/compiler/packages/babel-plugin-react-compiler/src/Entrypoint/Program.ts b/compiler/packages/babel-plugin-react-compiler/src/Entrypoint/Program.ts index 3d6612afd44c7..1c1eb0b1f800a 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/Entrypoint/Program.ts +++ b/compiler/packages/babel-plugin-react-compiler/src/Entrypoint/Program.ts @@ -24,7 +24,7 @@ import { isHookDeclaration } from "../Utils/HookDeclaration"; import { assertExhaustive } from "../Utils/utils"; import { insertGatedFunctionDeclaration } from "./Gating"; import { addImportsToProgram, updateMemoCacheFunctionImport } from "./Imports"; -import { PluginOptions, parsePluginOptions } from "./Options"; +import { PluginOptions } from "./Options"; import { compileFn } from "./Pipeline"; import { filterSuppressionsThatAffectFunction, @@ -217,9 +217,7 @@ export function compileProgram( program: NodePath, pass: CompilerPass ): void { - const options = parsePluginOptions(pass.opts); - - if (options.sources) { + if (pass.opts.sources) { if (pass.filename === null) { const error = new CompilerError(); error.pushErrorDetail( @@ -235,21 +233,22 @@ export function compileProgram( return; } - if (!isFilePartOfSources(options.sources, pass.filename)) { + if (!isFilePartOfSources(pass.opts.sources, pass.filename)) { return; } } // Top level "use no forget", skip this file entirely if ( - findDirectiveDisablingMemoization(program.node.directives, options) != null + findDirectiveDisablingMemoization(program.node.directives, pass.opts) != + null ) { return; } const environment = parseEnvironmentConfig(pass.opts.environment ?? {}); const useMemoCacheIdentifier = program.scope.generateUidIdentifier("c"); - const moduleName = options.runtimeModule ?? "react/compiler-runtime"; + const moduleName = pass.opts.runtimeModule ?? "react/compiler-runtime"; if (hasMemoCacheFunctionImport(program, moduleName)) { return; } @@ -261,8 +260,8 @@ export function compileProgram( */ const suppressions = findProgramSuppressions( pass.comments, - options.eslintSuppressionRules ?? DEFAULT_ESLINT_SUPPRESSIONS, - options.flowSuppressions + pass.opts.eslintSuppressionRules ?? DEFAULT_ESLINT_SUPPRESSIONS, + pass.opts.flowSuppressions ); const lintError = suppressionsToCompilerError(suppressions); let hasCriticalError = lintError != null; @@ -319,11 +318,11 @@ export function compileProgram( config, fnType, useMemoCacheIdentifier.name, - options.logger, + pass.opts.logger, pass.filename, pass.code ); - options.logger?.logEvent(pass.filename, { + pass.opts.logger?.logEvent(pass.filename, { kind: "CompileSuccess", fnLoc: fn.node.loc ?? null, fnName: compiledFn.id?.name ?? null, @@ -370,12 +369,12 @@ export function compileProgram( }, { ...pass, - opts: { ...pass.opts, ...options }, + opts: { ...pass.opts, ...pass.opts }, filename: pass.filename ?? null, } ); - if (options.gating != null) { + if (pass.opts.gating != null) { const error = checkFunctionReferencedBeforeDeclarationAtTopLevel( program, compiledFns.map(({ originalFn }) => originalFn) @@ -390,13 +389,13 @@ export function compileProgram( let gating: null | ExternalFunction = null; try { // TODO: check for duplicate import specifiers - if (options.gating != null) { - gating = tryParseExternalFunction(options.gating); + if (pass.opts.gating != null) { + gating = tryParseExternalFunction(pass.opts.gating); externalFunctions.push(gating); } const enableEmitInstrumentForget = - options.environment?.enableEmitInstrumentForget; + pass.opts.environment?.enableEmitInstrumentForget; if (enableEmitInstrumentForget != null) { externalFunctions.push( tryParseExternalFunction(enableEmitInstrumentForget.fn) @@ -408,23 +407,23 @@ export function compileProgram( } } - if (options.environment?.enableEmitFreeze != null) { + if (pass.opts.environment?.enableEmitFreeze != null) { const enableEmitFreeze = tryParseExternalFunction( - options.environment.enableEmitFreeze + pass.opts.environment.enableEmitFreeze ); externalFunctions.push(enableEmitFreeze); } - if (options.environment?.enableEmitHookGuards != null) { + if (pass.opts.environment?.enableEmitHookGuards != null) { const enableEmitHookGuards = tryParseExternalFunction( - options.environment.enableEmitHookGuards + pass.opts.environment.enableEmitHookGuards ); externalFunctions.push(enableEmitHookGuards); } - if (options.environment?.enableChangeDetectionForDebugging != null) { + if (pass.opts.environment?.enableChangeDetectionForDebugging != null) { const enableChangeDetectionForDebugging = tryParseExternalFunction( - options.environment.enableChangeDetectionForDebugging + pass.opts.environment.enableChangeDetectionForDebugging ); externalFunctions.push(enableChangeDetectionForDebugging); }