import { defineConfig, type ProxyOptions } from "vite";
import react from "@vitejs/plugin-react";

const proxy = {
  // Live API -> gateway
  "/api": {
    target: "http://127.0.0.1:8888",
    changeOrigin: true,
    configure: (gateway) => {
      // Browser -> Vite is same-origin. Do not forward that Origin to the
      // private gateway, where it would be mistaken for a direct CORS call.
      gateway.on("proxyReq", (request) => request.removeHeader("origin"));
    },
  },
  // 頭像等公開物件（MinIO path-style）。nginx 未轉 /haixun-assets 時，
  // 流量會落到 Vite；由此代轉，避免回 SPA HTML。
  "/haixun-assets": {
    target: "http://127.0.0.1:9000",
    changeOrigin: true,
  },
} satisfies Record<string, string | ProxyOptions>;

// https://vite.dev/config/
export default defineConfig({
  plugins: [react()],
  server: {
    host: "0.0.0.0",
    port: 5173,
    strictPort: false,
    allowedHosts: ["threads-tool.30cm.net", ".30cm.net"],
    proxy,
  },
  preview: {
    host: "0.0.0.0",
    port: 4173,
    allowedHosts: ["threads-tool.30cm.net", ".30cm.net"],
    proxy,
  },
});
