UNPKG

@bazilio-san/af-stream

Version:
41 lines (33 loc) 1.24 kB
import AbstractSender from './AbstractSender'; import { IRecordsComposite, ISenderConstructorOptions, TEventRecord } from '../interfaces'; class CallbackSender extends AbstractSender { public eventCallback: Function; constructor (options: ISenderConstructorOptions) { super(options); const { eventCallback } = options.senderConfig; if (typeof eventCallback !== 'function') { options.exitOnError(`Missing event callback function when instantiating CallbackSender class`); } this.eventCallback = eventCallback as Function; } async connect () { this.options.echo.info(`=================== Callback Sender is Ready ===================`); return true; } async sendEvents (recordsComposite: IRecordsComposite): Promise<boolean> { const { eventsPacket } = recordsComposite; if (!eventsPacket.length) { return false; } const packet = eventsPacket.splice(0, eventsPacket.length); const pl = packet.length; recordsComposite.sentBufferLength = pl; recordsComposite.sendCount = pl; recordsComposite.last = packet[pl - 1]; packet.forEach((row: TEventRecord) => { this.eventCallback(row); }); return true; } } export default CallbackSender;