Skip to main content
Glama
useLoadDynamic.ts783 B
type Status = 'pending' | 'success' | 'error'; const createSuspender = <T>(promise: Promise<T>) => { let status: Status = 'pending'; let result: T; const suspender = promise.then( (r) => { status = 'success'; result = r; }, (e) => { status = 'error'; result = e as any; } ); return { read() { if (status === 'pending') throw suspender; if (status === 'error') throw result; return result!; }, }; }; const cache = new Map<string, ReturnType<typeof createSuspender>>(); export const useLoadDynamic = <T>(key: string, promise: Promise<T>): T => { if (!cache.has(key)) { cache.set(key, createSuspender(promise)); } return (cache.get(key)! as ReturnType<typeof createSuspender>).read() as T; };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aymericzip/intlayer'

If you have feedback or need assistance with the MCP directory API, please join our Discord server