import type { RouteExecutionEvents } from './types'; import { getApiKeyFromEnvOrNotSet } from './env'; interface Emitter> { emit(type: K, event: Events[K]): void; } export interface Configs { API_KEY: string; BASE_URL?: string; emitter?: Emitter; } let configs: Configs = { API_KEY: getApiKeyFromEnvOrNotSet(), BASE_URL: '', }; export function getConfig(name: K): Configs[K] { return configs[name]; } export function setConfig(name: keyof Configs, value: any) { configs[name] = value; return value; } export function initConfig(nextConfigs: Configs) { configs = nextConfigs; return configs; }