@kingdom-sdk/core
Version:
Core module to design DDD applications in TypeScript
34 lines (26 loc) • 617 B
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Aggregate = void 0;
var _Entity = require("./Entity");
/**
* Base class for aggregates.
*/
class Aggregate extends _Entity.Entity {
constructor(id, version, isDiscarded, registeredAt, updatedAt) {
super(id, version, isDiscarded, registeredAt, updatedAt);
this.events = [];
}
addEvents(...events) {
this.check_not_discarded();
this.events.push(...events);
}
hasEvents() {
return this.events.length > 0;
}
nextEvent() {
return this.events.shift();
}
}
exports.Aggregate = Aggregate;
;