UNPKG

js-broadcast-channel

Version:
40 lines (38 loc) 1.4 kB
interface IBroadcastJS { close: VoidFunction; postMessage: (message: Message) => void; onMessage: (messageName: string, onReceive: (message: Message) => void) => void; canBrowserSupportBroadcastJS: () => boolean; hasListeners: (messageName: string) => boolean; } interface Message<T = unknown> { message: string; data: T; isInternal?: boolean; } interface BroadcastHandlers { onBeforeSendMessage?: (message: Message) => void; onAfterSendMessage?: (message: Message) => void; onBeforePostMessage?: (message: Message) => void; onAfterPostMessage?: (message: Message) => void; onBeforeClose?: VoidFunction; onAfterClose?: VoidFunction; onError?: (message: Message) => void; } declare class BroadcastJS implements IBroadcastJS { private static bcInstance; private static bcJSInstance; private static messageCallbacks; private static handlers; constructor(name: string, handlers?: BroadcastHandlers); close(): void; postMessage(message: Message): void; onMessage<T>(messageName: string, onRecieve: (message: Message<T>) => void): void; removeMessage(messageName: string): void; canBrowserSupportBroadcastJS(): boolean; hasListeners(messageName: string): boolean; private static internalMessage; private createMessage; private createSerializedMessage; } export { BroadcastJS, type Message };