InferQueueWorkerRequirements<C>Service requirements for the queue worker: those declared on the effect, unioned with any
declared on the optional onFailure control hook. (Observation is via the events stream —
it contributes no requirements.)
export type type InferQueueWorkerRequirements<C extends { readonly effect: (...args: any[]) => Effect.Effect<any, any, any>; }> = unknown extends Effect.Services<ReturnType<C["effect"]>> | InferQueueOnFailureRequirements<C> ? [Effect.Services<ReturnType<C["effect"]>> | InferQueueOnFailureRequirements<C>] extends [Effect.Services<ReturnType<C["effect"]>> | InferQueueOnFailureRequirements<C>] ? never : Effect.Services<ReturnType<C["effect"]>> | InferQueueOnFailureRequirements<...> : Effect.Services<ReturnType<C["effect"]>> | InferQueueOnFailureRequirements<...>Service requirements for the queue worker: those declared on the effect, unioned with any
declared on the optional onFailure control hook. (Observation is via the events stream —
it contributes no requirements.)
InferQueueWorkerRequirements<
function (type parameter) C in type InferQueueWorkerRequirements<C extends { readonly effect: (...args: any[]) => Effect.Effect<any, any, any>; }>C extends { readonly effect: (
...args: any[]
) => Effect.Effect<any, any, any>
effect: (...args: any[]args: any[]) => import EffectEffect.interface Effect<out A, out E = never, out R = never>The Effect interface defines a value that lazily describes a workflow or
job. The workflow requires some context R, and may fail with an error of
type E, or succeed with a value of type A.
When to use
Use when you need to represent a lazy, composable workflow that can require
services, fail with a typed error, or succeed with a typed value.
Details
Effect values model resourceful interaction with the outside world,
including synchronous, asynchronous, concurrent, and parallel interaction.
They use a fiber-based concurrency model, with built-in support for
scheduling, fine-grained interruption, structured concurrency, and high
scalability.
To run an Effect value, you need a Runtime, which is a type that is
capable of executing Effect values.
Effect<any, any, any> },
> = type NormalizeQueueRequirements<R> =
unknown extends R
? [R] extends [unknown]
? never
: R
: R
NormalizeQueueRequirements<
import EffectEffect.type Services<T> =
T extends Effect.Effect<
infer _A,
infer _E,
infer _R
>
? _R
: never
Extracts the required services type from an Effect.
When to use
Use to derive the context requirements of a generic or inferred Effect
without restating its R type parameter.
Services<type ReturnType<
T extends (...args: any) => any
> = T extends (...args: any) => infer R ? R : any
Obtain the return type of a function type
ReturnType<function (type parameter) C in type InferQueueWorkerRequirements<C extends { readonly effect: (...args: any[]) => Effect.Effect<any, any, any>; }>C["effect"]>> | type InferQueueOnFailureRequirements<C> =
C extends {
readonly onFailure: (
...args: any[]
) => Effect.Effect<any, any, infer R>
}
? R
: never
Requirements contributed by the optional onFailure control hook, if present.
InferQueueOnFailureRequirements<function (type parameter) C in type InferQueueWorkerRequirements<C extends { readonly effect: (...args: any[]) => Effect.Effect<any, any, any>; }>C>
>;