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>>
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
}
Since v1.0.0
layerCloseLatch
Signature
declare const layerCloseLatch: Layer.Layer<CloseLatch>
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>
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>
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>>
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>
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>>
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>
}
Since v1.0.0
BackingRunner (namespace)
Since v1.0.0
Message (type alias)
Signature
type Message<I> = readonly [request: 0, I] | readonly [close: 1]
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>
}
Since v1.0.0
Runner (namespace)
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>
}
Since v1.0.0
SerializedRunner (namespace)
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
}
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>
Since v1.0.0
tags
PlatformRunner
Signature
declare const PlatformRunner: Context.Tag<PlatformRunner, PlatformRunner>
Since v1.0.0
type ids
PlatformRunnerTypeId
Signature
declare const PlatformRunnerTypeId: unique symbol
Since v1.0.0
PlatformRunnerTypeId (type alias)
Signature
type PlatformRunnerTypeId = typeof PlatformRunnerTypeId
Since v1.0.0