From 9dd89574f64bcbadacaa4e1012f4a1e4c0777582 Mon Sep 17 00:00:00 2001 From: Benjamin Kindle Date: Sat, 1 Mar 2025 15:42:42 -0500 Subject: [PATCH] fix: avoid codegen when configuration changes (#81) * fix: avoid codegen when configuration changes * fixup! remove some things that I added to reproduce/test --- packages/unplugin/src/plugin/core.ts | 15 +++++++++++---- packages/unplugin/src/plugin/create-context.ts | 5 ++++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/packages/unplugin/src/plugin/core.ts b/packages/unplugin/src/plugin/core.ts index 6496c7e4..b5756cc3 100644 --- a/packages/unplugin/src/plugin/core.ts +++ b/packages/unplugin/src/plugin/core.ts @@ -68,8 +68,15 @@ export interface PandaPluginOptions extends Partial, Pick = // @ts-expect-error initPromise = loadConfig({ cwd: options.cwd, file: options.configPath }).then(async (conf: LoadConfigResult) => { conf.config.cwd = options.cwd - _ctx = createContext({ root: options.cwd, conf }) + _ctx = createContext({ root: options.cwd, conf, codegen: options.codegen }) if (options.contextCreated) { await options.contextCreated({ context: _ctx.panda }) } @@ -251,7 +258,7 @@ export const unpluginFactory: UnpluginFactory = } // (re) generate the `styled-system` (outdir) on server (re)start - if (options.codeGen) { + if (options.codegen) { const { msg } = await codegen(ctx.panda) } // console.log(options) @@ -303,7 +310,7 @@ export const unpluginFactory: UnpluginFactory = } } -const resolveOptions = (options: PandaPluginOptions): RequiredBy => { +const resolveOptions = (options: PandaPluginOptions): RequiredBy => { let optimizeJs = options.optimizeJs ?? 'auto' if (typeof optimizeJs === 'object') { optimizeJs = { @@ -326,6 +333,6 @@ const resolveOptions = (options: PandaPluginOptions): RequiredBy { @@ -61,7 +62,9 @@ export const createContext = (options: ContextOptions) => { // logger.info('ctx:updated', 'config rebuilt ✅') await panda.hooks['config:change']?.({ config: panda.config, changes: affecteds }) - await codegen(panda, Array.from(affecteds.artifacts)) + if(options.codegen) { + await codegen(panda, Array.from(affecteds.artifacts)) + } return panda },