(promise: Promise<T>, timeoutInMs: number)
| 32 | |
| 33 | // See https://advancedweb.hu/how-to-add-timeout-to-a-promise-in-javascript/ |
| 34 | const timeout = <T>(promise: Promise<T>, timeoutInMs: number) => { |
| 35 | let timer: NodeJS.Timeout; |
| 36 | return Promise.race([ |
| 37 | promise, |
| 38 | new Promise<never>( |
| 39 | (_resolve, reject) => |
| 40 | (timer = setTimeout(reject, timeoutInMs, new VaasTimeoutError())), |
| 41 | ), |
| 42 | ]).finally(() => clearTimeout(timer)); |
| 43 | }; |
| 44 | |
| 45 | export interface VerdictPromise { |
| 46 | resolve(verdictResponse: VerdictResponse): Promise<void>; |