UNPKG

node-jet

Version:

Jet Realtime Message Bus for the Web. Daemon and Peer implementation.

99 lines (98 loc) 2.33 kB
import type { access } from './daemon/route.js'; import { type JSONRPCError } from './errors.js'; import type { OperatorType, ValueType } from './types.js'; export interface MethodParams { path: string; event: string; value?: ValueType; } export interface UnfetchParams { id: string; } export interface FetchParams { path?: Record<string, string | string[]>; value?: Record<string, { operator: OperatorType; value: number | boolean | string; }>; id: string; sort?: { asArray?: boolean; descending?: boolean; by?: string; from?: number; to?: number; }; } export type MessageParams = MethodParams | FetchParams | UnfetchParams; export interface Message { id?: string; } export declare const castMessage: <T extends MethodRequest>(msg: MethodRequest) => T; export interface ResultMessage extends Message { id: string; result: ValueType; } export interface ErrorMessage extends Message { id: string; error: JSONRPCError; } export interface MethodRequest extends Message { id: string; method: string; params?: MessageParams | AuthParams; } export interface PathParams { path: string; } export interface SetParams extends PathParams { value: ValueType; } export interface PathRequest extends Message { id: string; method: string; params: PathParams; } export interface UpdateRequest extends Message { id: string; method: string; params: SetParams; } export interface Stateparams { path: string; value?: ValueType; access?: access; } export interface MethodParams { path: string; access?: access; args?: ValueType[] | Record<string, ValueType>; } export interface AddRequest extends Stateparams, MethodParams { } export interface AuthParams { user: string; password: string; } export interface UserParams { user: string; password: string; groups: string[]; } export interface AddUserRequest { params: UserParams; } export interface AuthRequest { params: AuthParams; } export interface GetRequest extends MethodRequest { params: FetchParams; } export interface FetchRequest extends MethodRequest { params: FetchParams; } export interface UnFetchRequest extends MethodRequest { params: { id: string; }; }