@jsonjoy.com/reactive-rpc
Version:
Reactive-RPC is a library for building reactive APIs over WebSocket, HTTP, and other RPCs.
12 lines (11 loc) • 699 B
TypeScript
import type { JsonValueCodec } from '@jsonjoy.com/json-pack/lib/codecs/types';
import type * as msg from './messages';
export type ReactiveRpcClientMessage = msg.NotificationMessage | msg.RequestDataMessage | msg.RequestCompleteMessage | msg.RequestErrorMessage | msg.ResponseUnsubscribeMessage;
export type ReactiveRpcServerMessage = msg.ResponseDataMessage | msg.ResponseCompleteMessage | msg.ResponseErrorMessage | msg.RequestUnsubscribeMessage;
export type ReactiveRpcMessage = ReactiveRpcClientMessage | ReactiveRpcServerMessage;
export interface Message<P = unknown> {
value?: undefined | unknown;
validate(): void;
toCompact(): P;
encodeBinary(codec: JsonValueCodec): void;
}