proxy.ts 525 Bytes
import { ProxyOptions } from "vite"

export const createProxy = (viteEnv: ImportMetaEnv) => {
  const { VITE_GLOB_PROXY } = viteEnv 
  const httpsReg = /^https:\/\//;
  const res: Record<string, ProxyOptions> = {}

  for (const [prefix, target] of VITE_GLOB_PROXY) {
    const isHttps = httpsReg.test(prefix)

    res[prefix] = {
      target,
      changeOrigin: true,
      ws: true,
      rewrite: (path) => path.replace(new RegExp(`^${prefix}`), ''),
      ...(isHttps ? { secure: false } : {})
    }
  }

  return res
}