import { apiRequest } from './api';
import { CLIENT_TTL, clientCacheGet, clientCachePeek } from './clientCache';

type PublicConfig = any;

/** Deduped + short-lived cache so layout/home/wallet don't stampede /public/config. */
export async function getPublicConfig(force = false): Promise<PublicConfig> {
  return clientCacheGet(
    'public:config',
    CLIENT_TTL.publicConfig,
    () => apiRequest('/public/config'),
    force
  );
}

export function peekPublicConfig(): PublicConfig | null {
  return clientCachePeek('public:config', CLIENT_TTL.publicConfig);
}
