(timeout: number)
| 444 | } |
| 445 | |
| 446 | function waitForRegistrationChange(timeout: number) { |
| 447 | if (timeout <= 0) return Promise.resolve(false) |
| 448 | return new Promise<boolean>((resolve) => { |
| 449 | let finished = false |
| 450 | let timer: ReturnType<typeof setTimeout> | undefined |
| 451 | const finish = (result: boolean) => { |
| 452 | if (finished) return |
| 453 | finished = true |
| 454 | if (timer) clearTimeout(timer) |
| 455 | registrationListeners.delete(listener) |
| 456 | resolve(result) |
| 457 | } |
| 458 | const listener = () => finish(true) |
| 459 | registrationListeners.add(listener) |
| 460 | timer = setTimeout(() => finish(false), timeout) |
| 461 | }) |
| 462 | } |
| 463 | |
| 464 | function waitForFreshPush(request: { path: string; version: number; after: number; timeout: number }) { |
| 465 | if (request.timeout <= 0) return Promise.resolve(false) |
no test coverage detected