export async function raceWithTimeout( work: Promise, timeoutMs: number, ): Promise<{ timedOut: false; value: T } | { timedOut: true }> { let timer: ReturnType | undefined; const guard = new Promise<{ timedOut: true }>((resolve) => { timer = setTimeout(() => resolve({ timedOut: true }), timeoutMs); }); try { return await Promise.race([work.then((value) => ({ timedOut: false as const, value })), guard]); } finally { if (timer) clearTimeout(timer); } } export async function settleWithinTimeout(work: Promise, timeoutMs: number): Promise { await raceWithTimeout(work, timeoutMs); }