| /** | |
| * Message envelopes shared by unstable RPC clients, servers, serializers, and | |
| * transports. | |
| * | |
| * `RpcMessage` is the protocol vocabulary below `RpcClient` and `RpcServer`. | |
| * It defines decoded messages for in-process channels and encoded messages for | |
| * transport boundaries, so custom protocols can move the same request, | |
| * streaming, acknowledgement, interrupt, keepalive, and defect signals as the | |
| * built-in HTTP, socket, worker, and test transports. | |
| * | |
| * @since 4.0.0 | |
| */ | |
| import type { NonEmptyReadonlyArray } from "../../Array.ts"; | |
| import type { Branded } from "../../Brand.ts"; | |
| import type { Headers } from "../http/Headers.ts"; | |
| import type * as Rpc from "./Rpc.ts"; | |
| import type { RpcClientError } from "./RpcClientError.ts"; | |
| /** | |
| * Decoded messages that can be sent from an RPC client to a server. | |
| * | |
| * @category request | |
| * @since 4.0.0 | |
| */ | |
| export type FromClient<A extends Rpc.Any> = Request<A> | Ack | Interrupt | Eof; | |
| /** | |
| * Transport-encoded messages that can be sent from an RPC client to a server. | |
| * | |
| * @category request | |
| * @since 4.0.0 | |
| */ | |
| export type FromClientEncoded = RequestEncoded | AckEncoded | InterruptEncoded | Ping | Eof; | |
| /** | |
| * A branded request identifier used to correlate RPC requests, responses, | |
| * chunks, acknowledgements, and interrupts. | |
| * | |
| * @category request | |
| * @since 4.0.0 | |
| */ | |
| export type RequestId = Branded<bigint, "~effect/rpc/RpcMessage/RequestId">; | |
| /** | |
| * Converts a bigint or string request id into the branded `RequestId` type. | |
| * | |
| * @category request | |
| * @since 4.0.0 | |
| */ | |
| export declare const RequestId: (id: bigint | string) => RequestId; | |
| /** | |
| * The transport-encoded RPC request envelope, including the string request id, | |
| * RPC tag, encoded payload, headers, and optional trace context. | |
| * | |
| * @category request | |
| * @since 4.0.0 | |
| */ | |
| export interface RequestEncoded { | |
| readonly _tag: "Request"; | |
| readonly id: string; | |
| readonly tag: string; | |
| readonly payload: unknown; | |
| readonly headers: ReadonlyArray<[string, string]>; | |
| readonly traceId?: string; | |
| readonly spanId?: string; | |
| readonly sampled?: boolean; | |
| } | |
| /** | |
| * The decoded RPC request envelope for an RPC union, carrying a branded request | |
| * id, typed RPC tag, decoded payload, headers, and optional trace context. | |
| * | |
| * @category request | |
| * @since 4.0.0 | |
| */ | |
| export interface Request<A extends Rpc.Any> { | |
| readonly _tag: "Request"; | |
| readonly id: RequestId; | |
| readonly tag: Rpc.Tag<A>; | |
| readonly payload: Rpc.Payload<A>; | |
| readonly headers: Headers; | |
| readonly traceId?: string; | |
| readonly spanId?: string; | |
| readonly sampled?: boolean; | |
| } | |
| /** | |
| * A decoded acknowledgement for a streamed RPC response chunk. | |
| * | |
| * @category request | |
| * @since 4.0.0 | |
| */ | |
| export interface Ack { | |
| readonly _tag: "Ack"; | |
| readonly requestId: RequestId; | |
| } | |
| /** | |
| * A decoded request to interrupt an in-flight RPC, carrying the request id and | |
| * interrupting fiber ids. | |
| * | |
| * @category request | |
| * @since 4.0.0 | |
| */ | |
| export interface Interrupt { | |
| readonly _tag: "Interrupt"; | |
| readonly requestId: RequestId; | |
| readonly interruptors: ReadonlyArray<number>; | |
| } | |
| /** | |
| * The transport-encoded acknowledgement for a streamed RPC response chunk. | |
| * | |
| * @category request | |
| * @since 4.0.0 | |
| */ | |
| export interface AckEncoded { | |
| readonly _tag: "Ack"; | |
| readonly requestId: string; | |
| } | |
| /** | |
| * The transport-encoded request to interrupt an in-flight RPC. | |
| * | |
| * @category request | |
| * @since 4.0.0 | |
| */ | |
| export interface InterruptEncoded { | |
| readonly _tag: "Interrupt"; | |
| readonly requestId: string; | |
| } | |
| /** | |
| * A client-to-server message indicating that the client has finished sending | |
| * input for the current connection or request batch. | |
| * | |
| * @category request | |
| * @since 4.0.0 | |
| */ | |
| export interface Eof { | |
| readonly _tag: "Eof"; | |
| } | |
| /** | |
| * A client-to-server keepalive message used by protocols that monitor | |
| * connection liveness. | |
| * | |
| * @category request | |
| * @since 4.0.0 | |
| */ | |
| export interface Ping { | |
| readonly _tag: "Ping"; | |
| } | |
| /** | |
| * Represents the reusable `Eof` message value. | |
| * | |
| * @category request | |
| * @since 4.0.0 | |
| */ | |
| export declare const constEof: Eof; | |
| /** | |
| * Represents the reusable `Ping` message value. | |
| * | |
| * @category request | |
| * @since 4.0.0 | |
| */ | |
| export declare const constPing: Ping; | |
| /** | |
| * Decoded messages that can be sent from an RPC server to a client. | |
| * | |
| * @category response | |
| * @since 4.0.0 | |
| */ | |
| export type FromServer<A extends Rpc.Any> = ResponseChunk<A> | ResponseExit<A> | ResponseDefect | ClientEnd; | |
| /** | |
| * Transport-encoded messages that can be sent from an RPC server to a client. | |
| * | |
| * @category response | |
| * @since 4.0.0 | |
| */ | |
| export type FromServerEncoded = ResponseChunkEncoded | ResponseExitEncoded | ResponseDefectEncoded | Pong | ClientProtocolError; | |
| /** | |
| * The brand identifier used by the `ResponseId` type. | |
| * | |
| * @category type IDs | |
| * @since 4.0.0 | |
| */ | |
| export declare const ResponseIdTypeId = "~effect//rpc/RpcServer/ResponseId"; | |
| /** | |
| * The literal type of the `ResponseId` brand identifier. | |
| * | |
| * @category type IDs | |
| * @since 4.0.0 | |
| */ | |
| export type ResponseIdTypeId = typeof ResponseIdTypeId; | |
| /** | |
| * A branded numeric identifier for server responses. | |
| * | |
| * @category response | |
| * @since 4.0.0 | |
| */ | |
| export type ResponseId = Branded<number, ResponseIdTypeId>; | |
| /** | |
| * The transport-encoded response message containing a non-empty batch of stream | |
| * chunk values for a request. | |
| * | |
| * @category response | |
| * @since 4.0.0 | |
| */ | |
| export interface ResponseChunkEncoded { | |
| readonly _tag: "Chunk"; | |
| readonly requestId: string; | |
| readonly values: NonEmptyReadonlyArray<unknown>; | |
| } | |
| /** | |
| * The decoded response message containing a non-empty batch of stream chunk | |
| * values for a specific client and request. | |
| * | |
| * @category response | |
| * @since 4.0.0 | |
| */ | |
| export interface ResponseChunk<A extends Rpc.Any> { | |
| readonly _tag: "Chunk"; | |
| readonly clientId: number; | |
| readonly requestId: RequestId; | |
| readonly values: NonEmptyReadonlyArray<Rpc.SuccessChunk<A>>; | |
| } | |
| /** | |
| * The transport representation of an RPC `Exit`, encoding success values or a | |
| * failure cause made of failures, defects, and interrupts. | |
| * | |
| * @category response | |
| * @since 4.0.0 | |
| */ | |
| export type ExitEncoded<A, E> = { | |
| readonly _tag: "Success"; | |
| readonly value: A; | |
| } | { | |
| readonly _tag: "Failure"; | |
| readonly cause: ReadonlyArray<{ | |
| readonly _tag: "Fail"; | |
| readonly error: E; | |
| } | { | |
| readonly _tag: "Die"; | |
| readonly defect: unknown; | |
| } | { | |
| readonly _tag: "Interrupt"; | |
| readonly fiberId: number | undefined; | |
| }>; | |
| }; | |
| /** | |
| * The transport-encoded terminal response for a request, carrying the encoded | |
| * `Exit`. | |
| * | |
| * @category response | |
| * @since 4.0.0 | |
| */ | |
| export interface ResponseExitEncoded { | |
| readonly _tag: "Exit"; | |
| readonly requestId: string; | |
| readonly exit: ExitEncoded<unknown, unknown>; | |
| } | |
| /** | |
| * A server-to-client protocol message reporting a client protocol error to all | |
| * affected in-flight requests. | |
| * | |
| * @category response | |
| * @since 4.0.0 | |
| */ | |
| export interface ClientProtocolError { | |
| readonly _tag: "ClientProtocolError"; | |
| readonly error: RpcClientError; | |
| } | |
| /** | |
| * The decoded terminal response for a request, carrying the typed `Rpc.Exit` | |
| * for the RPC. | |
| * | |
| * @category response | |
| * @since 4.0.0 | |
| */ | |
| export interface ResponseExit<A extends Rpc.Any> { | |
| readonly _tag: "Exit"; | |
| readonly clientId: number; | |
| readonly requestId: RequestId; | |
| readonly exit: Rpc.Exit<A>; | |
| } | |
| /** | |
| * The transport-encoded server defect message used for protocol-level defects | |
| * that affect the client connection. | |
| * | |
| * @category response | |
| * @since 4.0.0 | |
| */ | |
| export interface ResponseDefectEncoded { | |
| readonly _tag: "Defect"; | |
| readonly defect: unknown; | |
| } | |
| /** | |
| * Creates an encoded terminal response for a request whose exit is a defect | |
| * encoded with `Schema.Defect()`. | |
| * | |
| * @category response | |
| * @since 4.0.0 | |
| */ | |
| export declare const ResponseExitDieEncoded: (options: { | |
| readonly requestId: RequestId; | |
| readonly defect: unknown; | |
| }) => ResponseExitEncoded; | |
| /** | |
| * Creates a transport-encoded defect response by encoding the input with | |
| * `Schema.Defect()`. | |
| * | |
| * @category response | |
| * @since 4.0.0 | |
| */ | |
| export declare const ResponseDefectEncoded: (input: unknown) => ResponseDefectEncoded; | |
| /** | |
| * The decoded server defect message for a client connection. | |
| * | |
| * @category response | |
| * @since 4.0.0 | |
| */ | |
| export interface ResponseDefect { | |
| readonly _tag: "Defect"; | |
| readonly clientId: number; | |
| readonly defect: unknown; | |
| } | |
| /** | |
| * A server message indicating that the client connection has ended. | |
| * | |
| * @category response | |
| * @since 4.0.0 | |
| */ | |
| export interface ClientEnd { | |
| readonly _tag: "ClientEnd"; | |
| readonly clientId: number; | |
| } | |
| /** | |
| * A server-to-client keepalive response to a `Ping` message. | |
| * | |
| * @category response | |
| * @since 4.0.0 | |
| */ | |
| export interface Pong { | |
| readonly _tag: "Pong"; | |
| } | |
| /** | |
| * Represents the reusable `Pong` message value. | |
| * | |
| * @category response | |
| * @since 4.0.0 | |
| */ | |
| export declare const constPong: Pong; | |
| //# sourceMappingURL=RpcMessage.d.ts.map |
Xet Storage Details
- Size:
- 8.98 kB
- Xet hash:
- 5b753cddb8f6b367eba1109a66287c83545dadabad3186fb8534ec284c74ce02
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.