Skip to content
Effect 4.0 is here. One ecosystem. Zero dependencies.

WorkerRunner

16 exports Since v1.0.0 Source

CloseLatch

The worker close latch is used by platform runners to signal that the worker has been closed.

Signature

declare const CloseLatch: any

CloseLatch

interface
Since v1.0.0

The worker close latch is used by platform runners to signal that the worker has been closed.

Signature

interface CloseLatch {
readonly _: typeof _;
}

Signature

declare const layerCloseLatch: Layer.Layer<CloseLatch>

Constructors

Since v1.0.0

Signature

declare const make: <I, E, R, O>(process: (request: I) => Stream.Stream<O, E, R> | Effect.Effect<O, E, R>, options?: Runner.Options<I, O, E>) => Effect.Effect<void, WorkerError, PlatformRunner | R | Scope.Scope>

Signature

declare const makeSerialized: <R, I, A extends Schema.TaggedRequest.All, Handlers extends SerializedRunner.Handlers<A>>(schema: Schema.Schema<A, I, R>, handlers: Handlers) => Effect.Effect<void, WorkerError, PlatformRunner | Scope.Scope | R | SerializedRunner.HandlersContext<Handlers>>

Execution

Since v1.0.0

Launch the specified layer, interrupting the fiber when the CloseLatch is triggered.

Signature

declare const launch: <A, E, R>(layer: Layer.Layer<A, E, R>) => Effect.Effect<void, E | WorkerError, R>

Layers

Since v1.0.0

Signature

declare const layer: <I, E, R, O>(process: (request: I) => Stream.Stream<O, E, R> | Effect.Effect<O, E, R>, options?: Runner.Options<I, O, E>) => Layer.Layer<never, WorkerError, R | PlatformRunner>

Signature

declare const layerSerialized: <R, I, A extends Schema.TaggedRequest.All, Handlers extends SerializedRunner.Handlers<A>>(schema: Schema.Schema<A, I, R>, handlers: Handlers) => Layer.Layer<never, WorkerError, PlatformRunner | R | SerializedRunner.HandlersContext<Handlers>>

Models

BackingRunner

interface
Since v1.0.0

Signature

interface BackingRunner<I, O> {
readonly disconnects?: any;
readonly run: <A, E, R>(handler: (portId: number, message: I) => void | Effect<A, E, R>) => Effect<void, never, Scope | R>;
readonly send: (portId: number, message: O, transfers?: readonly Array<unknown>) => Effect<void>;
}
Since v1.0.0

Signature

interface PlatformRunner {
readonly [PlatformRunnerTypeId]: typeof PlatformRunnerTypeId;
readonly start: <I, O>(closeLatch: any) => Effect<BackingRunner<I, O>, WorkerError>;
}
Since v1.0.0

Tags

Signature

declare const PlatformRunner: Tag<PlatformRunner, PlatformRunner>

Type Ids

Signature

declare const PlatformRunnerTypeId: unique symbol

Signature

type PlatformRunnerTypeId = typeof PlatformRunnerTypeId