| 1 | import * as NodeWorkerRunner from "@effect/platform-node/NodeWorkerRunner" |
| 2 | import * as Effect from "effect/Effect" |
| 3 | import * as WorkerRunner from "effect/workers/WorkerRunner" |
| 4 | |
| 5 | await 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 | ) |