export function withTimeout<T>(promise: Promise<T>, ms: number): Promise<T> { let timeout: NodeJS.Timeout return Promise.race([ promise.then((result) => { clearTimeout(timeout) return result }), new Promise<never>((_, reject) => { timeout = setTimeout(() => { reject(new Error(`Operation timed out after ${ms}ms`)) }, ms) }), ])}
export function withTimeout<T>(promise: Promise<T>, ms: number): Promise<T> {
let timeout: NodeJS.Timeout
return Promise.race([
promise.then((result) => {
clearTimeout(timeout)
return result
}),
new Promise<never>((_, reject) => {
timeout = setTimeout(() => {
reject(new Error(`Operation timed out after ${ms}ms`))
}, ms)
}),
])
}