@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
TypeScript
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;