Skip to content

Commit

Permalink
Use object for transform config
Browse files Browse the repository at this point in the history
  • Loading branch information
Jack Pope committed Sep 19, 2024
1 parent 260f273 commit f4d3cee
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,12 @@ import {
import {Scope as BabelScope} from '@babel/traverse';
import {TypeSchema} from './TypeSchema';

export const ReactElementSymbolSchema = z.union([
z.literal('react.element'),
z.literal('react.transitional.element'),
]);
export const ReactElementSymbolSchema = z.object({
elementSymbol: z.union([
z.literal('react.element'),
z.literal('react.transitional.element'),
]),
});

export const ExternalFunctionSchema = z.object({
// Source for the imported module that exports the `importSpecifierName` functions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import {
markPredecessors,
reversePostorderBlocks,
} from '../HIR/HIRBuilder';
import {CompilerError} from '..';
import {CompilerError, EnvironmentConfig} from '..';

function createSymbolProperty(
fn: HIRFunction,
Expand Down Expand Up @@ -318,7 +318,9 @@ function createPropsProperties(
// TODO: Make PROD only with conditional statements
export function inlineJsxTransform(
fn: HIRFunction,
elementSymbol: 'react.element' | 'react.transitional.element',
inlineJsxTransformConfig: NonNullable<
EnvironmentConfig['inlineJsxTransform']
>,
): void {
for (const [, block] of fn.body.blocks) {
let nextInstructions: Array<Instruction> | null = null;
Expand Down Expand Up @@ -347,7 +349,7 @@ export function inlineJsxTransform(
instr,
nextInstructions,
'$$typeof',
elementSymbol,
inlineJsxTransformConfig.elementSymbol,
),
createTagProperty(fn, instr, nextInstructions, instr.value.tag),
refProperty,
Expand Down Expand Up @@ -383,7 +385,7 @@ export function inlineJsxTransform(
instr,
nextInstructions,
'$$typeof',
elementSymbol,
inlineJsxTransformConfig.elementSymbol,
),
createSymbolProperty(
fn,
Expand Down
2 changes: 1 addition & 1 deletion compiler/packages/snap/src/compiler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ function makePluginOptions(

let inlineJsxTransform: EnvironmentConfig['inlineJsxTransform'] = null;
if (firstLine.includes('@enableInlineJsxTransform')) {
inlineJsxTransform = 'react.transitional.element';
inlineJsxTransform = {elementSymbol: 'react.transitional.element'};
}

let logs: Array<{filename: string | null; event: LoggerEvent}> = [];
Expand Down

0 comments on commit f4d3cee

Please sign in to comment.