UNPKG

@truffle/dashboard-message-bus-common

Version:

Message types that are used when communicating with the Truffle dashboard message bus

80 lines (79 loc) 2.81 kB
export interface Message { id: number; type?: string; payload: any; } export interface Response { id: number; payload: any; } export type CliEventMessageType = "cli-event"; export declare const cliEventMessageType = "cli-event"; /** * Message to inform subscribers of Truffle CLI event data. * The message payload label helps identify the type of event data. */ export interface CliEventMessage<T> extends Message { type: CliEventMessageType; payload: { label: string; data: T; }; } export type DashboardProviderMessageType = "provider"; export declare const dashboardProviderMessageType = "provider"; /** * Message intended to be passed on to the injected provider of a dashboard instance. * The message payload is an RPC request that should be forwarded. */ export interface DashboardProviderMessage extends Message { type: DashboardProviderMessageType; payload: { jsonrpc: "2.0"; method: string; params: any[]; id: number; }; } export type LogMessageType = "log"; export declare const logMessageType = "log"; /** * Message intended to log messages across the message bus. * The message payload includes a "debug" namespace as well as a message. * This is an internal message type that is not intended to be used by publishers or subscribers. */ export interface LogMessage extends Message { type: LogMessageType; payload: { namespace: string; message: any; }; } export type DebugMessageType = "debug"; export declare const debugMessageType = "debug"; /** * Message to log in Dashboard browser console */ export interface DebugMessage extends Message { type: DebugMessageType; payload: { message: string; }; } export type InvalidateMessageType = "invalidate"; export declare const invalidateMessageType = "invalidate"; /** * Message intended to invalidate earlier messages. * The payload is the ID of the message that should be invalidated. * This is an internal message type that is not intended to be used by publishers or subscribers. */ export interface InvalidateMessage extends Message { type: InvalidateMessageType; payload: number; } export declare const isCliEventMessage: <T>(message: Message) => message is CliEventMessage<T>; export declare const isDashboardProviderMessage: (message: Message) => message is DashboardProviderMessage; export declare const isLogMessage: (message: Message) => message is LogMessage; export declare const isDebugMessage: (message: Message) => message is DebugMessage; export declare const isInvalidateMessage: (message: Message) => message is InvalidateMessage; export type MessageType = CliEventMessage<unknown> | DashboardProviderMessageType | LogMessageType | DebugMessageType | InvalidateMessageType;