@r_wohl/web-channel-message
Version:
A light weight type-safe library for communicating via the Channel Message Web API
35 lines (26 loc) • 665 B
text/typescript
export type ActionType = "broadcast" | "all";
export type ObserverMessage = {
type: "observer";
key?: string;
action: ActionType;
payload?: any;
};
type CallbackMessage = {
type: "callback";
callbackKey: string;
action: ActionType;
payload?: any;
};
type CloseMessage = {
type: "close";
};
export type ConnectionUpdate = {
type: "internal";
channelData: {
connections: number;
};
};
type InternalMessage = CloseMessage | ConnectionUpdate;
export type UserMessage = CallbackMessage | ObserverMessage;
export type WorkerMessage = UserMessage | CloseMessage;
export type Message = UserMessage | InternalMessage;