UNPKG

@actualwave/messageport-dispatcher

Version:
29 lines (28 loc) 1.86 kB
import { type IEventDispatcher, type EventType, type EventListener, type EventProcessor } from '@actualwave/event-dispatcher'; export interface MessagePortLike { postMessage(data: unknown, targetOrigin: string, transferList?: Transferable[]): void; addEventListener(type: string, handler: (event: any) => void): void; } type PostMessageHandler = (this: MessagePortDispatcher, data: unknown, targetOrigin: string, transferList?: Transferable[]) => void; export declare class MessagePortDispatcher { dispatcherId: string; targetOrigin: string; target: MessagePortLike; customPostMessageHandler: PostMessageHandler | null; senderEventPreprocessor: EventProcessor | null; sender: IEventDispatcher; receiver: IEventDispatcher; constructor(target?: MessagePortLike | null, customPostMessageHandler?: PostMessageHandler | null, receiverEventPreprocessor?: EventProcessor | null, senderEventPreprocessor?: EventProcessor | null); addEventListener(eventType: string, listener: EventListener, priority?: number): void; hasEventListener(eventType: string): boolean; removeEventListener(eventType: string, listener: EventListener): void; removeAllEventListeners(eventType: string): void; dispatchEvent(eventType: EventType, data?: unknown, transferList?: Transferable[]): void; private _postMessageHandler; private _postMessageListener; } export declare const createMessagePortDispatcher: (target?: MessagePortLike | null, customPostMessageHandler?: PostMessageHandler | null, receiverEventPreprocessor?: EventProcessor | null, senderEventPreprocessor?: EventProcessor | null) => MessagePortDispatcher; export declare const getForSelf: () => MessagePortDispatcher; export declare const getForParent: () => MessagePortDispatcher; export declare const getForTop: () => MessagePortDispatcher; export {};