event-driven
Version:
makes building event-driven-architecture easy
18 lines (17 loc) • 619 B
TypeScript
import { Event } from './backend/models';
import { JetStreamClient } from 'nats';
import { EventConfig } from '.';
declare type EventHandler<ParentEvent extends Event<string>> = (event: {
input: ParentEvent['data'];
config: EventConfig;
}) => Promise<any>;
export declare const Subscriber: ({ clientGroup, js, batch, expires, }: {
clientGroup: string;
js: JetStreamClient;
batch: number;
expires: number;
}) => <ParentEvent extends Event<string>>({ subject, eventHandlers, }: {
subject: ParentEvent["subject"];
eventHandlers: EventHandler<ParentEvent>[];
}) => Promise<void>;
export {};