Skip to content

Commit

Permalink
fix[compiler] remove duplicate parsePluginOptions from the compilePro…
Browse files Browse the repository at this point in the history
…gram
  • Loading branch information
yossydev committed Jun 10, 2024
1 parent 6b35ff7 commit 8cdc67d
Showing 1 changed file with 20 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -217,9 +217,7 @@ export function compileProgram(
program: NodePath<t.Program>,
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(
Expand All @@ -235,21 +233,21 @@ 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;
}
Expand All @@ -261,8 +259,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;
Expand Down Expand Up @@ -319,11 +317,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,
Expand Down Expand Up @@ -370,12 +368,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)
Expand All @@ -390,13 +388,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)
Expand All @@ -408,23 +406,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);
}
Expand Down

0 comments on commit 8cdc67d

Please sign in to comment.