45872ffc2aa8a2df128b2d8e1779a26d2e271314f733c06cbae10393e20545ca.json raw
1 {"ast":null,"code":"/**\n * Base class for all domain events.\n * Domain events capture significant occurrences in the domain that\n * domain experts care about.\n */\nexport class DomainEvent {\n occurredAt;\n eventId;\n constructor() {\n this.occurredAt = new Date();\n this.eventId = crypto.randomUUID();\n }\n}\n/**\n * Base class for aggregate roots that can raise domain events.\n */\nexport class AggregateRoot {\n _domainEvents = [];\n addDomainEvent(event) {\n this._domainEvents.push(event);\n }\n pullDomainEvents() {\n const events = [...this._domainEvents];\n this._domainEvents = [];\n return events;\n }\n /**\n * Check if there are any pending domain events.\n */\n hasPendingEvents() {\n return this._domainEvents.length > 0;\n }\n}","map":null,"metadata":{},"sourceType":"module","externalDependencies":[]}