@logistically/events
Version:
A production-ready event-driven architecture library for NestJS with Redis Streams, comprehensive batching, reliable consumption, and enterprise-grade features.
21 lines (20 loc) • 863 B
TypeScript
import { EventEnvelope, EventValidator } from '../event-types';
export type EventHandler<T = any> = (body: T, header: EventEnvelope['header'], raw?: any) => Promise<void> | void;
export interface EventConsumerOptions {
handlers: Record<string, EventHandler>;
onError?: (err: Error, eventType: string, envelope: any) => void;
validator: EventValidator;
logUnregisteredEvents?: 'none' | 'debug' | 'info' | 'warn';
}
export declare class EventConsumer {
private handlers;
private onError?;
private validator;
private logUnregisteredEvents;
constructor(options: EventConsumerOptions);
handleMessage(rawMessage: any): Promise<void>;
private isValidEnvelope;
registerHandler<T>(eventType: string, handler: EventHandler<T>): void;
unregisterHandler(eventType: string): void;
getRegisteredEventTypes(): string[];
}