UNPKG

@cashfarm/plow

Version:

Library for validating input data and parameters

14 lines (13 loc) 741 B
import { Guid, ConcreteType } from '@cashfarm/lang'; import { IDomainEvent, Identity, IRepository } from '../domain'; import { IEventStore } from './iEventStore'; import { IEventBus } from './iEventBus'; import { ESAggregateRoot } from './esAggregateRoot'; export declare abstract class ESRepository<TAggregate extends ESAggregateRoot<TId>, TId extends Identity<Guid> | Guid> implements IRepository<TAggregate, TId> { protected storage: IEventStore; protected aggtClass: ConcreteType<TAggregate>; protected eventBus: IEventBus; constructor(storage: IEventStore, aggtClass: ConcreteType<TAggregate>, eventBus?: IEventBus); save(aggregate: TAggregate): Promise<IDomainEvent[]>; getById(id: TId): Promise<TAggregate>; }