Skip to content

WorkerRunner.ts

Worker-side primitives for worker-like runtimes.

A WorkerRunner receives messages tagged by a numeric port id, sends replies back through the same transport, and can expose disconnect notifications. The module also defines the small platform message shape and the WorkerRunnerPlatform service that starts a platform-specific runner.

Since v4.0.0



Wire protocol message used by worker platforms: a request carrying input or a close signal.

Signature

type PlatformMessage<I> = readonly [request: 0, I] | readonly [close: 1]

Source

Since v4.0.0

Platform-neutral worker runner that receives inbound messages by port ID, sends outbound messages, and optionally exposes disconnect notifications.

Signature

export interface WorkerRunner<O = unknown, I = unknown> {
readonly run: <A, E, R>(
handler: (portId: number, message: I) => Effect.Effect<A, E, R> | void
) => Effect.Effect<void, WorkerError, R>
readonly send: (portId: number, message: O, transfers?: ReadonlyArray<unknown>) => Effect.Effect<void>
readonly sendUnsafe: (portId: number, message: O, transfers?: ReadonlyArray<unknown>) => void
readonly disconnects?: Queue.Dequeue<number> | undefined
}

Source

Since v4.0.0

Context service that starts a platform-specific WorkerRunner.

Signature

declare class WorkerRunnerPlatform

Source

Since v4.0.0