import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
  server: {
    host: '0.0.0.0', // Bind to all interfaces (IPv4 and IPv6)
    port: 3003,
    strictPort: false, // Allow fallback to next available port
    proxy: {
      '/api': {
        target: 'http://127.0.0.1:8000', // Backend port
        changeOrigin: true,
        secure: false,
        ws: true,
      }
    }
  },
  resolve: {
    alias: {
      // Use the smaller basic Plotly distribution
      'plotly.js/dist/plotly': 'plotly.js-basic-dist'
    }
  },
  build: {
    rollupOptions: {
      output: {
        manualChunks: {
          // Separate Plotly into its own chunk for better caching
          plotly: ['plotly.js-basic-dist', 'react-plotly.js'],
          // Separate React and core libs
          vendor: ['react', 'react-dom', 'react-router-dom'],
          // Recharts in its own chunk
          recharts: ['recharts']
        }
      }
    },
    chunkSizeWarningLimit: 600
  },
  optimizeDeps: {
    include: ['plotly.js-basic-dist']
  }
})
