diff options
Diffstat (limited to 'packages/benchmarks/src/utils.ts')
| -rw-r--r-- | packages/benchmarks/src/utils.ts | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/packages/benchmarks/src/utils.ts b/packages/benchmarks/src/utils.ts new file mode 100644 index 00000000..cfb00723 --- /dev/null +++ b/packages/benchmarks/src/utils.ts @@ -0,0 +1,31 @@ +export function sleep(ms: number): Promise<void> { + return new Promise((resolve) => setTimeout(resolve, ms)); +} + +export async function waitUntil( + fn: () => Promise<boolean>, + description: string, + timeoutMs = 60000, + intervalMs = 1000, +): Promise<void> { + const start = Date.now(); + while (Date.now() - start < timeoutMs) { + try { + if (await fn()) { + return; + } + } catch { + // Ignore and retry + } + await sleep(intervalMs); + } + throw new Error(`${description} timed out after ${timeoutMs}ms`); +} + +export function formatNumber(num: number, fractionDigits = 2): string { + return num.toFixed(fractionDigits); +} + +export function formatMs(ms: number): string { + return `${formatNumber(ms, ms >= 10 ? 1 : 2)} ms`; +} |
