diff options
| author | Mohamed Bassem <me@mbassem.com> | 2025-12-06 16:07:11 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-06 16:07:11 +0000 |
| commit | 6180c6622c88ca33d0d387a50be9036429281598 (patch) | |
| tree | 1df3e4143a489ada2f542896bf2f2ae392a727ca /packages/benchmarks/src/utils.ts | |
| parent | de98873a06a25084eb2d3bcabda158f23c081672 (diff) | |
| download | karakeep-6180c6622c88ca33d0d387a50be9036429281598.tar.zst | |
chore: add benchmarks (#2229)
* chore: add benchmarks
* upgrade deps
* fixes
* lint
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`; +} |
