Skip to content

WorkerRunner

16 exports Added in v1.0.0 Source

CloseLatch

CloseLatch

Added in v1.0.0 Source

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

Signature

declare const CloseLatch: any;

CloseLatch interface

Added in v1.0.0 Source

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

make

Added in v1.0.0 Source

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

launch

Added in v1.0.0 Source

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

layer

Added in v1.0.0 Source

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

Added in v1.0.0 Source

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>;
}

PlatformRunner interface

Added in v1.0.0 Source

Signature

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

Runner

Added in v1.0.0 Source

Tags

Signature

declare const PlatformRunner: Tag<PlatformRunner, PlatformRunner>;

Type Ids

Signature

declare const PlatformRunnerTypeId: unique symbol;

PlatformRunnerTypeId type

Added in v1.0.0 Source

Signature

type PlatformRunnerTypeId = typeof PlatformRunnerTypeId;