blob: 417a7cd5183dc79ab5f3be21a62f1a545768ee1d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
export async function waitUntil(
f: () => Promise<boolean>,
description: string,
timeoutMs = 60000,
): Promise<void> {
const startTime = Date.now();
while (Date.now() - startTime < timeoutMs) {
console.log(`Waiting for ${description}...`);
try {
const res = await f();
if (res) {
console.log(`${description}: success`);
return;
}
} catch (error) {
// Ignore errors and retry
console.log(`${description}: error, retrying...: ${error}`);
}
await new Promise((resolve) => setTimeout(resolve, 1000));
}
throw new Error(`${description}: timeout after ${timeoutMs}ms`);
}
|