(
session: {
onEvent(listener: (event: Event) => void): () => void;
},
predicate: (event: Event) => boolean,
)
| 431 | } |
| 432 | |
| 433 | function waitForEvent( |
| 434 | session: { |
| 435 | onEvent(listener: (event: Event) => void): () => void; |
| 436 | }, |
| 437 | predicate: (event: Event) => boolean, |
| 438 | ): Promise<Event> { |
| 439 | return new Promise((resolve, reject) => { |
| 440 | const timeout = setTimeout(() => { |
| 441 | unsubscribe(); |
| 442 | reject(new Error('Timed out waiting for session event')); |
| 443 | }, 1_000); |
| 444 | const unsubscribe = session.onEvent((event) => { |
| 445 | if (!predicate(event)) return; |
| 446 | clearTimeout(timeout); |
| 447 | unsubscribe(); |
| 448 | resolve(event); |
| 449 | }); |
| 450 | }); |
| 451 | } |
no test coverage detected