post-me
Version:
Use web Workers and other Windows through a simple Promise API
49 lines (48 loc) • 2.08 kB
TypeScript
import { IdType, KeyType } from './common';
import { Messenger } from './messenger';
import { ConcreteEmitter } from './emitter';
import { MessageType, CallMessage, EventMessage, ResponseMessage, CallbackMessage, HandshakeResponseMessage, HandshakeRequestMessage } from './messages';
export declare type DispatcherEvents = {
[x: string]: CallMessage<any[]> | EventMessage<any> | CallbackMessage<any[]> | ResponseMessage<any>;
[MessageType.Call]: CallMessage<any[]>;
[MessageType.Event]: EventMessage<any>;
};
export declare class Dispatcher extends ConcreteEmitter<DispatcherEvents> {
private messenger;
private sessionId;
private removeMessengerListener;
private uniqueId;
constructor(messenger: Messenger, sessionId: IdType);
private messengerListener;
callOnRemote(methodName: KeyType, args: any[], transfer?: Transferable[]): {
callbackEvent: string;
responseEvent: string;
};
respondToRemote(requestId: IdType, value: any, error: any, transfer?: Transferable[]): void;
callbackToRemote(requestId: IdType, callbackId: IdType, args: any[]): void;
emitToRemote(eventName: KeyType, payload: any, transfer?: Transferable[]): void;
close(): void;
}
export declare type ParentHandshakeDispatcherEvents = {
[x: number]: HandshakeResponseMessage;
};
export declare class ParentHandshakeDispatcher extends ConcreteEmitter<ParentHandshakeDispatcherEvents> {
private messenger;
private sessionId;
private removeMessengerListener;
constructor(messenger: Messenger, sessionId: IdType);
private messengerListener;
initiateHandshake(): IdType;
close(): void;
}
export declare type ChildHandshakeDispatcherEvents = {
[MessageType.HandshakeRequest]: HandshakeRequestMessage;
};
export declare class ChildHandshakeDispatcher extends ConcreteEmitter<ChildHandshakeDispatcherEvents> {
private messenger;
private removeMessengerListener;
constructor(messenger: Messenger);
private messengerListener;
acceptHandshake(sessionId: IdType): void;
close(): void;
}