import { Event, Identity, Group } from "hyinsit-types" import { EventProcessor } from "./types" export default class Processor implements EventProcessor { initialised: boolean = false processors: EventProcessor[] = [] constructor(processors: EventProcessor[]) { this.processors = processors } async processEvent( event: Event, identity: Identity, properties: any, timestamp?: string | number ): Promise { for (const eventProcessor of this.processors) { await eventProcessor.processEvent(event, identity, properties, timestamp) } } async identify( identity: Identity, timestamp?: string | number ): Promise { for (const eventProcessor of this.processors) { await eventProcessor.identify(identity, timestamp) } } async identifyGroup( identity: Group, timestamp?: string | number ): Promise { for (const eventProcessor of this.processors) { await eventProcessor.identifyGroup(identity, timestamp) } } shutdown() { for (const eventProcessor of this.processors) { eventProcessor.shutdown() } } }