import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import { VitePWA } from 'vite-plugin-pwa'; // Dev proxy forwards API + WebSocket to the Fastify server on :3000 so the web // app and server share an origin (matching the production reverse-proxy setup). export default defineConfig({ plugins: [ react(), VitePWA({ registerType: 'autoUpdate', // Never cache the OBS overlay route — it must always be live. workbox: { navigateFallbackDenylist: [/^\/overlay\//] }, manifest: { name: 'Scoreboard Tools', short_name: 'Scoreboard', description: 'Real-time Super Smash Bros Ultimate tournament scoreboards', theme_color: '#0d1b2a', background_color: '#0d1b2a', display: 'standalone', start_url: '/', icons: [ { src: '/icon.svg', sizes: 'any', type: 'image/svg+xml', purpose: 'any maskable' }, ], }, }), ], server: { port: 5173, proxy: { '/api': 'http://localhost:3000', '/uploads': 'http://localhost:3000', '/ws': { target: 'ws://localhost:3000', ws: true }, }, }, });