node-jet
Version:
Jet Realtime Message Bus for the Web. Daemon and Peer implementation.
99 lines (98 loc) • 2.33 kB
TypeScript
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;
};
}