Skip to main content Link Search Menu Expand Document (external link)

RpcMiddleware.ts overview

Since v1.0.0


Exports Grouped by Category


client

layerClient

Signature

declare const layerClient: <Id, S, R, EX = never, RX = never>(
  tag: Context.Tag<Id, S>,
  service: RpcMiddlewareClient<R> | Effect.Effect<RpcMiddlewareClient<R>, EX, RX>
) => Layer.Layer<ForClient<Id>, EX, R | Exclude<RX, Scope>>

Source

Since v1.0.0

models

Any (interface)

Signature

export interface Any {
  (options: {
    readonly rpc: Rpc.AnyWithProps
    readonly payload: unknown
    readonly headers: Headers
  }): Effect.Effect<any, any>
}

Source

Since v1.0.0

ForClient (interface)

Signature

export interface ForClient<Id> {
  readonly _: unique symbol
  readonly id: Id
}

Source

Since v1.0.0

RpcMiddleware (interface)

Signature

export interface RpcMiddleware<Provides, E> {
  (options: {
    readonly rpc: Rpc.AnyWithProps
    readonly payload: unknown
    readonly headers: Headers
  }): Effect.Effect<Provides, E>
}

Source

Since v1.0.0

RpcMiddlewareClient (interface)

Signature

export interface RpcMiddlewareClient<R = never> {
  (options: {
    readonly rpc: Rpc.AnyWithProps
    readonly request: Request<Rpc.Any>
  }): Effect.Effect<Request<Rpc.Any>, never, R>
}

Source

Since v1.0.0

TagClass (interface)

Signature

export interface TagClass<Self, Name extends string, Options>
  extends TagClass.Base<
    Self,
    Name,
    Options,
    RpcMiddleware<TagClass.Service<Options>, TagClass.FailureService<Options>>
  > {}

Source

Since v1.0.0

TagClass (namespace)

Source

Since v1.0.0

Base (interface)

Signature

export interface Base<Self, Name extends string, Options, Service> extends Context.Tag<Self, Service> {
  new (_: never): Context.TagClassShape<Name, Service>
  readonly [TypeId]: TypeId
  readonly optional: Optional<Options>
  readonly failure: FailureSchema<Options>
  readonly provides: Options extends { readonly provides: Context.Tag<any, any> } ? Options["provides"] : undefined
  readonly requiredForClient: RequiredForClient<Options>
}

Source

Since v1.0.0

Provides (type alias)

Signature

type Provides<Options> = Options extends {
  readonly provides: Context.Tag<any, any>
  readonly optional?: false
}
  ? Context.Tag.Identifier<Options["provides"]>
  : never

Source

Since v1.0.0

Service (type alias)

Signature

type Service<Options> = Options extends { readonly provides: Context.Tag<any, any> }
  ? Context.Tag.Service<Options["provides"]>
  : void

Source

Since v1.0.0

FailureSchema (type alias)

Signature

type FailureSchema<Options> = Options extends { readonly failure: Schema.Schema.All; readonly optional?: false }
  ? Options["failure"]
  : typeof Schema.Never

Source

Since v1.0.0

Failure (type alias)

Signature

type Failure<Options> = Options extends {
  readonly failure: Schema.Schema<infer _A, infer _I, infer _R>
  readonly optional?: false
}
  ? _A
  : never

Source

Since v1.0.0

FailureContext (type alias)

Signature

type Schema.Schema.Context<FailureSchema<Options>> = Schema.Schema.Context<FailureSchema<Options>>

Source

Since v1.0.0

FailureService (type alias)

Signature

type FailureService<Options> = Optional<Options> extends true ? unknown : Failure<Options>

Source

Since v1.0.0

Optional (type alias)

Signature

type Optional<Options> = Options extends { readonly optional: true } ? true : false

Source

Since v1.0.0

RequiredForClient (type alias)

Signature

type RequiredForClient<Options> = Options extends { readonly requiredForClient: true } ? true : false

Source

Since v1.0.0

TagClassAny (interface)

Signature

export interface TagClassAny extends Context.Tag<any, any> {
  readonly [TypeId]: TypeId
  readonly optional: boolean
  readonly provides?: Context.Tag<any, any> | undefined
  readonly failure: Schema.Schema.All
  readonly requiredForClient: boolean
}

Source

Since v1.0.0

TagClassAnyWithProps (interface)

Signature

export interface TagClassAnyWithProps extends Context.Tag<any, RpcMiddleware<any, any>> {
  readonly [TypeId]: TypeId
  readonly optional: boolean
  readonly provides?: Context.Tag<any, any>
  readonly failure: Schema.Schema.All
  readonly requiredForClient: boolean
}

Source

Since v1.0.0

tags

Tag

Signature

declare const Tag: <Self>() => <
  const Name extends string,
  const Options extends {
    readonly optional?: boolean
    readonly failure?: Schema.Schema.All
    readonly provides?: Context.Tag<any, any>
    readonly requiredForClient?: boolean
  }
>(
  id: Name,
  options?: Options | undefined
) => TagClass<Self, Name, Options>

Source

Since v1.0.0

type ids

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