UNPKG

@kingdom-sdk/core

Version:

Core module to design DDD applications in TypeScript

34 lines (26 loc) 617 B
"use strict"; 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;