import fs from 'node:fs'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; const DIR = path.dirname(fileURLToPath(import.meta.url)); const ROOT = path.resolve(DIR, '../..'); function readApiReadToken(): string | undefined { if (process.env.API_READ_TOKEN) return process.env.API_READ_TOKEN; const p = path.join(ROOT, 'tokens', 'read.json'); if (!fs.existsSync(p)) return undefined; try { const raw = fs.readFileSync(p, 'utf8'); const json = JSON.parse(raw) as { token?: string }; return json?.token ? String(json.token) : undefined; } catch { return undefined; } } const apiReadToken = readApiReadToken(); export default defineConfig({ plugins: [react()], server: { port: 5173, strictPort: true, proxy: { '/api': { target: process.env.API_PROXY_TARGET || 'http://localhost:8787', changeOrigin: true, rewrite: (p) => p.replace(/^\/api/, ''), configure: (proxy) => { proxy.on('proxyReq', (proxyReq) => { if (apiReadToken) proxyReq.setHeader('Authorization', `Bearer ${apiReadToken}`); }); }, }, }, }, });