@dapplets/dapplet-extension
Version:
The Bridge to the Augmented Web.
28 lines (27 loc) • 987 B
TypeScript
export type RpcMessageEvent = {
data: any;
source?: EventMessaging;
origin?: EventMessaging;
target?: EventMessaging;
};
/**
* EventMessaging is a common interface for window and worker
*/
export interface EventMessaging {
addEventListener(type: string, listener: (event: RpcMessageEvent) => void): void;
removeEventListener(type: string, listener: (event: RpcMessageEvent) => void): void;
postMessage(message: any, targetOrigin?: string): void;
}
export declare class JsonRpc {
private _callbacks;
private _outcomingRequests;
private _defaultWindow;
private _sources;
constructor(defaultWindow?: EventMessaging);
addEventSource(source: EventMessaging): void;
removeEventSource(source: EventMessaging): void;
call(method: string, params: any[], frame?: EventMessaging): Promise<any>;
on(method: string, callback: (...args: any[]) => Promise<any> | undefined | boolean): void;
destroy(): void;
private _handler;
}