Skip to main content Link Search Menu Expand Document (external link)

WorkerRunner.ts overview

Since v1.0.0


Exports Grouped by Category


CloseLatch

CloseLatch

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

Signature

declare const CloseLatch: Context.Reference<CloseLatch, Deferred.Deferred<void, WorkerError>>

Source

Since v1.0.0

CloseLatch (interface)

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

Signature

export interface CloseLatch {
  readonly _: unique symbol
}

Source

Since v1.0.0

layerCloseLatch

Signature

declare const layerCloseLatch: Layer.Layer<CloseLatch>

Source

Since v1.0.0

Execution

launch

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>

Source

Since v1.0.0

constructors

make

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>

Source

Since v1.0.0

makeSerialized

Signature

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

Source

Since v1.0.0

layers

layer

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> | undefined
) => Layer.Layer<never, WorkerError, R | PlatformRunner>

Source

Since v1.0.0

layerSerialized

Signature

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

Source

Since v1.0.0

models

BackingRunner (interface)

Signature

export interface BackingRunner<I, O> {
  readonly run: <A, E, R>(
    handler: (portId: number, message: I) => Effect.Effect<A, E, R> | void
  ) => Effect.Effect<void, never, Scope.Scope | R>
  readonly send: (portId: number, message: O, transfers?: ReadonlyArray<unknown>) => Effect.Effect<void>
  readonly disconnects?: Mailbox.ReadonlyMailbox<number>
}

Source

Since v1.0.0

BackingRunner (namespace)

Source

Since v1.0.0

Message (type alias)

Signature

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

Source

Since v1.0.0

PlatformRunner (interface)

Signature

export interface PlatformRunner {
  readonly [PlatformRunnerTypeId]: PlatformRunnerTypeId
  readonly start: <I, O>(closeLatch: typeof CloseLatch.Service) => Effect.Effect<BackingRunner<I, O>, WorkerError>
}

Source

Since v1.0.0

Runner (namespace)

Source

Since v1.0.0

Options (interface)

Signature

export interface Options<I, O, E> {
  readonly decode?: (message: unknown) => Effect.Effect<I, WorkerError>
  readonly encodeOutput?: (request: I, message: O) => Effect.Effect<unknown, WorkerError>
  readonly encodeError?: (request: I, error: E) => Effect.Effect<unknown, WorkerError>
}

Source

Since v1.0.0

SerializedRunner (namespace)

Source

Since v1.0.0

Handlers (type alias)

Signature

type Handlers<A> = {
  readonly [K in A["_tag"]]: Extract<A, { readonly _tag: K }> extends Schema.SerializableWithResult<
    infer S,
    infer _SI,
    infer _SR,
    infer A,
    infer _AI,
    infer E,
    infer _EI,
    infer _RR
  >
    ? (
        _: S
      ) => Stream.Stream<A, E, any> | Effect.Effect<A, E, any> | Layer.Layer<any, E, any> | Layer.Layer<never, E, any>
    : never
}

Source

Since v1.0.0

HandlersContext (type alias)

Signature

type HandlersContext<Handlers> =
  | Exclude<
      {
        [K in keyof Handlers]: ReturnType<Handlers[K]> extends Stream.Stream<infer _A, infer _E, infer R> ? R : never
      }[keyof Handlers],
      InitialContext<Handlers>
    >
  | InitialEnv<Handlers>

Source

Since v1.0.0

tags

PlatformRunner

Signature

declare const PlatformRunner: Context.Tag<PlatformRunner, PlatformRunner>

Source

Since v1.0.0

type ids

PlatformRunnerTypeId

Signature

declare const PlatformRunnerTypeId: unique symbol

Source

Since v1.0.0

PlatformRunnerTypeId (type alias)

Signature

type PlatformRunnerTypeId = typeof PlatformRunnerTypeId

Source

Since v1.0.0