neroxbailx
Version:
baileys whatsapp-api
35 lines • 1.36 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 {}