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 symbolSerializableTypeId type
Added in v1.0.0
Source
Signature
type SerializableTypeId = typeof SerializableTypeIdSignature
declare const TypeId: unique symbolSignature
type TypeId = typeof TypeId