RpcMiddleware.ts overview
Since v1.0.0
Exports Grouped by Category
- client
- models
- tags
- type ids
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>>
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>
}
Since v1.0.0
ForClient (interface)
Signature
export interface ForClient<Id> {
readonly _: unique symbol
readonly id: Id
}
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>
}
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>
}
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>>
> {}
Since v1.0.0
TagClass (namespace)
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>
}
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
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
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
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
Since v1.0.0
FailureContext (type alias)
Signature
type Schema.Schema.Context<FailureSchema<Options>> = Schema.Schema.Context<FailureSchema<Options>>
Since v1.0.0
FailureService (type alias)
Signature
type FailureService<Options> = Optional<Options> extends true ? unknown : Failure<Options>
Since v1.0.0
Optional (type alias)
Signature
type Optional<Options> = Options extends { readonly optional: true } ? true : false
Since v1.0.0
RequiredForClient (type alias)
Signature
type RequiredForClient<Options> = Options extends { readonly requiredForClient: true } ? true : false
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
}
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
}
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>
Since v1.0.0
type ids
TypeId
Signature
declare const TypeId: unique symbol
Since v1.0.0
TypeId (type alias)
Signature
type TypeId = typeof TypeId
Since v1.0.0