Skip to content
Effect 4.0 is here. One ecosystem. Zero dependencies.

RpcMessage

32 exports Since v1.0.0 Source

Request

Ack

interface
Since v1.0.0

Signature

interface Ack {
readonly _tag: "Ack";
readonly requestId: RequestId;
}

AckEncoded

interface
Since v1.0.0

Signature

interface AckEncoded {
readonly _tag: "Ack";
readonly requestId: string;
}
Since v1.0.0

Signature

declare const constEof: Eof

Signature

declare const constPing: Ping

Eof

interface
Since v1.0.0

Signature

interface Eof {
readonly _tag: "Eof";
}
Since v1.0.0

Signature

type FromClient<A extends Rpc.Any> = Request<A> | Ack | Interrupt | Eof

Signature

type FromClientEncoded = RequestEncoded | AckEncoded | InterruptEncoded | Ping | Eof

Interrupt

interface
Since v1.0.0

Signature

interface Interrupt {
readonly _tag: "Interrupt";
readonly interruptors: readonly Array<FiberId>;
readonly requestId: RequestId;
}
Since v1.0.0

Signature

interface InterruptEncoded {
readonly _tag: "Interrupt";
readonly requestId: string;
}

Ping

interface
Since v1.0.0

Signature

interface Ping {
readonly _tag: "Ping";
}

Request

interface
Since v1.0.0

Signature

interface Request<A extends Rpc.Any> {
readonly _tag: "Request";
readonly headers: Headers;
readonly id: RequestId;
readonly payload: Payload<A>;
readonly sampled?: boolean;
readonly spanId?: string;
readonly tag: Tag<A>;
readonly traceId?: string;
}
Since v1.0.0

Signature

interface RequestEncoded {
readonly _tag: "Request";
readonly headers: readonly Array<[string, string]>;
readonly id: string;
readonly payload: unknown;
readonly sampled?: boolean;
readonly spanId?: string;
readonly tag: string;
readonly traceId?: string;
}

Signature

declare const RequestId: (id: string | bigint) => RequestId
Since v1.0.0

Signature

type RequestId = Branded<bigint, RequestIdTypeId>

Signature

declare const RequestIdTypeId: unique symbol
Since v1.0.0

Signature

type RequestIdTypeId = typeof RequestIdTypeId

Response

ClientEnd

interface
Since v1.0.0

Signature

interface ClientEnd {
readonly _tag: "ClientEnd";
readonly clientId: number;
}
Since v1.0.0

Signature

interface ClientProtocolError {
readonly _tag: "ClientProtocolError";
readonly error: RpcClientError;
}

Signature

declare const constPong: Pong
Since v1.0.0

Signature

type FromServer<A extends Rpc.Any> = ResponseChunk<A> | ResponseExit<A> | ResponseDefect | ClientEnd

Signature

type FromServerEncoded = ResponseChunkEncoded | ResponseExitEncoded | ResponseDefectEncoded | Pong | ClientProtocolError

Pong

interface
Since v1.0.0

Signature

interface Pong {
readonly _tag: "Pong";
}

ResponseChunk

interface
Since v1.0.0

Signature

interface ResponseChunk<A extends Rpc.Any> {
readonly _tag: "Chunk";
readonly clientId: number;
readonly requestId: RequestId;
readonly values: readonly [SuccessChunk<A>, SuccessChunk<A>];
}
Since v1.0.0

Signature

interface ResponseChunkEncoded {
readonly _tag: "Chunk";
readonly requestId: string;
readonly values: readonly [unknown, unknown];
}
Since v1.0.0

Signature

interface ResponseDefect {
readonly _tag: "Defect";
readonly clientId: number;
readonly defect: unknown;
}

Signature

declare const ResponseDefectEncoded: (input: unknown) => ResponseDefectEncoded
Since v1.0.0

Signature

interface ResponseDefectEncoded {
readonly _tag: "Defect";
readonly defect: unknown;
}

ResponseExit

interface
Since v1.0.0

Signature

interface ResponseExit<A extends Rpc.Any> {
readonly _tag: "Exit";
readonly clientId: number;
readonly exit: Exit<A>;
readonly requestId: RequestId;
}
Since v1.0.0

Signature

interface ResponseExitEncoded {
readonly _tag: "Exit";
readonly exit: ExitEncoded<unknown, unknown, unknown>;
readonly requestId: string;
}
Since v1.0.0

Signature

type ResponseId = Branded<number, ResponseIdTypeId>

Signature

declare const ResponseIdTypeId: unique symbol

Signature

type ResponseIdTypeId = typeof ResponseIdTypeId