Skip to content

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;