import path from 'path'; import { defineConfig } from 'vite'; import { unifiedConfig } from './config/unified.config'; export default defineConfig(() => { // Use unified config as the single source of truth const config = unifiedConfig; return { define: { // Application configuration from unified config 'import.meta.env.VITE_APP_NAME': JSON.stringify(config.app.name), 'import.meta.env.VITE_APP_VERSION': JSON.stringify(config.app.version), 'import.meta.env.VITE_BASE_URL': JSON.stringify(config.app.baseUrl), // Database configuration from unified config 'import.meta.env.VITE_COUCHDB_URL': JSON.stringify(config.database.url), 'import.meta.env.VITE_COUCHDB_USER': JSON.stringify( config.database.username ), 'import.meta.env.VITE_COUCHDB_PASSWORD': JSON.stringify( config.database.password ), // Email configuration from unified config 'import.meta.env.VITE_MAILGUN_API_KEY': JSON.stringify( config.email.mailgun?.apiKey || '' ), 'import.meta.env.VITE_MAILGUN_DOMAIN': JSON.stringify( config.email.mailgun?.domain || '' ), 'import.meta.env.VITE_MAILGUN_FROM_NAME': JSON.stringify( config.email.fromName ), 'import.meta.env.VITE_MAILGUN_FROM_EMAIL': JSON.stringify( config.email.fromEmail ), // OAuth configuration from unified config 'import.meta.env.VITE_GOOGLE_CLIENT_ID': JSON.stringify( config.oauth.google?.clientId || '' ), 'import.meta.env.VITE_GITHUB_CLIENT_ID': JSON.stringify( config.oauth.github?.clientId || '' ), // Feature flags from unified config 'import.meta.env.ENABLE_EMAIL_VERIFICATION': JSON.stringify( config.features.enableEmailVerification ), 'import.meta.env.ENABLE_OAUTH': JSON.stringify( config.features.enableOAuth ), 'import.meta.env.ENABLE_ADMIN_INTERFACE': JSON.stringify( config.features.enableAdminInterface ), 'import.meta.env.DEBUG_MODE': JSON.stringify(config.features.debugMode), // Environment info 'import.meta.env.NODE_ENV': JSON.stringify(config.app.environment), 'import.meta.env.IS_PRODUCTION': JSON.stringify( config.app.environment === 'production' ), 'import.meta.env.IS_DEVELOPMENT': JSON.stringify( config.app.environment === 'development' ), // Additional configurations 'import.meta.env.VITE_USE_MOCK_DB': JSON.stringify( config.database.useMock ), 'import.meta.env.VITE_LOG_LEVEL': JSON.stringify(config.logging.level), 'import.meta.env.VITE_ENABLE_MONITORING': JSON.stringify( config.features.enableMonitoring ), }, resolve: { alias: { '@': path.resolve(__dirname, '.'), }, }, }; });