Thanks to visit codestin.com
Credit goes to effect-ts.github.io

Skip to main content Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App

Procedure.ts overview

Since v1.0.0


Exports Grouped by Category


constructors

make

Signature

declare const make: <Requests extends TaggedRequest.Any, State>() => <Req extends TaggedRequest.Any>() => <R>(
  tag: Req["_tag"],
  handler: Handler<Req, State, Requests, R>
) => Procedure<Req, State, R>

Source

Since v1.0.0

makeSerializable

Signature

declare const makeSerializable: <Requests extends TaggedRequest.Any, State>() => <
  Req extends Schema.TaggedRequest.All,
  IS,
  R,
  RS
>(
  schema: Schema.Schema<Req, IS, RS> & { readonly _tag: Req["_tag"] },
  handler: Handler<Req, State, Requests, R>
) => SerializableProcedure<Req, State, R | Schema.SerializableWithResult.Context<Req>>

Source

Since v1.0.0

models

Handler (type alias)

Signature

type Handler<Request, State, Requests, R> = (
  context: Procedure.Context<Requests | Request, Request, State>
) => Effect.Effect<readonly [response: Request.Success<Request> | NoReply, state: State], Request.Error<Request>, R>

Source

Since v1.0.0

Procedure (interface)

Signature

export interface Procedure<Request extends TaggedRequest.Any, State, R> extends Pipeable {
  readonly [TypeId]: TypeId
  readonly tag: Request["_tag"]
  readonly handler: Handler<Request, State, any, R>
}

Source

Since v1.0.0

Procedure (namespace)

Source

Since v1.0.0

BaseContext (interface)

Signature

export interface BaseContext {
  readonly fork: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<void, never, R>
  readonly forkOne: {
    (id: string): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<void, never, R>
    <A, E, R>(effect: Effect.Effect<A, E, R>, id: string): Effect.Effect<void, never, R>
  }
  readonly forkReplace: {
    (id: string): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<void, never, R>
    <A, E, R>(effect: Effect.Effect<A, E, R>, id: string): Effect.Effect<void, never, R>
  }
  readonly unsafeSend: <Req extends TaggedRequest.Any>(request: Req) => Effect.Effect<void>
  readonly unsafeSendAwait: <Req extends TaggedRequest.Any>(
    request: Req
  ) => Effect.Effect<Request.Success<Req>, Request.Error<Req>>
}

Source

Since v1.0.0

ContextProto (interface)

Signature

export interface ContextProto<Requests extends TaggedRequest.Any, State> extends BaseContext {
  readonly send: <Req extends Requests>(request: Req) => Effect.Effect<void>
  readonly sendAwait: <Req extends Requests>(request: Req) => Effect.Effect<Request.Success<Req>, Request.Error<Req>>
  readonly forkWith: {
    (state: State): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<readonly [void, State], never, R>
    <A, E, R>(effect: Effect.Effect<A, E, R>, state: State): Effect.Effect<readonly [void, State], never, R>
  }
  readonly forkOneWith: {
    (
      id: string,
      state: State
    ): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<readonly [void, State], never, R>
    <A, E, R>(effect: Effect.Effect<A, E, R>, id: string, state: State): Effect.Effect<readonly [void, State], never, R>
  }
  readonly forkReplaceWith: {
    (
      id: string,
      state: State
    ): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<readonly [void, State], never, R>
    <A, E, R>(effect: Effect.Effect<A, E, R>, id: string, state: State): Effect.Effect<readonly [void, State], never, R>
  }
}

Source

Since v1.0.0

Context (interface)

Signature

export interface Context<Requests extends TaggedRequest.Any, Request extends TaggedRequest.Any, State>
  extends ContextProto<Requests, State> {
  readonly request: Request
  readonly state: State
  readonly deferred: Deferred.Deferred<Request.Success<Request>, Request.Error<Request>>
}

Source

Since v1.0.0

InferRequest (type alias)

Signature

type InferRequest<P> = P extends Procedure<infer Req, infer _, infer _> ? Req : never

Source

Since v1.0.0

InferContext (type alias)

Signature

type InferContext<P> = P extends Procedure<infer _, infer _, infer R> ? R : never

Source

Since v1.0.0

SerializableProcedure (interface)

Signature

export interface SerializableProcedure<Request extends Schema.TaggedRequest.All, State, R>
  extends Procedure<Request, State, R> {
  readonly [SerializableTypeId]: SerializableTypeId
  readonly schema: Schema.Schema<Request, unknown>
}

Source

Since v1.0.0

TaggedRequest (interface)

Signature

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

Source

Since v1.0.0

TaggedRequest (namespace)

Source

Since v1.0.0

Any (type alias)

Signature

type Any = TaggedRequest<string, any, any> | TaggedRequest<string, any, never>

Source

Since v1.0.0

refinements

isSerializable

Signature

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

Source

Since v1.0.0

symbols

NoReply

Signature

declare const NoReply: unique symbol

Source

Since v1.0.0

NoReply (type alias)

Signature

type NoReply = typeof NoReply

Source

Since v1.0.0

type ids

SerializableTypeId

Signature

declare const SerializableTypeId: unique symbol

Source

Since v1.0.0

SerializableTypeId (type alias)

Signature

type SerializableTypeId = typeof SerializableTypeId

Source

Since v1.0.0

TypeId

Signature

declare const TypeId: unique symbol

Source

Since v1.0.0

TypeId (type alias)

Signature

type TypeId = typeof TypeId

Source

Since v1.0.0