UNPKG

cross-document-messenger

Version:
37 lines (36 loc) 1.22 kB
export interface Message<T> { type: string; data: T; } export interface CrossDocMessenger<T> { emit: (message: Message<T>) => void; subscribe: (_handlerFn: (event: Message<T>) => void) => void; unsubscribe: () => void; } interface MessengerConstraint { messenger<T>(target: HTMLIFrameElement | undefined, targetOrigin: string): CrossDocMessenger<T>; } /** * TargetFrameMessenger is of type: CrossDocMessenger<T> */ export declare const TargetFrameMessenger: CrossDocMessenger<unknown>; /** * Host document API */ export declare class HostConnector implements MessengerConstraint { private _hostPort; private _channel; static getInstance(): HostConnector; /** * Should be consumed by the parent/hosting document * Accepts the iframe target element and its src url, initialize the MessageChannel and returns * the host and targets ports ready for messaging. * Example: * const { hostPort } = CrossDocsMessenger.connectToChannel(iframeRef, targetOrigin); * @param target * @param targetOrigin */ private _establishChannel; messenger<T>(target: HTMLIFrameElement | undefined, targetOrigin: string): CrossDocMessenger<T>; } export {};