UNPKG

@cashfarm/plow

Version:

Library for validating input data and parameters

25 lines 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const lang_1 = require("@cashfarm/lang"); /** * 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 */ class EventEnvelope { constructor(id, aggregateType, aggregateId, aggregateVersion, eventType, event, metadata, createdAt) { this.id = id; this.aggregateType = aggregateType; this.aggregateId = aggregateId; this.aggregateVersion = aggregateVersion; this.eventType = eventType; this.event = event; this.metadata = metadata; this.createdAt = createdAt || new Date(); } static wrap(aggt, event, metadata) { return new EventEnvelope(new lang_1.Guid(), String(Reflect.getMetadata(Symbol.for('FQN'), aggt)), aggt.id, aggt.version, String(Reflect.getMetadata(Symbol.for('FQN'), event)), event, metadata, new Date()); } } exports.EventEnvelope = EventEnvelope; //# sourceMappingURL=eventEnvelope.js.map