@nestjs-cqrs-eventsourcing/core
Version:
Event sourcing for nestjs CQRS
22 lines (21 loc) • 1.18 kB
TypeScript
import { IEventBus } from '@nestjs/cqrs/dist/interfaces';
import { StorableEvent, UserAwareEventInterface } from './types/types';
import { ViewEventBus } from './view/view-event-bus';
import { DistributedLockService } from './distributed-lock.service';
import { EventstoreInterface } from '@nestjs-cqrs-eventsourcing/core/src/eventstore/eventstore.interface';
export type StoreEventBusOptions = {
getUserId?: (request: unknown) => unknown;
parseUserId?: (userId: unknown) => unknown;
};
export declare class StoreEventBus<EventBase extends StorableEvent = StorableEvent> implements IEventBus<EventBase> {
private readonly viewEventBus;
private readonly eventStore;
private readonly dls;
private readonly options?;
constructor(viewEventBus: ViewEventBus, eventStore: EventstoreInterface, dls: DistributedLockService, options?: StoreEventBusOptions);
publish<T extends UserAwareEventInterface, TContext = unknown>(_event: T, _context?: TContext): Promise<void>;
publishAll<TEvent extends EventBase, TContext = unknown>(events: TEvent[], request?: TContext): Promise<void>;
private getAggregateId;
private storeEvent;
private getUserId;
}