Files
openclaw/test/helpers/promise.ts
2026-07-16 01:45:55 -07:00

20 lines
485 B
TypeScript

export async function withTestTimeout<T>(
promise: PromiseLike<T>,
timeoutMs: number,
message: string,
): Promise<T> {
let timeout: ReturnType<typeof setTimeout> | undefined;
try {
return await Promise.race([
Promise.resolve(promise),
new Promise<never>((_resolve, reject) => {
timeout = setTimeout(() => reject(new Error(message)), timeoutMs);
}),
]);
} finally {
if (timeout !== undefined) {
clearTimeout(timeout);
}
}
}