UNPKG

actionhero

Version:

The reusable, scalable, and quick node.js API server for stateless and stateful applications

36 lines (35 loc) 1.81 kB
import { api, chatRoom, Initializer } from "../index"; import { Connection } from "../classes/connection"; import * as ChatModule from "./../modules/chatRoom"; export interface ChatRoomApi { middleware: { [key: string]: ChatModule.chatRoom.ChatMiddleware; }; globalMiddleware: Array<string>; keys: { [keys: string]: string; }; messageChannel: string; broadcast: ChatRoomInitializer["broadcast"]; generateMessagePayload: ChatRoomInitializer["generateMessagePayload"]; incomingMessage: ChatRoomInitializer["incomingMessage"]; incomingMessagePerConnection?: ChatRoomInitializer["incomingMessagePerConnection"]; runMiddleware: ChatRoomInitializer["runMiddleware"]; removeMember: ChatRoomInitializer["removeMember"]; } export type ChatMiddlewareDirections = "join" | "leave" | "onSayReceive" | "say"; export type MessagePayloadType = ReturnType<typeof api.chatRoom.generateMessagePayload>; /** * Chat & Realtime Communication Methods */ export declare class ChatRoomInitializer extends Initializer { constructor(); broadcast: (connection: Partial<Connection>, room: string, message: object | Array<any> | string) => Promise<void>; generateMessagePayload: (message: chatRoom.ChatPubSubMessage) => Record<string, any>; incomingMessage: (message: ChatModule.chatRoom.ChatPubSubMessage) => void; incomingMessagePerConnection: (connection: Connection, messagePayload: MessagePayloadType) => Promise<void>; runMiddleware: (connection: Partial<Connection>, room: string, direction: ChatMiddlewareDirections, messagePayload?: MessagePayloadType) => Promise<Record<string, any>>; removeMember: (connectionId: string, room: string, toWaitRemote?: boolean) => Promise<any>; initialize(): Promise<void>; start(): Promise<void>; }