@design.estate/dees-comms
Version:
A communications module for enabling DOM-based messaging and synchronization across browser tabs and workers.
23 lines (22 loc) • 922 B
TypeScript
import * as plugins from './dees-comms.plugins.js';
/**
* a comm class for client side communication between workers and tabs.
*/
export declare class DeesComms {
private broadcastChannel;
typedrouter: plugins.typedrequest.TypedRouter;
typedtarget: plugins.typedrequest.TypedTarget;
constructor();
/**
* creates a typedrequest with this classes postMessage as postMethod
*/
createTypedRequest<T extends plugins.typedrequestInterfaces.ITypedRequest>(methodName: T['method']): plugins.typedrequest.TypedRequest<T>;
/**
* posts a typedrequestmessage
*/
postMessage<T = plugins.typedrequestInterfaces.ITypedRequest>(messageArg: T): Promise<void>;
/**
* subscribe to messages
*/
createTypedHandler<T extends plugins.typedrequestInterfaces.ITypedRequest>(methodArg: T['method'], handlerFunction: plugins.typedrequest.THandlerFunction<T>): Promise<void>;
}