UNPKG

post-me

Version:

Use web Workers and other Windows through a simple Promise API

49 lines (48 loc) 2.08 kB
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; }