@logistically/events-nestjs
Version:
NestJS integration for @logistically/events v3 - Event-driven architecture with Redis Streams
37 lines (36 loc) • 1.14 kB
TypeScript
import { OnModuleInit } from '@nestjs/common';
import { EventSystemService } from './event-system.service';
export interface EventHandlerRegistration {
eventType: string;
handler: (payload: any) => Promise<void> | void;
options?: {
priority?: number;
async?: boolean;
retry?: {
maxAttempts?: number;
backoffMs?: number;
};
};
}
export declare class EventHandlerRegistryService implements OnModuleInit {
private readonly eventSystemService;
private readonly logger;
private consumer;
private readonly handlers;
constructor(eventSystemService: EventSystemService);
onModuleInit(): Promise<void>;
private initializeConsumer;
/**
* Register an event handler manually
*/
registerEventHandler(registration: EventHandlerRegistration): Promise<void>;
private registerHandler;
/**
* Get all registered handlers for an event type
*/
getHandlers(eventType: string): EventHandlerRegistration[];
/**
* Remove all handlers for an event type
*/
removeHandlers(eventType: string): Promise<void>;
}