* Wraps a promise with a timeout. If the provided promise does not resolve within the given * time, the returned promise resolves to `undefined`.
(promise: Promise<T>, ms: number)
| 197 | * time, the returned promise resolves to `undefined`. |
| 198 | */ |
| 199 | function timeout<T>(promise: Promise<T>, ms: number): Promise<T | undefined> { |
| 200 | return new Promise((resolve) => { |
| 201 | const timeoutId = setTimeout(() => { |
| 202 | resolve(undefined) |
| 203 | }, ms) |
| 204 | |
| 205 | return promise.then((result) => { |
| 206 | clearTimeout(timeoutId) |
| 207 | resolve(result) |
| 208 | }) |
| 209 | }) |
| 210 | } |
| 211 | |
| 212 | function isWithinTimeframe(date: Date, timeframe: Timeframe): boolean { |
| 213 | return new Date(timeframe.start) <= date && new Date(timeframe.end) >= date |
no test coverage detected