data-transport
Version:
A simple and responsive transport
45 lines • 1.8 kB
TypeScript
import { listenerKey, originalListensMapKey, requestsMapKey, listensMapKey, senderKey, timeoutKey, prefixKey, produceKey, listenKey, serializerKey, logKey, verboseKey, beforeEmitKey, beforeEmitResolveKey } from './constant';
import type { EmitOptions, Request, Response, TransportOptions, BaseInteraction } from './interface';
export declare const getAction: (prefix: string, name: string) => string;
/**
* Create a base transport
*/
export declare abstract class Transport<T extends BaseInteraction = any> {
private [listenerKey];
private [listenKey];
private [senderKey];
private [timeoutKey];
private [prefixKey];
private [serializerKey];
private [requestsMapKey];
private [listensMapKey];
private [originalListensMapKey];
private [logKey]?;
private [verboseKey];
protected [beforeEmitKey]?: Promise<void>;
protected [beforeEmitResolveKey]?: () => void;
/**
* dispose transport
*/
dispose: () => any;
constructor({ listener, sender, timeout, verbose, prefix, listenKeys, checkListen, serializer, logger, }: TransportOptions);
private [produceKey];
/**
* Listen an event that transport data.
*
* @param name A transport action as listen message data action type
* @param fn A transport listener
*/
listen<K extends keyof T['listen']>(name: K, fn: T['listen'][K]): () => void;
id: string;
/**
* Emit an event that transport data.
*
* @param emitOptions A option for the transport data
* @param request A request data
*
* @returns Return a response for the request.
*/
emit<K extends keyof T['emit']>(options: EmitOptions<K>, ...request: Request<T['emit'][K]>): Promise<Response<T['emit'][K]>>;
}
//# sourceMappingURL=transport.d.ts.map