UNPKG

@combine-labs/combine-polaris

Version:

Combine Lab's product component library. Forked from Shopify's Polaris.

43 lines (42 loc) 1.08 kB
export interface Message { message: string; data: any; } export interface Handler { (data: object): void; } export interface HandlerMap { [type: string]: Handler; } export interface Options { name: string; targetOrigin: string; debug?: boolean; } export default class Messenger { private target; private handlers; static Messages: Readonly<{ SET_WINDOW_LOCATION: string; }>; targetOrigin: string; private name; private debug; private queue; private callbacks; private callbacksToID; private callbackIndex; constructor(target: Window | null | undefined, handlers: HandlerMap, options: Options); setTarget(target: Window | null | undefined): void; send(message: Message['message'], data?: Message['data']): Message['data']; private tryToDequeue; private log; private warn; private storeCallback; private normalizePayload; private handleMessage; private isFromTargetOrigin; private invokeCallback; private invokeHandler; private windowLocation; }