(fn: () => Promise<T>)
| 26 | } |
| 27 | |
| 28 | async function withImmediateTimers<T>(fn: () => Promise<T>): Promise<T> { |
| 29 | const originalSetTimeout = globalThis.setTimeout |
| 30 | ;(globalThis as any).setTimeout = (callback: (...args: any[]) => void) => { |
| 31 | callback() |
| 32 | return 0 |
| 33 | } |
| 34 | try { |
| 35 | return await fn() |
| 36 | } finally { |
| 37 | globalThis.setTimeout = originalSetTimeout |
| 38 | } |
| 39 | } |
| 40 | |
| 41 | function createDataSource(): DataSource { |
| 42 | return { |