(event: MessageEvent)
| 637 | let open = false |
| 638 | |
| 639 | function onMessage(event: MessageEvent) { |
| 640 | if (event.data instanceof Blob) { |
| 641 | const effect = Effect.flatMap( |
| 642 | Effect.promise(() => event.data.arrayBuffer() as Promise<ArrayBuffer>), |
| 643 | (buffer) => { |
| 644 | const result = handler(new Uint8Array(buffer)) |
| 645 | return Effect.isEffect(result) ? result : Effect.void |
| 646 | } |
| 647 | ) |
| 648 | return run(effect) |
| 649 | } |
| 650 | const result = handler(event.data instanceof ArrayBuffer ? new Uint8Array(event.data) : event.data) |
| 651 | if (Effect.isEffect(result)) { |
| 652 | run(result) |
| 653 | } |
| 654 | } |
| 655 | function onError(cause: Event) { |
| 656 | ws.removeEventListener("message", onMessage) |
| 657 | ws.removeEventListener("close", onClose) |
no test coverage detected