From b41cd962dba4df22254e3cfbfacb0f620b43dd43 Mon Sep 17 00:00:00 2001 From: Nate Kelley Date: Mon, 6 Oct 2025 10:47:37 -0600 Subject: [PATCH] dynamically import playwright stuff --- .../src/api/server-functions/browser-login.ts | 3 +- apps/web/src/router.tsx | 33 ++----------------- .../screenshots/chats.$chatId.index.tsx | 2 +- .../dashboards.$dashboardId.index.tsx | 2 +- .../screenshots/metrics.$metricId.index.tsx | 2 +- apps/web/vite.config.ts | 3 ++ 6 files changed, 10 insertions(+), 35 deletions(-) diff --git a/apps/web/src/api/server-functions/browser-login.ts b/apps/web/src/api/server-functions/browser-login.ts index 210f18adc..7384d91af 100644 --- a/apps/web/src/api/server-functions/browser-login.ts +++ b/apps/web/src/api/server-functions/browser-login.ts @@ -1,4 +1,4 @@ -import { type Browser, chromium, type Page } from 'playwright'; +import type { Browser, Page } from 'playwright'; import { env } from '@/env'; import { getSupabaseServerClient } from '@/integrations/supabase/server'; @@ -47,6 +47,7 @@ export const browserLogin = async >({ user: user, }; + const { chromium } = await import('playwright'); const browser = await chromium.launch(); try { diff --git a/apps/web/src/router.tsx b/apps/web/src/router.tsx index 64c35c99a..2712641dd 100644 --- a/apps/web/src/router.tsx +++ b/apps/web/src/router.tsx @@ -1,8 +1,7 @@ import type { AssetType } from '@buster/server-shared/assets'; import type { QueryClient } from '@tanstack/react-query'; -import { createRouter, createRouter as createTanstackRouter } from '@tanstack/react-router'; +import { createRouter } from '@tanstack/react-router'; import { setupRouterSsrQueryIntegration } from '@tanstack/react-router-ssr-query'; -import { routerWithQueryClient } from '@tanstack/react-router-with-query'; import { LazyCatchErrorCard, LazyGlobalErrorCard, @@ -16,46 +15,18 @@ export interface AppRouterContext { queryClient: QueryClient; } -// Create a new router instance -// export const createRouter = () => { -// const queryClient = TanstackQuery.getQueryClient(); - -// const router = routerWithQueryClient( -// createTanstackRouter({ -// routeTree, -// context: { queryClient }, -// scrollRestoration: true, -// defaultPreload: 'intent', -// defaultPendingComponent: FileIndeterminateLoader, -// defaultErrorComponent: LazyGlobalErrorCard, -// defaultNotFoundComponent: NotFoundCard, -// defaultOnCatch: LazyCatchErrorCard, -// Wrap: (props) => { -// return ( -// -// {props.children} -// -// ); -// }, -// }), -// queryClient -// ); - -// return router; -// }; - export function getRouter() { const queryClient = TanstackQuery.getQueryClient(); const router = createRouter({ routeTree, context: { queryClient }, - defaultPreload: 'intent', scrollRestoration: true, defaultPendingComponent: FileIndeterminateLoader, defaultErrorComponent: LazyGlobalErrorCard, defaultNotFoundComponent: NotFoundCard, defaultOnCatch: LazyCatchErrorCard, + defaultPreload: 'intent', }); setupRouterSsrQueryIntegration({ router, diff --git a/apps/web/src/routes/screenshots/chats.$chatId.index.tsx b/apps/web/src/routes/screenshots/chats.$chatId.index.tsx index 7258c9fa4..f4e8b2c2b 100644 --- a/apps/web/src/routes/screenshots/chats.$chatId.index.tsx +++ b/apps/web/src/routes/screenshots/chats.$chatId.index.tsx @@ -1,6 +1,5 @@ import { createFileRoute } from '@tanstack/react-router'; import { z } from 'zod'; -import { browserLogin } from '@/api/server-functions/browser-login'; import { createScreenshotResponse } from '@/api/server-functions/screenshot-helpers'; import { createHrefFromLink } from '@/lib/routes'; @@ -24,6 +23,7 @@ export const Route = createFileRoute('/screenshots/chats/$chatId/')({ ); try { + const { browserLogin } = await import('@/api/server-functions/browser-login'); const { result: screenshotBuffer } = await browserLogin({ width, height, diff --git a/apps/web/src/routes/screenshots/dashboards.$dashboardId.index.tsx b/apps/web/src/routes/screenshots/dashboards.$dashboardId.index.tsx index 8c370d3c1..de1e40759 100644 --- a/apps/web/src/routes/screenshots/dashboards.$dashboardId.index.tsx +++ b/apps/web/src/routes/screenshots/dashboards.$dashboardId.index.tsx @@ -1,6 +1,5 @@ import { createFileRoute } from '@tanstack/react-router'; import { z } from 'zod'; -import { browserLogin } from '@/api/server-functions/browser-login'; import { createScreenshotResponse } from '@/api/server-functions/screenshot-helpers'; import { createHrefFromLink } from '@/lib/routes'; @@ -25,6 +24,7 @@ export const Route = createFileRoute('/screenshots/dashboards/$dashboardId/')({ ); try { + const { browserLogin } = await import('@/api/server-functions/browser-login'); const { result: screenshotBuffer } = await browserLogin({ width, height, diff --git a/apps/web/src/routes/screenshots/metrics.$metricId.index.tsx b/apps/web/src/routes/screenshots/metrics.$metricId.index.tsx index 0da0eb43e..d7ee125c7 100644 --- a/apps/web/src/routes/screenshots/metrics.$metricId.index.tsx +++ b/apps/web/src/routes/screenshots/metrics.$metricId.index.tsx @@ -1,6 +1,5 @@ import { createFileRoute } from '@tanstack/react-router'; import { z } from 'zod'; -import { browserLogin } from '@/api/server-functions/browser-login'; import { createScreenshotResponse } from '@/api/server-functions/screenshot-helpers'; import { createHrefFromLink } from '@/lib/routes'; @@ -25,6 +24,7 @@ export const Route = createFileRoute('/screenshots/metrics/$metricId/')({ ); try { + const { browserLogin } = await import('@/api/server-functions/browser-login'); const { result: screenshotBuffer } = await browserLogin({ width, height, diff --git a/apps/web/vite.config.ts b/apps/web/vite.config.ts index 42829e9b3..86e657738 100644 --- a/apps/web/vite.config.ts +++ b/apps/web/vite.config.ts @@ -38,6 +38,9 @@ const config = defineConfig(({ command, mode }) => { 'import.meta.env.VITE_BUILD_ID': JSON.stringify(buildId), 'import.meta.env.VITE_BUILD_AT': JSON.stringify(buildAt), }, + optimizeDeps: { + exclude: ['playwright', 'playwright-core', 'chromium-bidi'], + }, plugins: [ // this is the plugin that enables path aliases viteTsConfigPaths({ projects: ['./tsconfig.json'] }),