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

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
  resolve: {
    alias: {
      '@': resolve(__dirname, './src')
    }
  },
  // Tauri 2.0 mobile development support
  server: {
    port: 1420,
    strictPort: true,
    host: process.env.TAURI_DEV_HOST || false,
    hmr: process.env.TAURI_DEV_HOST ? {
      protocol: 'ws',
      host: process.env.TAURI_DEV_HOST,
      port: 1421,
    } : undefined,
  },
  build: {
    // Tauri 2.0 supports ES2022
    target: process.env.TAURI_PLATFORM == 'windows' ? 'chrome105' : 'safari15',
    // Generate sourcemaps for debugging
    sourcemap: !!process.env.TAURI_DEBUG,
    // Optimize for size
    minify: !process.env.TAURI_DEBUG ? 'terser' : false,
    terserOptions: {
      compress: {
        drop_console: true,
        drop_debugger: true
      }
    },
    rollupOptions: {
      output: {
        manualChunks: {
          vendor: ['react', 'react-dom'],
          design: ['@orchard9ai/design-system'],
          tauri: ['@tauri-apps/api', '@tauri-apps/plugin-os', '@tauri-apps/plugin-shell', '@tauri-apps/plugin-log']
        }
      }
    }
  }
})