import { fileURLToPath, URL } from 'node:url'
import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import fs from 'fs'

export default defineConfig(({ mode }) => {
  const env = loadEnv(mode, process.cwd(), '')
  const backendHost = env.VITE_BACKEND_HOST ?? '127.0.0.1'

  return {
    plugins: [vue()],
    server: {
      host: '0.0.0.0',
      https: {
        key: fs.readFileSync('./192.168.1.102+1-key.pem'),
        cert: fs.readFileSync('./192.168.1.102+1.pem'),
      },
      proxy: {
        '/api': {
          target: `http://${backendHost}:5000`,
          changeOrigin: true,
          rewrite: (path) => path.replace(/^\/api/, ''),
        },
        '/events': {
          target: 'http://192.168.1.102:5000',
          changeOrigin: true,
          secure: false,
        },
      },
    },
    resolve: {
      alias: {
        '@': fileURLToPath(new URL('./src', import.meta.url)),
      },
    },
  }
})
