export async function delayUntil( maxMs: number, isReady: () => boolean, timeoutTime = 100, ): Promise { const maxTime = Date.now() + maxMs; function hackyFix(resolve: () => void) { if (isReady() || Date.now() >= maxTime) { resolve(); } else { setTimeout(async () => { await hackyFix(resolve); resolve(); }, timeoutTime); } } return new Promise((resolve) => hackyFix(resolve)); }