Files
trade-frontend/apps/visualizer/vite.config.ts
2026-01-06 12:33:47 +01:00

44 lines
1.2 KiB
TypeScript

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}`);
});
},
},
},
},
});