ProcessMakeOptions<E, RUser>Configuration for Process.make when using the config-object form (id is separate).
export interface interface ProcessMakeOptions<E, RUser>Configuration for
Process.make
when using the config-object form (id is separate).
ProcessMakeOptions<function (type parameter) E in ProcessMakeOptions<E, RUser>E, function (type parameter) RUser in ProcessMakeOptions<E, RUser>RUser> {
readonly ProcessMakeOptions<E, RUser>.effect: Effect.Effect<void, E, RUser>(property) ProcessMakeOptions<E, RUser>.effect: {
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
toString: () => string;
toJSON: () => unknown;
}
effect: 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<void, function (type parameter) E in ProcessMakeOptions<E, RUser>E, function (type parameter) RUser in ProcessMakeOptions<E, RUser>RUser>;
/**
* @internal Wired by {@link layer} for store-backed execution history.
* Not part of the public {@link make} API.
*/
readonly ProcessMakeOptions<E, RUser>._store?: ProcessStoreWriter<StoreScopeTag> | undefined_store?: interface ProcessStoreWriter<Tag extends StoreScopeTag = StoreScopeTag>Engine-facing process store recorder — Storage-free writes at run boundaries.
Built in
buildProcessImpl
from pipe(Store.effects, Store.catchWriteErrors) with
Storage discharged once via
Store.provideContext
(queue / run-resource golden pattern).
ProcessStoreWriter;
/** @internal Tag SSOT paired with {@link _store}. */
readonly ProcessMakeOptions<E, RUser>._storeScopeTag?: any_storeScopeTag?: import StoreScopeTagStoreScopeTag;
/** @internal Success ref paired with value-returning layer builds. */
readonly ProcessMakeOptions<E, RUser>._resultRef?: SubscriptionRef.SubscriptionRef<Option.Option<unknown>> | undefined_resultRef?: import SubscriptionRefSubscriptionRef.interface SubscriptionRef<in out A>A mutable reference whose updates are serialized and published to
subscribers.
When to use
Use to observe the current value and subsequent updates as a
stream.
The SubscriptionRef namespace containing type definitions associated with
subscription references.
SubscriptionRef<import OptionOption.type Option<A> = Option.None<A> | Option.Some<A>The Option data type represents optional values. An Option<A> is either
Some<A>, containing a value of type A, or None, representing absence.
When to use
Use to represent initial values that may not yet exist
- Returning from partial functions (not defined for all inputs)
- Managing optional fields in data structures
Namespace containing utility types for Option.
When to use
Use to access type-level helpers associated with Option.
Option<unknown>>;
/** Optional polling layer for in-instance repeat cadence. */
readonly ProcessMakeOptions<E, RUser>.polling?: ProcessPollingInput | undefinedOptional polling layer for in-instance repeat cadence.
polling?: type AnyPollingLayer = Layer.Layer<
PollingTag,
never,
never
>
AnyPollingLayer;
/**
* Optional schedule layer or initializer.
*
* When omitted, defaults to {@link ProcessSchedule.alwaysArmed}. Use
* {@link ProcessSchedule.empty} or {@link ProcessSchedule.inMemory} for an
* empty store (disarmed until entries are added).
*/
readonly ProcessMakeOptions<E, RUser>.schedule?: ProcessScheduleInitializer<RUser> | AnyScheduleLayerOptional schedule layer or initializer.
When omitted, defaults to
ProcessSchedule.alwaysArmed
. Use
ProcessSchedule.empty
or
ProcessSchedule.inMemory
for an
empty store (disarmed until entries are added).
schedule?: type ProcessScheduleInitializer<
R = never
> = (
controls: ProcessScheduleControls
) => Effect.Effect<void, never, R>
A function that seeds a process's schedule via its
ProcessScheduleControls
.
ProcessScheduleInitializer<function (type parameter) RUser in ProcessMakeOptions<E, RUser>RUser> | type AnyScheduleLayer = Layer.Layer<
ProcessScheduleTag,
never,
never
>
AnyScheduleLayer;
/**
* Explicit schedule service layer. When set, takes precedence over `schedule`.
*
* When both `schedule` and `scheduleLayer` are omitted,
* {@link ProcessSchedule.alwaysArmed} is used.
*/
readonly ProcessMakeOptions<E, RUser>.scheduleLayer?: ProcessScheduleLayerInput | undefinedExplicit schedule service layer. When set, takes precedence over schedule.
When both schedule and scheduleLayer are omitted,
ProcessSchedule.alwaysArmed
is used.
scheduleLayer?: type AnyScheduleLayer = Layer.Layer<
ProcessScheduleTag,
never,
never
>
AnyScheduleLayer;
}