UNPKG

@trpc/server

Version:

The tRPC server library

109 lines 3.59 kB
import type { TRPCRequestInfo } from '../http/types'; import type { ProcedureType } from '../procedure'; import type { TRPC_ERROR_CODE_NUMBER } from './codes'; /** * Error response */ export interface TRPCErrorShape<TData extends object = object> { code: TRPC_ERROR_CODE_NUMBER; message: string; data: TData; } /** * JSON-RPC 2.0 Specification */ export declare namespace JSONRPC2 { type RequestId = number | string | null; /** * All requests/responses extends this shape */ interface BaseEnvelope { id?: RequestId; jsonrpc?: '2.0'; } interface BaseRequest<TMethod extends string = string> extends BaseEnvelope { method: TMethod; } interface Request<TMethod extends string = string, TParams = unknown> extends BaseRequest<TMethod> { params: TParams; } interface ResultResponse<TResult = unknown> extends BaseEnvelope { result: TResult; } interface ErrorResponse<TError extends TRPCErrorShape = TRPCErrorShape> extends BaseEnvelope { error: TError; } } export interface TRPCRequest extends JSONRPC2.Request<ProcedureType, { path: string; input: unknown; /** * The last event id that the client received */ lastEventId?: string; }> { } export interface TRPCResult<TData = unknown> { data: TData; type?: 'data'; /** * The id of the message to keep track of in case of a reconnect */ id?: string; } export interface TRPCSuccessResponse<TData> extends JSONRPC2.ResultResponse<TRPCResult<TData>> { } export interface TRPCErrorResponse<TError extends TRPCErrorShape = TRPCErrorShape> extends JSONRPC2.ErrorResponse<TError> { } export type TRPCResponse<TData = unknown, TError extends TRPCErrorShape = TRPCErrorShape> = TRPCErrorResponse<TError> | TRPCSuccessResponse<TData>; export type TRPCRequestMessage = TRPCRequest & { id: JSONRPC2.RequestId; }; /** * The client asked the server to unsubscribe */ export interface TRPCSubscriptionStopNotification extends JSONRPC2.BaseRequest<'subscription.stop'> { id: null; } /** * The client's outgoing request types */ export type TRPCClientOutgoingRequest = TRPCSubscriptionStopNotification; /** * The client's sent messages shape */ export type TRPCClientOutgoingMessage = TRPCRequestMessage | (JSONRPC2.BaseRequest<'subscription.stop'> & { id: JSONRPC2.RequestId; }); export interface TRPCResultMessage<TData> extends JSONRPC2.ResultResponse<{ type: 'started'; data?: never; } | { type: 'stopped'; data?: never; } | TRPCResult<TData>> { } export type TRPCResponseMessage<TData = unknown, TError extends TRPCErrorShape = TRPCErrorShape> = { id: JSONRPC2.RequestId; } & (TRPCErrorResponse<TError> | TRPCResultMessage<TData>); /** * The server asked the client to reconnect - useful when restarting/redeploying service */ export interface TRPCReconnectNotification extends JSONRPC2.BaseRequest<'reconnect'> { id: JSONRPC2.RequestId; } /** * The client's incoming request types */ export type TRPCClientIncomingRequest = TRPCReconnectNotification; /** * The client's received messages shape */ export type TRPCClientIncomingMessage<TResult = unknown, TError extends TRPCErrorShape = TRPCErrorShape> = TRPCClientIncomingRequest | TRPCResponseMessage<TResult, TError>; /** * The client sends connection params - always sent as the first message */ export interface TRPCConnectionParamsMessage extends JSONRPC2.BaseRequest<'connectionParams'> { data: TRPCRequestInfo['connectionParams']; } //# sourceMappingURL=envelopes.d.ts.map