UNPKG

@nymphjs/pubsub

Version:

Nymph.js - PubSub Server

52 lines (51 loc) 1.47 kB
import { EntityJson, Options } from '@nymphjs/nymph'; export type QuerySubscriptionData = { current: string[]; query: string; qrefParents: { etype: string; query: string; }[]; /** * This means the user directly subscribed to this query, as opposed * to indirectly subscribing with a qref clause. */ direct: boolean; count: boolean; }; export type AuthenticateMessageData = { action: 'authenticate'; authToken: string; switchToken?: string; }; export type QuerySubscribeMessageData = { action: 'subscribe' | 'unsubscribe'; query: string; count?: boolean; }; export type UidSubscribeMessageData = { action: 'subscribe' | 'unsubscribe'; uid: string; count?: boolean; }; export type SubscribeMessageData = QuerySubscribeMessageData | UidSubscribeMessageData; export type PublishEntityMessageData = { action: 'publish'; guid: string; event: 'create' | 'update' | 'delete'; etype: string; entity?: EntityJson; }; export type PublishUidMessageData = { action: 'publish'; event: 'newUID' | 'setUID' | 'renameUID' | 'deleteUID'; name?: string; oldName?: string; newName?: string; value?: number; }; export type PublishMessageData = PublishEntityMessageData | PublishUidMessageData; export type MessageData = AuthenticateMessageData | SubscribeMessageData | PublishMessageData; export type MessageOptions = Options & { class: string; };