1import * as NodeWorkerRunner from "@effect/platform-node/NodeWorkerRunner"
2import * as Effect from "effect/Effect"
3import * as WorkerRunner from "effect/workers/WorkerRunner"
4
5await Effect.runPromise(
6 Effect.gen(function*() {
7 const platform = yield* WorkerRunner.WorkerRunnerPlatform
8 const runner = yield* platform.start<{ readonly value: number }>()
9 yield* runner.run((portId) =>
10 Effect.sync(() => {
11 runner.sendUnsafe(portId, { value: 42 })
12 })
13 )
14 }).pipe(Effect.provide(NodeWorkerRunner.layer))
15)