WorkerRunner overview
Added in v1.0.0
Table of contents
constructors
make
Signature
export declare const make: <I, R, E, O>(
process: (request: I) => Stream.Stream<R, E, O> | Effect.Effect<R, E, O>,
options?: Runner.Options<I, E, O> | undefined
) => Effect.Effect<PlatformRunner | R | Scope.Scope, WorkerError, void>
Added in v1.0.0
makeSerialized
Signature
export declare const makeSerialized: <
I,
A extends Schema.TaggedRequest.Any,
const Handlers extends SerializedRunner.Handlers<A>
>(
schema: Schema.Schema<I, A>,
handlers: Handlers
) => Effect.Effect<PlatformRunner | Scope.Scope | SerializedRunner.HandlersContext<Handlers>, WorkerError, void>
Added in v1.0.0
layers
layer
Signature
export declare const layer: <I, R, E, O>(
process: (request: I) => Stream.Stream<R, E, O> | Effect.Effect<R, E, O>,
options?: Runner.Options<I, E, O> | undefined
) => Layer.Layer<PlatformRunner | R, WorkerError, never>
Added in v1.0.0
layerSerialized
Signature
export declare const layerSerialized: <
I,
A extends Schema.TaggedRequest.Any,
const Handlers extends SerializedRunner.Handlers<A>
>(
schema: Schema.Schema<I, A>,
handlers: Handlers
) => Layer.Layer<PlatformRunner | SerializedRunner.HandlersContext<Handlers>, WorkerError, never>
Added in v1.0.0
models
BackingRunner (interface)
Signature
export interface BackingRunner<I, O> {
readonly queue: Queue.Dequeue<I>
readonly send: (message: O, transfers?: ReadonlyArray<unknown>) => Effect.Effect<never, never, void>
}
Added in v1.0.0
BackingRunner (namespace)
Added in v1.0.0
Message (type alias)
Signature
export type Message<I> = readonly [request: 0, I] | readonly [close: 1]
Added in v1.0.0
PlatformRunner (interface)
Signature
export interface PlatformRunner {
readonly [PlatformRunnerTypeId]: PlatformRunnerTypeId
readonly start: <I, O>() => Effect.Effect<Scope.Scope, WorkerError, BackingRunner<I, O>>
}
Added in v1.0.0
Runner (namespace)
Added in v1.0.0
Options (interface)
Signature
export interface Options<I, E, O> {
readonly decode?: (message: unknown) => Effect.Effect<never, WorkerError, I>
readonly encodeOutput?: (request: I, message: O) => Effect.Effect<never, WorkerError, unknown>
readonly encodeError?: (request: I, error: E) => Effect.Effect<never, WorkerError, unknown>
readonly transfers?: (message: O | E) => ReadonlyArray<unknown>
}
Added in v1.0.0
SerializedRunner (namespace)
Added in v1.0.0
Handlers (type alias)
Signature
export type Handlers<A extends Schema.TaggedRequest.Any> = {
readonly [K in A["_tag"]]: Extract<A, { readonly _tag: K }> extends Serializable.SerializableWithResult<
infer _IS,
infer S,
infer _IE,
infer E,
infer _IO,
infer O
>
? (
_: S
) => Stream.Stream<any, E, O> | Effect.Effect<any, E, O> | Layer.Layer<any, E, any> | Layer.Layer<any, E, never>
: never
}
Added in v1.0.0
HandlersContext (type alias)
Signature
export type HandlersContext<Handlers extends Record<string, (...args: ReadonlyArray<any>) => any>> =
| Exclude<
{
[K in keyof Handlers]: ReturnType<Handlers[K]> extends Stream.Stream<infer R, infer _E, infer _A> ? R : never
}[keyof Handlers],
{
[K in keyof Handlers]: ReturnType<Handlers[K]> extends Layer.Layer<infer _R, infer _E, infer A> ? A : never
}[keyof Handlers]
>
| {
[K in keyof Handlers]: ReturnType<Handlers[K]> extends Layer.Layer<infer R, infer _E, infer _A> ? R : never
}[keyof Handlers]
Added in v1.0.0
tags
PlatformRunner
Signature
export declare const PlatformRunner: Context.Tag<PlatformRunner, PlatformRunner>
Added in v1.0.0
type ids
PlatformRunnerTypeId
Signature
export declare const PlatformRunnerTypeId: typeof PlatformRunnerTypeId
Added in v1.0.0
PlatformRunnerTypeId (type alias)
Signature
export type PlatformRunnerTypeId = typeof PlatformRunnerTypeId
Added in v1.0.0