Skip to content
Effect Days 2026 Get your ticket

Procedure

15 exports Added in v1.0.0 Source

Constructors

make

Added in v1.0.0 Source

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>

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

Handler type

Added in v1.0.0 Source

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>

Procedure

Added in v1.0.0 Source

Procedure interface

Added in v1.0.0 Source

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 interface

Added in v1.0.0 Source

Signature

interface TaggedRequest<Tag extends string, A, E> extends Request<A, E> {
readonly _tag: Tag;
}

Refinements

Signature

declare function isSerializable(u: unknown): u is SerializableProcedure<any, any, any>

Symbols

NoReply

Added in v1.0.0 Source

Signature

declare const NoReply: typeof NoReply

NoReply type

Added in v1.0.0 Source

Signature

type NoReply = typeof NoReply

Type Ids

Signature

declare const SerializableTypeId: unique symbol

SerializableTypeId type

Added in v1.0.0 Source

Signature

type SerializableTypeId = typeof SerializableTypeId

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