UNPKG

@aeternity/aepp-sdk

Version:

SDK for the æternity blockchain

37 lines (36 loc) 1.55 kB
import BrowserConnection from './Browser.js'; import { MESSAGE_DIRECTION } from '../schema.js'; export type ImplPostMessage = Pick<Window, 'addEventListener' | 'removeEventListener' | 'postMessage'>; /** * Browser window Post Message connector module * @category aepp wallet communication */ export default class BrowserWindowMessageConnection extends BrowserConnection { #private; origin?: string; sendDirection?: MESSAGE_DIRECTION; receiveDirection: MESSAGE_DIRECTION; listener?: (this: Window, ev: MessageEvent<any>) => void; /** * @param options - Options * @param options.target Target window for message * @param options.self Host window for message * @param options.origin Origin of receiver * @param options.sendDirection Wrapping messages into additional struct * `({ type: 'to_aepp' || 'to_waellet', data })` * Used for handling messages between content script and page * @param options.receiveDirection Unwrapping messages from additional struct */ constructor({ target, self, origin, sendDirection, receiveDirection, ...options }?: { target?: ImplPostMessage; self?: ImplPostMessage; origin?: string; sendDirection?: MESSAGE_DIRECTION; receiveDirection?: MESSAGE_DIRECTION; debug?: boolean; }); isConnected(): boolean; connect(onMessage: (message: any, origin: string, source: MessageEventSource | null) => void, onDisconnect: () => void): void; disconnect(): void; sendMessage(msg: any): void; }