Files
yaak-mountain-loop/src-web/lib/minPromiseMillis.ts
Gregory Schier b4a1c418bb Run oxfmt across repo, add format script and docs
Add .oxfmtignore to skip generated bindings and wasm-pack output.
Add npm format script, update DEVELOPMENT.md for Vite+ toolchain,
and format all non-generated files with oxfmt.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 10:15:49 -07:00

20 lines
486 B
TypeScript

import { sleep } from "./sleep";
/** Ensures a promise takes at least a certain number of milliseconds to resolve */
export async function minPromiseMillis<T>(promise: Promise<T>, millis = 300) {
const start = Date.now();
let result: T;
try {
result = await promise;
} catch (e) {
const delayFor = millis - (Date.now() - start);
await sleep(delayFor);
throw e;
}
const delayFor = millis - (Date.now() - start);
await sleep(delayFor);
return result;
}