1export const sleep = (ms: number) => new Promise(resolve => setTimeout(resolve, ms)) 3export const withTimeout = <T,>(promise: Promise<T>, ms: number): Promise<T> => 6 new Promise<never>((_, reject) => setTimeout(() => reject(new Error(`withTimeout ${ms}ms`)), ms)), 9export const pollUntil = async (checkFn: () => Promise<boolean> | boolean, {timeoutMs = 60000, intervalMs = 500} = {}) => { 10 const startTime = Date.now() 11 while (Date.now() - startTime < timeoutMs) { 12 if (await checkFn()) return true 13 await sleep(intervalMs)