@cashfarm/plow
Version:
Library for validating input data and parameters
17 lines (16 loc) • 598 B
TypeScript
import { Guid, Type } from '@cashfarm/lang';
import { AggregateRoot } from '../domain';
import { Identity } from '../domain/identity';
import { EventEnvelope } from './eventEnvelope';
export declare const IEventStore: symbol;
export interface IEventStore {
/**
* Returns the next expected version
*
* @param {AggregateRoot<any>} aggregate
* @returns {Promise<number>}
* @memberof IEventStore
*/
save(aggregate: AggregateRoot<any>): Promise<number>;
getEventsByAggregate(aggregateType: Type, aggregateId: Identity<Guid> | Guid): Promise<EventEnvelope[]>;
}