@whiskeysockets/baileys
Version:
A WebSockets library for interacting with WhatsApp Web
36 lines (35 loc) • 1.45 kB
TypeScript
import { BaileysEventEmitter, BaileysEventMap } from '../Types';
import { ILogger } from './logger';
/**
* A map that contains a list of all events that have been triggered
*
* Note, this can contain different type of events
* this can make processing events extremely efficient -- since everything
* can be done in a single transaction
*/
type BaileysEventData = Partial<BaileysEventMap>;
type BaileysBufferableEventEmitter = BaileysEventEmitter & {
/** Use to process events in a batch */
process(handler: (events: BaileysEventData) => void | Promise<void>): (() => void);
/**
* starts buffering events, call flush() to release them
* */
buffer(): void;
/** buffers all events till the promise completes */
createBufferedFunction<A extends any[], T>(work: (...args: A) => Promise<T>): ((...args: A) => Promise<T>);
/**
* flushes all buffered events
* @param force if true, will flush all data regardless of any pending buffers
* @returns returns true if the flush actually happened, otherwise false
*/
flush(force?: boolean): boolean;
/** is there an ongoing buffer */
isBuffering(): boolean;
};
/**
* The event buffer logically consolidates different events into a single event
* making the data processing more efficient.
* @param ev the baileys event emitter
*/
export declare const makeEventBuffer: (logger: ILogger) => BaileysBufferableEventEmitter;
export {};