| /** | |
| * Configuration Initializer | |
| * Ensures CONFIG is available before other modules load | |
| * This should be loaded as the first module on any page | |
| */ | |
| // Minimal CONFIG defaults that work without full config.js | |
| if (typeof window !== 'undefined' && !window.CONFIG) { | |
| window.CONFIG = { | |
| API_BASE_URL: window.location.origin, | |
| API_TIMEOUT: 10000, | |
| CACHE_TTL: 60000, | |
| MAX_RETRIES: 3, | |
| RETRY_DELAY: 1000, | |
| RETRIES: 3, | |
| TOAST: { | |
| MAX_VISIBLE: 3, | |
| DEFAULT_DURATION: 3500, | |
| ERROR_DURATION: 6000 | |
| }, | |
| IS_HUGGINGFACE: window.location.hostname.includes('hf.space') || window.location.hostname.includes('huggingface.co'), | |
| IS_LOCALHOST: window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1' | |
| }; | |
| window.CONFIG.ENVIRONMENT = window.CONFIG.IS_HUGGINGFACE ? 'huggingface' : | |
| window.CONFIG.IS_LOCALHOST ? 'local' : 'production'; | |
| } | |
| // Dynamically load and merge full config if available | |
| (async function loadFullConfig() { | |
| try { | |
| const configModule = await import('./core/config.js'); | |
| if (configModule.CONFIG) { | |
| // Merge full config over defaults | |
| window.CONFIG = { ...window.CONFIG, ...configModule.CONFIG }; | |
| } | |
| } catch (e) { | |
| // Full config not available, defaults already set | |
| console.log('[Config] Using default configuration'); | |
| } | |
| })(); | |
| export default window.CONFIG; | |