export interface SystemConfig { admin_mode: boolean beta_mode: boolean } let configPromise: Promise | null = null let cachedConfig: SystemConfig | null = null export function getSystemConfig(): Promise { if (cachedConfig) { return Promise.resolve(cachedConfig) } if (configPromise) { return configPromise } configPromise = fetch('/api/config') .then((res) => res.json()) .then((data: SystemConfig) => { cachedConfig = data return data }) .finally(() => { // Keep cachedConfig for reuse; allow re-fetch via explicit invalidation if added later }) return configPromise }