UNPKG

event-driven

Version:

makes building event-driven-architecture easy

23 lines (22 loc) 901 B
import { Event } from './backend/models'; import { JsMsg, JetStreamClient } from 'nats'; import { EventConfig } from '.'; export interface BatchSubscriberEvent<ParentEvent extends Event<string>> { input: ParentEvent['data']; jsMsg: JsMsg; fail: (error: Error) => Promise<void>; } export declare type BatchEventHandler<ParentEvent extends Event<string>> = ({ config, events, }: { config: EventConfig; events: BatchSubscriberEvent<ParentEvent>[]; }) => Promise<any>; export declare type SubscribeBatch = <ParentEvent extends Event<string>>({ subject, batchEventHandlers, }: { subject: ParentEvent['subject']; batchEventHandlers: BatchEventHandler<ParentEvent>[]; }) => Promise<void>; export declare const SubscriberBatch: ({ clientGroup, js, batch, expires, }: { clientGroup: string; js: JetStreamClient; batch: number; expires: number; }) => SubscribeBatch;