From e1cd01a67c2883a5dafd913ffe4bae2b2de43559 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Fri, 20 Dec 2024 10:49:10 +0100 Subject: [PATCH] cleanup viteFinals --- .../react-native-web-vite/src/preset.ts | 39 +++++++++---------- .../src/plugins/mock-sveltekit-stores.ts | 2 +- code/frameworks/sveltekit/src/preset.ts | 25 ++++++------ 3 files changed, 31 insertions(+), 35 deletions(-) diff --git a/code/frameworks/react-native-web-vite/src/preset.ts b/code/frameworks/react-native-web-vite/src/preset.ts index 44e847171dda..d1ab9a5afb04 100644 --- a/code/frameworks/react-native-web-vite/src/preset.ts +++ b/code/frameworks/react-native-web-vite/src/preset.ts @@ -67,28 +67,25 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = const { pluginReactOptions = {} } = await options.presets.apply('frameworkOptions'); - const reactConfig = await reactViteFinal(config, options); + const { plugins = [], ...reactConfigWithoutPlugins } = await reactViteFinal(config, options); - const { plugins = [] } = reactConfig; - - plugins.unshift( - tsconfigPaths(), - flowPlugin({ - exclude: [/node_modules\/(?!react-native|@react-native)/], - }), - react({ - babel: { - babelrc: false, - configFile: false, - }, - jsxRuntime: 'automatic', - ...pluginReactOptions, - }) - ); - - plugins.push(reactNativeWeb()); - - return mergeConfig(reactConfig, { + return mergeConfig(reactConfigWithoutPlugins, { + plugins: [ + tsconfigPaths(), + flowPlugin({ + exclude: [/node_modules\/(?!react-native|@react-native)/], + }), + react({ + babel: { + babelrc: false, + configFile: false, + }, + jsxRuntime: 'automatic', + ...pluginReactOptions, + }), + ...plugins, + reactNativeWeb(), + ], optimizeDeps: { esbuildOptions: { plugins: [esbuildFlowPlugin(new RegExp(/\.(flow|jsx?)$/), (_path: string) => 'jsx')], diff --git a/code/frameworks/sveltekit/src/plugins/mock-sveltekit-stores.ts b/code/frameworks/sveltekit/src/plugins/mock-sveltekit-stores.ts index 98ceb6cc7e5c..39a5b2030a5b 100644 --- a/code/frameworks/sveltekit/src/plugins/mock-sveltekit-stores.ts +++ b/code/frameworks/sveltekit/src/plugins/mock-sveltekit-stores.ts @@ -7,7 +7,7 @@ import type { Plugin } from 'vite'; const filename = __filename ?? fileURLToPath(import.meta.url); const dir = dirname(filename); -export async function mockSveltekitStores() { +export function mockSveltekitStores() { return { name: 'storybook:sveltekit-mock-stores', config: () => ({ diff --git a/code/frameworks/sveltekit/src/preset.ts b/code/frameworks/sveltekit/src/preset.ts index 263a6b35429d..d0674661595f 100644 --- a/code/frameworks/sveltekit/src/preset.ts +++ b/code/frameworks/sveltekit/src/preset.ts @@ -25,17 +25,16 @@ export const previewAnnotations: PresetProperty<'previewAnnotations'> = (entry = export const viteFinal: NonNullable = async (config, options) => { const baseConfig = await svelteViteFinal(config, options); - let { plugins = [] } = baseConfig; - - // disable specific plugins that are not compatible with Storybook - plugins = ( - await withoutVitePlugins(plugins, [ - 'vite-plugin-sveltekit-compile', - 'vite-plugin-sveltekit-guard', - ]) - ) - .concat(configOverrides()) - .concat(await mockSveltekitStores()); - - return { ...baseConfig, plugins }; + return { + ...baseConfig, + plugins: [ + // disable specific plugins that are not compatible with Storybook + ...(await withoutVitePlugins(baseConfig.plugins ?? [], [ + 'vite-plugin-sveltekit-compile', + 'vite-plugin-sveltekit-guard', + ])), + configOverrides(), + mockSveltekitStores(), + ], + }; };