Procedure
Constructors
Signature
declare function make<Requests extends Any, State>(): <Req extends Any>() => <R>(
tag: Req["_tag"],
handler: Handler<Req, State, Requests, R>,
) => Procedure<Req, State, R>;makeSerializable
Added in v1.0.0
Source
Signature
declare function makeSerializable<Requests extends Any, State>(): <Req extends All, IS, R, RS>(
schema: any,
handler: Handler<Req, State, Requests, R>,
) => SerializableProcedure<Req, State, any>;Models
Signature
type Handler<Request extends TaggedRequest.Any, State, Requests extends TaggedRequest.Any, R> = (
context: Procedure.Context<Requests | Request, Request, State>,
) => Effect.Effect<
readonly [response: Request.Success<Request> | NoReply, state: State],
Request.Error<Request>,
R
>;Signature
interface Procedure<Request extends TaggedRequest.Any, State, R> extends Pipeable {
readonly [TypeId]: typeof TypeId;
readonly handler: Handler<Request, State, any, R>;
readonly tag: Request["_tag"];
}SerializableProcedure interface
Added in v1.0.0
Source
Signature
interface SerializableProcedure<
Request extends Schema.TaggedRequest.All,
State,
R,
> extends Procedure<Request, State, R> {
readonly [SerializableTypeId]: typeof SerializableTypeId;
readonly schema: any;
}TaggedRequest
Added in v1.0.0
Source
TaggedRequest interface
Added in v1.0.0
Source
Signature
interface TaggedRequest<Tag extends string, A, E> extends Request<A, E> {
readonly _tag: Tag;
}Refinements
isSerializable
Added in v1.0.0
Source
Signature
declare function isSerializable(u: unknown): u is SerializableProcedure<any, any, any>;Symbols
Type Ids
SerializableTypeId
Added in v1.0.0
Source
Signature
declare const SerializableTypeId: unique symbol;SerializableTypeId type
Added in v1.0.0
Source
Signature
type SerializableTypeId = typeof SerializableTypeId;Signature
declare const TypeId: unique symbol;Signature
type TypeId = typeof TypeId;