import { defineConfig , loadEnv } from 'vite'; import react from '@vitejs/plugin-react'; import { resolve } from 'node:path'; const localServices = { ums: 3010, wall: 3011, mag: 3012, metric: 3013, recognition: 3014, form: 3015, detailing: 3016, competition: 3017, communication: 3018, formreminders: 3019, catalog: 3020, reports: 3021, rcpa: 3022, events: 3023, contact: 3024, workflow: 3025, forum: 4002, vgreet: 4003, }; const localProxy = Object.fromEntries( Object.entries(localServices).map(([service, port]) => [ `/api/${service}`, { target: `http://localhost:${port}`, changeOrigin: true, rewrite: (path) => path.replace(new RegExp(`^/api/${service}`), '/dev'), }, ]), ); const productionProxy = { '/api/ums/hierarchy/get_all': { target: 'https://ljtw6cnu6kzxm3s76upgsvmz5u0ufrep.lambda-url.ap-south-1.on.aws', changeOrigin: true, secure: true, rewrite: () => '/', }, '/api': { target: 'https://rapportapi.click', changeOrigin: true, secure: true, rewrite: (path) => path.replace(/^\/api/, ''), }, }; const laravelProxy = { '/laravel-api': { target: process.env.VITE_LARAVEL_ORIGIN || 'http://127.0.0.1:8000', changeOrigin: true, rewrite: (path) => path.replace(/^\/laravel-api/, '/api'), }, }; export default defineConfig(({ mode }) => { const env = loadEnv(mode, process.cwd(), ''); return { plugins: [react()], resolve: { alias: { '@': resolve(__dirname, 'src') }, }, server: { port: 5173, proxy: { ...laravelProxy, ...(env.VITE_API_MODE === 'local' ? localProxy : productionProxy), }, }, }; });