UNPKG

@cashfarm/plow

Version:

Library for validating input data and parameters

39 lines (38 loc) 1.4 kB
import { Guid } from '@cashfarm/lang'; import { Identity, IDomainEvent } from '../domain'; import { IESAggregateRoot } from './esAggregateRoot'; export interface IEventEnvelope { readonly id: Guid; readonly aggregateType: string; readonly aggregateId: Identity<any>; readonly aggregateVersion: number; /** * Fully Qualified Event Name * * format: "[package].[class]" * * @type {string} * @memberof IEventEnvelope */ readonly eventType: string; readonly event: Object; readonly metadata?: Object; readonly createdAt: Date; } /** * This class wraps an event to allow it to be searchable by the aggregate id, type or event type. * * This is very useful when the event is stored on a database or event store */ export declare class EventEnvelope implements IEventEnvelope { readonly id: Guid; readonly aggregateType: string; readonly aggregateId: Identity<any>; readonly aggregateVersion: number; readonly eventType: string; readonly event: IDomainEvent; readonly metadata: Object; readonly createdAt: Date; constructor(id: Guid, aggregateType: string, aggregateId: Identity<any>, aggregateVersion: number, eventType: string, event: IDomainEvent, metadata?: Object, createdAt?: Date); static wrap(aggt: IESAggregateRoot<any>, event: IDomainEvent, metadata?: Object): EventEnvelope; }