UNPKG

post-me

Version:

Use web Workers and other Windows through a simple Promise API

52 lines (51 loc) 2.5 kB
import { IdType, KeyType, MARKER } from './common'; export declare enum MessageType { HandshakeRequest = "handshake-request", HandshakeResponse = "handshake-response", Call = "call", Response = "response", Error = "error", Event = "event", Callback = "callback" } export interface Message<T extends MessageType> { type: typeof MARKER; action: T; sessionId: IdType; } export interface HandshakeRequestMessage extends Message<MessageType.HandshakeRequest> { } export interface HandshakeResponseMessage extends Message<MessageType.HandshakeResponse> { } export interface CallMessage<A extends Array<any>> extends Message<MessageType.Call> { requestId: IdType; methodName: KeyType; args: A; } export interface ResponseMessage<R> extends Message<MessageType.Response> { requestId: IdType; result?: R; error?: string; } export interface CallbackMessage<A extends Array<any>> extends Message<MessageType.Callback> { requestId: IdType; callbackId: IdType; args: A; } export interface EventMessage<P> extends Message<MessageType.Event> { eventName: KeyType; payload: P; } export declare function createHandshakeRequestMessage(sessionId: IdType): HandshakeRequestMessage; export declare function createHandshakeResponseMessage(sessionId: IdType): HandshakeResponseMessage; export declare function createCallMessage<A extends Array<any>>(sessionId: IdType, requestId: IdType, methodName: KeyType, args: A): CallMessage<A>; export declare function createResponsMessage<R>(sessionId: IdType, requestId: IdType, result: R, error?: string): ResponseMessage<R>; export declare function createCallbackMessage<A extends Array<any>>(sessionId: IdType, requestId: IdType, callbackId: IdType, args: A): CallbackMessage<A>; export declare function createEventMessage<P>(sessionId: IdType, eventName: KeyType, payload: P): EventMessage<P>; export declare function isMessage(m: any): m is Message<any>; export declare function isHandshakeRequestMessage(m: Message<any>): m is HandshakeRequestMessage; export declare function isHandshakeResponseMessage(m: Message<any>): m is HandshakeResponseMessage; export declare function isCallMessage(m: Message<any>): m is CallMessage<any[]>; export declare function isResponseMessage(m: Message<any>): m is ResponseMessage<any>; export declare function isCallbackMessage(m: Message<any>): m is CallbackMessage<any>; export declare function isEventMessage(m: Message<any>): m is EventMessage<any>;