From 666a7e08b5255b329fe92d279a30d89f83d04ae5 Mon Sep 17 00:00:00 2001 From: "Alexis H. Munsayac" Date: Wed, 24 Jan 2024 18:16:25 +0800 Subject: [PATCH] Fix pre-processing --- src/babel/core/types.ts | 1 - src/babel/index.ts | 14 +++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/babel/core/types.ts b/src/babel/core/types.ts index 4f960ce..5aa7327 100644 --- a/src/babel/core/types.ts +++ b/src/babel/core/types.ts @@ -40,7 +40,6 @@ export interface StateContext { identifiers: Map; namespaces: Map; }; - processed: boolean; filename: string | undefined; bundler: RuntimeType; fixRender: boolean; diff --git a/src/babel/index.ts b/src/babel/index.ts index 55ccb5b..4534e5e 100644 --- a/src/babel/index.ts +++ b/src/babel/index.ts @@ -179,27 +179,29 @@ function setupProgram( state: StateContext, path: babel.NodePath, comments: t.Comment[] | undefined | null, -): void { +): boolean { let shouldSkip = false; + let isDone = false; if (comments) { for (const { value: comment } of comments) { if (/^\s*@refresh skip\s*$/.test(comment)) { - state.processed = true; + isDone = true; shouldSkip = true; break; } if (/^\s*@refresh reload\s*$/.test(comment)) { - state.processed = true; + isDone = true; path.pushContainer('body', getHMRDeclineCall(state, path)); break; } } } - captureIdentifiers(state, path); if (!shouldSkip && state.fixRender) { + captureIdentifiers(state, path); fixRenderCalls(state, path); } + return isDone; } function isStatementTopLevel(path: babel.NodePath): boolean { @@ -346,13 +348,11 @@ export default function solidRefreshPlugin(): babel.PluginObj { identifiers: new Map(), namespaces: new Map(), }, - processed: false, filename: context.filename, bundler: context.opts.bundler || 'standard', fixRender: context.opts.fixRender ?? true, }; - setupProgram(state, programPath, context.file.ast.comments); - if (state.processed) { + if (setupProgram(state, programPath, context.file.ast.comments)) { return; } programPath.traverse({