UNPKG

nestjs-event-sourcing-lib

Version:

A comprehensive Event Sourcing and CQRS library for NestJS applications

78 lines 2.17 kB
import { Event } from '../core/event'; import { EventBus as IEventBus, EventHandler } from '../types'; /** * Event publish error */ export declare class EventPublishError extends Error { readonly eventId: string; readonly eventType: string; readonly originalError?: Error | undefined; constructor(message: string, eventId: string, eventType: string, originalError?: Error | undefined); } /** * Local Event Bus for publishing and handling events */ export declare class EventBus implements IEventBus { private readonly logger; private readonly handlers; private readonly globalHandlers; /** * Publishes single event */ publish(event: Event): Promise<void>; /** * Publishes multiple events */ publishAll(events: Event[]): Promise<void>; /** * Subscribes to events of specific type */ subscribe(eventType: string, handler: EventHandler): void; /** * Unsubscribes from events of specific type */ unsubscribe(eventType: string, handler: EventHandler): void; /** * Subscribes to all events (global handler) */ subscribeToAll(handler: EventHandler): void; /** * Unsubscribes from all events */ unsubscribeFromAll(handler: EventHandler): void; /** * Gets handler count for event type */ getHandlersCount(eventType: string): number; /** * Gets global handlers count */ getGlobalHandlersCount(): number; /** * Clears all handlers */ clear(): void; /** * Executes event handler with error handling */ private executeHandler; /** * Creates metadata for event */ private createEventMetadata; } /** * Simple event handler that stores events in memory * Useful for testing and development */ export declare class InMemoryEventStore { private readonly events; save(event: Event): Promise<void>; saveAll(events: Event[]): Promise<void>; getAll(): Event[]; getByType(eventType: string): Event[]; getByAggregateId(aggregateId: string): Event[]; clear(): void; count(): number; } //# sourceMappingURL=event.publisher.d.ts.map