@caidrive/shared
Version:
caidrive.shared.components
56 lines (55 loc) • 1.04 kB
JavaScript
;
/**
* What it does.
*
* @param name - Parameter description.
* @returns Type and description of the returned object.
*
* @example
* ```
* Write me later.
* ```
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.AggregateRoot = void 0;
const entity_1 = require("./entity");
const domain_events_1 = require("../domain.events");
class AggregateRoot extends entity_1.Entity {
constructor() {
super(...arguments);
/**
*
*/
this.domainEvents = [];
}
/**
*
*/
get events() {
/**
*/
return this.domainEvents;
}
/**
*
*/
addEvent(event) {
/**
*
*/
this.domainEvents.push(event);
/**
*
*/
domain_events_1.Dispatcher.addAggregate(this);
}
/**
*
*/
clearEvents() {
/**
*/
this.domainEvents.splice(0, this.domainEvents.length);
}
}
exports.AggregateRoot = AggregateRoot;