import { sveltekit } from "@sveltejs/kit/vite"; import { defineConfig } from "vite"; import { readFileSync } from "node:fs"; import { fileURLToPath } from "node:url"; const pkg = JSON.parse( readFileSync( fileURLToPath(new URL("./package.json", import.meta.url)), "utf8", ), ) as { version: string }; // Default upstream gateway address used by the dev proxy. Override by // pointing `VITE_DEV_PROXY_TARGET` at a different gateway when working // with a remote stack instead of `tools/local-dev/`. const DEV_PROXY_TARGET = process.env.VITE_DEV_PROXY_TARGET ?? "http://localhost:8080"; export default defineConfig({ plugins: [sveltekit()], define: { __APP_VERSION__: JSON.stringify(pkg.version), }, server: { // Same-origin proxy so the browser sees only `localhost:5173` // and never trips a cross-origin preflight against the // gateway's REST + Connect-Web surfaces. Production deployments // serve the UI and the gateway behind a single host, so the // proxy is purely a dev-time convenience. proxy: { "/api": { target: DEV_PROXY_TARGET, changeOrigin: false, }, "/galaxy.gateway.v1.EdgeGateway": { target: DEV_PROXY_TARGET, changeOrigin: false, // Connect-Web server-streaming (`SubscribeEvents`) uses // chunked HTTP responses; http-proxy passes them through // transparently as long as buffering stays off, which is // the default. }, }, }, });