(port: MessagePort)
| 89 | ) |
| 90 | } |
| 91 | function handlePort(port: MessagePort) { |
| 92 | const fiber = Scope.fork(scope, ExecStrategy.sequential).pipe( |
| 93 | Effect.flatMap((scope) => { |
| 94 | const portId = currentPortId++ |
| 95 | ports.set(portId, [port, scope]) |
| 96 | const onMsg = onMessage(portId) |
| 97 | port.addEventListener("message", onMsg) |
| 98 | port.addEventListener("messageerror", onMessageError) |
| 99 | if ("start" in port) { |
| 100 | port.start() |
| 101 | } |
| 102 | port.postMessage([0]) |
| 103 | return Scope.addFinalizer( |
| 104 | scope, |
| 105 | Effect.sync(() => { |
| 106 | port.removeEventListener("message", onMsg) |
| 107 | port.removeEventListener("messageerror", onError) |
| 108 | port.close() |
| 109 | }) |
| 110 | ) |
| 111 | }), |
| 112 | runFork |
| 113 | ) |
| 114 | fiber.addObserver(onExit) |
| 115 | FiberSet.unsafeAdd(fiberSet, fiber) |
| 116 | } |
| 117 | self.addEventListener("error", onError) |
| 118 | let prevOnConnect: unknown | undefined |
| 119 | if ("onconnect" in self) { |
no test coverage detected
searching dependent graphs…