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

// https://vite.dev/config/
export default defineConfig(({ mode }) => {
  // Load env file based on `mode` in the current working directory.
  const env = loadEnv(mode, process.cwd(), '')

  // Expose REACT_APP_ prefixed variables to import.meta.env
  const processEnvValues = {
    'process.env': Object.entries(env).reduce(
      (prev, [key, val]) => {
        return {
          ...prev,
          [key]: val,
        }
      },
      {},
    )
  }

  return {
    plugins: [react()],
    define: {
      // Expose all REACT_APP_ prefixed variables
      'import.meta.env.REACT_APP_ANTHROPIC_API_KEY': JSON.stringify(env.REACT_APP_ANTHROPIC_API_KEY),
      'import.meta.env.REACT_APP_DATA_SOURCES': JSON.stringify(env.REACT_APP_DATA_SOURCES),
      'import.meta.env.REACT_APP_LOCATION': JSON.stringify(env.REACT_APP_LOCATION),
      'import.meta.env.REACT_APP_CORS_PROXY': JSON.stringify(env.REACT_APP_CORS_PROXY),
      'import.meta.env.REACT_APP_REFRESH_INTERVAL': JSON.stringify(env.REACT_APP_REFRESH_INTERVAL),
      'import.meta.env.REACT_APP_HISTORY_DAYS': JSON.stringify(env.REACT_APP_HISTORY_DAYS),
      'import.meta.env.REACT_APP_CLAUDE_MODEL': JSON.stringify(env.REACT_APP_CLAUDE_MODEL),
      'import.meta.env.REACT_APP_CLAUDE_INSTRUCTIONS': JSON.stringify(env.REACT_APP_CLAUDE_INSTRUCTIONS),
      'import.meta.env.REACT_APP_DEBUG_MODE': JSON.stringify(env.REACT_APP_DEBUG_MODE),
      'import.meta.env.REACT_APP_QUICK_LINKS': JSON.stringify(env.REACT_APP_QUICK_LINKS),
      'import.meta.env.REACT_APP_TEMPERATURE_UNIT': JSON.stringify(env.REACT_APP_TEMPERATURE_UNIT),
      'import.meta.env.REACT_APP_CHART_DATE_FORMAT': JSON.stringify(env.REACT_APP_CHART_DATE_FORMAT),
      'import.meta.env.REACT_APP_TEXT_VOICE': JSON.stringify(env.REACT_APP_TEXT_VOICE),
    }
  }
})