ProcedureList
Combinators
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>;
};addProcedurePrivate
Added in v1.0.0
Source
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>;
};withInitialState
Added in v1.0.0
Source
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
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>>;
}