Skip to content
Effect Days 2026 Get your ticket

ProcedureList

9 exports Added in v1.0.0 Source

Combinators

add

Added in v1.0.0 Source

Signature

declare function add<Req extends Any>(): {
<State, Public extends Any, Private extends Any, R2>(tag: Req["_tag"], handler: Handler<Req, NoInfer<State>, NoInfer<Public> | NoInfer<Private>, R2>): <R>(self: ProcedureList<State, Public, Private, R>) => ProcedureList<State, Req | Public, Private, R2 | R>;
<State, Public extends Any, Private extends Any, R, R2>(self: ProcedureList<State, Public, Private, R>, tag: Req["_tag"], handler: Handler<Req, NoInfer<State>, NoInfer<Public> | NoInfer<Private>, R2>): ProcedureList<State, Req | Public, Private, R | R2>;
}

addPrivate

Added in v1.0.0 Source

Signature

declare function addPrivate<Req extends Any>(): {
<State, Public extends Any, Private extends Any, R2>(tag: Req["_tag"], handler: Handler<Req, NoInfer<State>, NoInfer<Public> | NoInfer<Private>, R2>): <R>(self: ProcedureList<State, Public, Private, R>) => ProcedureList<State, Public, Req | Private, R2 | R>;
<State, Public extends Any, Private extends Any, R, R2>(self: ProcedureList<State, Public, Private, R>, tag: Req["_tag"], handler: Handler<Req, NoInfer<State>, NoInfer<Public> | NoInfer<Private>, R2>): ProcedureList<State, Public, Req | Private, R | R2>;
}

addProcedure

Added in v1.0.0 Source

Signature

declare const addProcedure: {
<Req extends Any, State, R2>(procedure: Procedure<Req, State, R2>): <Public extends Any, Private extends Any, R>(self: ProcedureList<State, Public, Private, R>) => ProcedureList<State, Req | Public, Private, R2 | R>;
<State, Public extends Any, Private extends Any, R, Req extends Any, R2>(self: ProcedureList<State, Public, Private, R>, procedure: Procedure<Req, State, R2>): ProcedureList<State, Public | Req, Private, R | R2>;
}

Signature

declare const addProcedurePrivate: {
<Req extends Any, State, R2>(procedure: Procedure<Req, State, R2>): <Public extends Any, Private extends Any, R>(self: ProcedureList<State, Public, Private, R>) => ProcedureList<State, Public, Req | Private, R2 | R>;
<State, Public extends Any, Private extends Any, R, Req extends Any, R2>(self: ProcedureList<State, Public, Private, R>, procedure: Procedure<Req, State, R2>): ProcedureList<State, Public, Private | Req, R | R2>;
}

Signature

declare const withInitialState: {
<State>(initialState: NoInfer<State>): <Public extends Any, Private extends Any, R>(self: ProcedureList<State, Public, Private, R>) => ProcedureList<State, Public, Private, R>;
<State, Public extends Any, Private extends Any, R>(self: ProcedureList<State, Public, Private, R>, initialState: NoInfer<State>): ProcedureList<State, Public, Private, R>;
}

Constructors

make

Added in v1.0.0 Source

Signature

declare function make<State>(initialState: State, options?: {
readonly identifier?: string;
}): ProcedureList<State, never, never, never>

Models

ProcedureList interface

Added in v1.0.0 Source

Signature

interface ProcedureList<State, Public extends Procedure.TaggedRequest.Any, Private extends Procedure.TaggedRequest.Any, R> extends Effect<ProcedureList<State, Public, Private, R>> {
readonly [TypeId]: typeof TypeId;
readonly identifier: string;
readonly initialState: State;
readonly private: readonly Array<Procedure<Private, State, R>>;
readonly public: readonly Array<Procedure<Public, State, R>>;
}

Type Ids

TypeId

Added in v1.0.0 Source

Signature

declare const TypeId: unique symbol

TypeId type

Added in v1.0.0 Source

Signature

type TypeId = typeof TypeId