export async function withTimeout( promise: Promise, timeoutMs: number, operationName: string ): Promise { return Promise.race([ promise, new Promise((_, reject) => setTimeout(() => { reject( new Error(`${operationName} timed out after ${timeoutMs}ms`) ); }, timeoutMs) ) ]); }