@woltz/rich-domain 1.8.0 → 1.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +106 -47
- package/dist/cjs/core/base-aggregate.d.ts +39 -0
- package/dist/cjs/core/base-aggregate.d.ts.map +1 -0
- package/dist/cjs/core/base-aggregate.js +57 -0
- package/dist/cjs/core/base-aggregate.js.map +1 -0
- package/dist/cjs/core/base-entity.d.ts +6 -22
- package/dist/cjs/core/base-entity.d.ts.map +1 -1
- package/dist/cjs/core/base-entity.js +5 -29
- package/dist/cjs/core/base-entity.js.map +1 -1
- package/dist/cjs/core/entity.d.ts +3 -2
- package/dist/cjs/core/entity.d.ts.map +1 -1
- package/dist/cjs/core/entity.js +2 -1
- package/dist/cjs/core/entity.js.map +1 -1
- package/dist/cjs/core/id.d.ts +9 -1
- package/dist/cjs/core/id.d.ts.map +1 -1
- package/dist/cjs/core/id.js +12 -0
- package/dist/cjs/core/id.js.map +1 -1
- package/dist/cjs/core/index.d.ts +1 -0
- package/dist/cjs/core/index.d.ts.map +1 -1
- package/dist/cjs/core/index.js +1 -0
- package/dist/cjs/core/index.js.map +1 -1
- package/dist/cjs/core/value-object.d.ts +0 -18
- package/dist/cjs/core/value-object.d.ts.map +1 -1
- package/dist/cjs/core/value-object.js +0 -25
- package/dist/cjs/core/value-object.js.map +1 -1
- package/dist/esm/core/base-aggregate.d.ts +39 -0
- package/dist/esm/core/base-aggregate.d.ts.map +1 -0
- package/dist/esm/core/base-aggregate.js +53 -0
- package/dist/esm/core/base-aggregate.js.map +1 -0
- package/dist/esm/core/base-entity.d.ts +6 -22
- package/dist/esm/core/base-entity.d.ts.map +1 -1
- package/dist/esm/core/base-entity.js +5 -29
- package/dist/esm/core/base-entity.js.map +1 -1
- package/dist/esm/core/entity.d.ts +3 -2
- package/dist/esm/core/entity.d.ts.map +1 -1
- package/dist/esm/core/entity.js +2 -1
- package/dist/esm/core/entity.js.map +1 -1
- package/dist/esm/core/id.d.ts +9 -1
- package/dist/esm/core/id.d.ts.map +1 -1
- package/dist/esm/core/id.js +12 -0
- package/dist/esm/core/id.js.map +1 -1
- package/dist/esm/core/index.d.ts +1 -0
- package/dist/esm/core/index.d.ts.map +1 -1
- package/dist/esm/core/index.js +1 -0
- package/dist/esm/core/index.js.map +1 -1
- package/dist/esm/core/value-object.d.ts +0 -18
- package/dist/esm/core/value-object.d.ts.map +1 -1
- package/dist/esm/core/value-object.js +0 -25
- package/dist/esm/core/value-object.js.map +1 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.types.tsbuildinfo +1 -1
- package/dist/types/core/base-aggregate.d.ts +39 -0
- package/dist/types/core/base-aggregate.d.ts.map +1 -0
- package/dist/types/core/base-entity.d.ts +6 -22
- package/dist/types/core/base-entity.d.ts.map +1 -1
- package/dist/types/core/entity.d.ts +3 -2
- package/dist/types/core/entity.d.ts.map +1 -1
- package/dist/types/core/id.d.ts +9 -1
- package/dist/types/core/id.d.ts.map +1 -1
- package/dist/types/core/index.d.ts +1 -0
- package/dist/types/core/index.d.ts.map +1 -1
- package/dist/types/core/value-object.d.ts +0 -18
- package/dist/types/core/value-object.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/aggregate-changes.d.ts +0 -206
- package/dist/cjs/aggregate-changes.d.ts.map +0 -1
- package/dist/cjs/aggregate-changes.js +0 -365
- package/dist/cjs/aggregate-changes.js.map +0 -1
- package/dist/cjs/base-entity.d.ts +0 -90
- package/dist/cjs/base-entity.d.ts.map +0 -1
- package/dist/cjs/base-entity.js +0 -331
- package/dist/cjs/base-entity.js.map +0 -1
- package/dist/cjs/change-tracker.d.ts +0 -96
- package/dist/cjs/change-tracker.d.ts.map +0 -1
- package/dist/cjs/change-tracker.js +0 -789
- package/dist/cjs/change-tracker.js.map +0 -1
- package/dist/cjs/crypto.d.ts +0 -3
- package/dist/cjs/crypto.d.ts.map +0 -1
- package/dist/cjs/crypto.js +0 -32
- package/dist/cjs/crypto.js.map +0 -1
- package/dist/cjs/domain-event.d.ts +0 -23
- package/dist/cjs/domain-event.d.ts.map +0 -1
- package/dist/cjs/domain-event.js +0 -36
- package/dist/cjs/domain-event.js.map +0 -1
- package/dist/cjs/entity-changes.d.ts +0 -84
- package/dist/cjs/entity-changes.d.ts.map +0 -1
- package/dist/cjs/entity-changes.js +0 -136
- package/dist/cjs/entity-changes.js.map +0 -1
- package/dist/cjs/entity-schema-registry.d.ts +0 -282
- package/dist/cjs/entity-schema-registry.d.ts.map +0 -1
- package/dist/cjs/entity-schema-registry.js +0 -372
- package/dist/cjs/entity-schema-registry.js.map +0 -1
- package/dist/cjs/entity.d.ts +0 -7
- package/dist/cjs/entity.d.ts.map +0 -1
- package/dist/cjs/entity.js +0 -11
- package/dist/cjs/entity.js.map +0 -1
- package/dist/cjs/id.d.ts +0 -59
- package/dist/cjs/id.d.ts.map +0 -1
- package/dist/cjs/id.js +0 -92
- package/dist/cjs/id.js.map +0 -1
- package/dist/cjs/mapper.d.ts +0 -4
- package/dist/cjs/mapper.d.ts.map +0 -1
- package/dist/cjs/mapper.js +0 -7
- package/dist/cjs/mapper.js.map +0 -1
- package/dist/cjs/paginated-result.d.ts +0 -54
- package/dist/cjs/paginated-result.d.ts.map +0 -1
- package/dist/cjs/paginated-result.js +0 -197
- package/dist/cjs/paginated-result.js.map +0 -1
- package/dist/cjs/value-object.d.ts +0 -49
- package/dist/cjs/value-object.d.ts.map +0 -1
- package/dist/cjs/value-object.js +0 -129
- package/dist/cjs/value-object.js.map +0 -1
- package/dist/esm/aggregate-changes.d.ts +0 -206
- package/dist/esm/aggregate-changes.d.ts.map +0 -1
- package/dist/esm/aggregate-changes.js +0 -361
- package/dist/esm/aggregate-changes.js.map +0 -1
- package/dist/esm/base-entity.d.ts +0 -90
- package/dist/esm/base-entity.d.ts.map +0 -1
- package/dist/esm/base-entity.js +0 -327
- package/dist/esm/base-entity.js.map +0 -1
- package/dist/esm/change-tracker.d.ts +0 -96
- package/dist/esm/change-tracker.d.ts.map +0 -1
- package/dist/esm/change-tracker.js +0 -785
- package/dist/esm/change-tracker.js.map +0 -1
- package/dist/esm/crypto.d.ts +0 -3
- package/dist/esm/crypto.d.ts.map +0 -1
- package/dist/esm/crypto.js +0 -29
- package/dist/esm/crypto.js.map +0 -1
- package/dist/esm/domain-event.d.ts +0 -23
- package/dist/esm/domain-event.d.ts.map +0 -1
- package/dist/esm/domain-event.js +0 -32
- package/dist/esm/domain-event.js.map +0 -1
- package/dist/esm/entity-changes.d.ts +0 -84
- package/dist/esm/entity-changes.d.ts.map +0 -1
- package/dist/esm/entity-changes.js +0 -132
- package/dist/esm/entity-changes.js.map +0 -1
- package/dist/esm/entity-schema-registry.d.ts +0 -282
- package/dist/esm/entity-schema-registry.d.ts.map +0 -1
- package/dist/esm/entity-schema-registry.js +0 -368
- package/dist/esm/entity-schema-registry.js.map +0 -1
- package/dist/esm/entity.d.ts +0 -7
- package/dist/esm/entity.d.ts.map +0 -1
- package/dist/esm/entity.js +0 -6
- package/dist/esm/entity.js.map +0 -1
- package/dist/esm/id.d.ts +0 -59
- package/dist/esm/id.d.ts.map +0 -1
- package/dist/esm/id.js +0 -85
- package/dist/esm/id.js.map +0 -1
- package/dist/esm/mapper.d.ts +0 -4
- package/dist/esm/mapper.d.ts.map +0 -1
- package/dist/esm/mapper.js +0 -3
- package/dist/esm/mapper.js.map +0 -1
- package/dist/esm/paginated-result.d.ts +0 -54
- package/dist/esm/paginated-result.d.ts.map +0 -1
- package/dist/esm/paginated-result.js +0 -193
- package/dist/esm/paginated-result.js.map +0 -1
- package/dist/esm/value-object.d.ts +0 -49
- package/dist/esm/value-object.d.ts.map +0 -1
- package/dist/esm/value-object.js +0 -125
- package/dist/esm/value-object.js.map +0 -1
- package/dist/types/aggregate-changes.d.ts +0 -206
- package/dist/types/aggregate-changes.d.ts.map +0 -1
- package/dist/types/base-entity.d.ts +0 -90
- package/dist/types/base-entity.d.ts.map +0 -1
- package/dist/types/change-tracker.d.ts +0 -96
- package/dist/types/change-tracker.d.ts.map +0 -1
- package/dist/types/crypto.d.ts +0 -3
- package/dist/types/crypto.d.ts.map +0 -1
- package/dist/types/domain-event.d.ts +0 -23
- package/dist/types/domain-event.d.ts.map +0 -1
- package/dist/types/entity-changes.d.ts +0 -84
- package/dist/types/entity-changes.d.ts.map +0 -1
- package/dist/types/entity-schema-registry.d.ts +0 -282
- package/dist/types/entity-schema-registry.d.ts.map +0 -1
- package/dist/types/entity.d.ts +0 -7
- package/dist/types/entity.d.ts.map +0 -1
- package/dist/types/id.d.ts +0 -59
- package/dist/types/id.d.ts.map +0 -1
- package/dist/types/mapper.d.ts +0 -4
- package/dist/types/mapper.d.ts.map +0 -1
- package/dist/types/paginated-result.d.ts +0 -62
- package/dist/types/paginated-result.d.ts.map +0 -1
- package/dist/types/value-object.d.ts +0 -49
- package/dist/types/value-object.d.ts.map +0 -1
|
@@ -13,7 +13,6 @@ class ValueObject {
|
|
|
13
13
|
// @ts-expect-error - This is a private property
|
|
14
14
|
domainHooks;
|
|
15
15
|
domainSchema;
|
|
16
|
-
domainEvents = [];
|
|
17
16
|
static validation;
|
|
18
17
|
static hooks;
|
|
19
18
|
constructor(value) {
|
|
@@ -92,30 +91,6 @@ class ValueObject {
|
|
|
92
91
|
return false;
|
|
93
92
|
return this.value === other.value;
|
|
94
93
|
}
|
|
95
|
-
/**
|
|
96
|
-
* Adds a domain event to this value object.
|
|
97
|
-
*/
|
|
98
|
-
addDomainEvent(event) {
|
|
99
|
-
this.domainEvents.push(event);
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Returns all uncommitted domain events.
|
|
103
|
-
*/
|
|
104
|
-
getUncommittedEvents() {
|
|
105
|
-
return [...this.domainEvents];
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Clears all domain events (call after publishing).
|
|
109
|
-
*/
|
|
110
|
-
clearEvents() {
|
|
111
|
-
this.domainEvents = [];
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Returns true if the value object has uncommitted events.
|
|
115
|
-
*/
|
|
116
|
-
hasUncommittedEvents() {
|
|
117
|
-
return this.domainEvents.length > 0;
|
|
118
|
-
}
|
|
119
94
|
/**
|
|
120
95
|
* Creates a new ValueObject with updated value.
|
|
121
96
|
* ValueObjects are immutable, so this returns a new instance.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-object.js","sourceRoot":"","sources":["../../../src/core/value-object.ts"],"names":[],"mappings":";;;AAAA,gEAAyD;
|
|
1
|
+
{"version":3,"file":"value-object.js","sourceRoot":"","sources":["../../../src/core/value-object.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BaseEntity } from "./base-entity.js";
|
|
2
|
+
import { BaseProps, IDomainEvent, IDomainEventBus } from "../types/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Base class for Aggregates that adds domain event management capabilities.
|
|
5
|
+
* In Domain-Driven Design (DDD), only Aggregates (aggregate roots) should emit domain events.
|
|
6
|
+
* Regular Entities and Value Objects should NOT manage domain events.
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class BaseAggregate<T extends BaseProps, TOptionalInput extends keyof T = never> extends BaseEntity<T, TOptionalInput> {
|
|
9
|
+
private domainEvents;
|
|
10
|
+
/**
|
|
11
|
+
* Add a domain event to this aggregate
|
|
12
|
+
*/
|
|
13
|
+
protected addDomainEvent(event: IDomainEvent): void;
|
|
14
|
+
/**
|
|
15
|
+
* Dispatch all events through the event bus
|
|
16
|
+
*/
|
|
17
|
+
dispatchAll(bus: IDomainEventBus): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Get all uncommitted domain events
|
|
20
|
+
*/
|
|
21
|
+
getUncommittedEvents(): IDomainEvent[];
|
|
22
|
+
/**
|
|
23
|
+
* Clear all domain events (call after publishing)
|
|
24
|
+
*/
|
|
25
|
+
clearEvents(): void;
|
|
26
|
+
/**
|
|
27
|
+
* Check if aggregate has uncommitted events
|
|
28
|
+
*/
|
|
29
|
+
hasUncommittedEvents(): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Get a domain event by name
|
|
32
|
+
*/
|
|
33
|
+
getEvent(eventName: string): IDomainEvent | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Check if an event has been added to the aggregate
|
|
36
|
+
*/
|
|
37
|
+
hasEvent(eventName: string): boolean;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=base-aggregate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-aggregate.d.ts","sourceRoot":"","sources":["../../../src/core/base-aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE7E;;;;GAIG;AACH,8BAAsB,aAAa,CACjC,CAAC,SAAS,SAAS,EACnB,cAAc,SAAS,MAAM,CAAC,GAAG,KAAK,CACtC,SAAQ,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC;IACrC,OAAO,CAAC,YAAY,CAAsB;IAE1C;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAInD;;OAEG;IACU,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7D;;OAEG;IACH,oBAAoB,IAAI,YAAY,EAAE;IAItC;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAI/B;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIrD;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;CAGrC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { BaseEntity } from "./base-entity.js";
|
|
2
|
+
/**
|
|
3
|
+
* Base class for Aggregates that adds domain event management capabilities.
|
|
4
|
+
* In Domain-Driven Design (DDD), only Aggregates (aggregate roots) should emit domain events.
|
|
5
|
+
* Regular Entities and Value Objects should NOT manage domain events.
|
|
6
|
+
*/
|
|
7
|
+
export class BaseAggregate extends BaseEntity {
|
|
8
|
+
domainEvents = [];
|
|
9
|
+
/**
|
|
10
|
+
* Add a domain event to this aggregate
|
|
11
|
+
*/
|
|
12
|
+
addDomainEvent(event) {
|
|
13
|
+
this.domainEvents.push(event);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Dispatch all events through the event bus
|
|
17
|
+
*/
|
|
18
|
+
async dispatchAll(bus) {
|
|
19
|
+
await bus.publishAll(this.getUncommittedEvents());
|
|
20
|
+
this.clearEvents();
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Get all uncommitted domain events
|
|
24
|
+
*/
|
|
25
|
+
getUncommittedEvents() {
|
|
26
|
+
return [...this.domainEvents];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Clear all domain events (call after publishing)
|
|
30
|
+
*/
|
|
31
|
+
clearEvents() {
|
|
32
|
+
this.domainEvents = [];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Check if aggregate has uncommitted events
|
|
36
|
+
*/
|
|
37
|
+
hasUncommittedEvents() {
|
|
38
|
+
return this.domainEvents.length > 0;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get a domain event by name
|
|
42
|
+
*/
|
|
43
|
+
getEvent(eventName) {
|
|
44
|
+
return this.domainEvents.find((event) => event.eventName === eventName);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Check if an event has been added to the aggregate
|
|
48
|
+
*/
|
|
49
|
+
hasEvent(eventName) {
|
|
50
|
+
return this.domainEvents.some((event) => event.eventName === eventName);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=base-aggregate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-aggregate.js","sourceRoot":"","sources":["../../../src/core/base-aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C;;;;GAIG;AACH,MAAM,OAAgB,aAGpB,SAAQ,UAA6B;IAC7B,YAAY,GAAmB,EAAE,CAAC;IAE1C;;OAEG;IACO,cAAc,CAAC,KAAmB;QAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,WAAW,CAAC,GAAoB;QAC3C,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,SAAiB;QACxB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IAC1E,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,SAAiB;QACxB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IAC1E,CAAC;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ValidationError } from "../validation-error.js";
|
|
2
|
-
import { BaseProps, HistoryEntry, DeepJsonResult, EntityHooks, EntityValidation
|
|
2
|
+
import { BaseProps, HistoryEntry, DeepJsonResult, EntityHooks, EntityValidation } from "../types/index.js";
|
|
3
3
|
import { AggregateChanges, Id } from "./index";
|
|
4
|
-
export declare abstract class BaseEntity<T extends BaseProps> {
|
|
4
|
+
export declare abstract class BaseEntity<T extends BaseProps, TOptionalInput extends keyof T = never> {
|
|
5
5
|
private _props;
|
|
6
6
|
private tracker;
|
|
7
7
|
private proxiedProps;
|
|
@@ -9,10 +9,9 @@ export declare abstract class BaseEntity<T extends BaseProps> {
|
|
|
9
9
|
private validationConfig;
|
|
10
10
|
private entityHooks?;
|
|
11
11
|
private entitySchema?;
|
|
12
|
-
private domainEvents;
|
|
13
12
|
protected static validation?: EntityValidation<any>;
|
|
14
13
|
protected static hooks?: EntityHooks<any, any>;
|
|
15
|
-
constructor(props: Omit<T, "id"> & {
|
|
14
|
+
constructor(props: Omit<T, TOptionalInput | "id"> & Partial<Pick<T, TOptionalInput>> & {
|
|
16
15
|
id?: Id;
|
|
17
16
|
});
|
|
18
17
|
private validateProps;
|
|
@@ -63,25 +62,10 @@ export declare abstract class BaseEntity<T extends BaseProps> {
|
|
|
63
62
|
*/
|
|
64
63
|
markAsClean(): void;
|
|
65
64
|
/**
|
|
66
|
-
*
|
|
67
|
-
|
|
68
|
-
protected addDomainEvent(event: IDomainEvent): void;
|
|
69
|
-
/**
|
|
70
|
-
* Dispatch all events through the event bus
|
|
71
|
-
*/
|
|
72
|
-
dispatchAll(bus: IDomainEventBus): Promise<void>;
|
|
73
|
-
/**
|
|
74
|
-
* Get all uncommitted domain events
|
|
75
|
-
*/
|
|
76
|
-
getUncommittedEvents(): IDomainEvent[];
|
|
77
|
-
/**
|
|
78
|
-
* Clear all domain events (call after publishing)
|
|
79
|
-
*/
|
|
80
|
-
clearEvents(): void;
|
|
81
|
-
/**
|
|
82
|
-
* Check if entity has uncommitted events
|
|
65
|
+
* Clears history, marks entity as "clean" and marks the Id as not new.
|
|
66
|
+
* Call this after successfully persisting to the database.
|
|
83
67
|
*/
|
|
84
|
-
|
|
68
|
+
markAsPersisted(): void;
|
|
85
69
|
toJSON(): DeepJsonResult<T>;
|
|
86
70
|
private deepToJson;
|
|
87
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-entity.d.ts","sourceRoot":"","sources":["../../../src/core/base-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,SAAS,EACT,YAAY,EACZ,cAAc,EACd,WAAW,EAGX,gBAAgB,
|
|
1
|
+
{"version":3,"file":"base-entity.d.ts","sourceRoot":"","sources":["../../../src/core/base-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,SAAS,EACT,YAAY,EACZ,cAAc,EACd,WAAW,EAGX,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAiB,gBAAgB,EAAE,EAAE,EAAe,MAAM,SAAS,CAAC;AAS3E,8BAAsB,UAAU,CAC9B,CAAC,SAAS,SAAS,EACnB,cAAc,SAAS,MAAM,CAAC,GAAG,KAAK;IAEtC,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,WAAW,CAAC,CAAsB;IAC1C,OAAO,CAAC,YAAY,CAAC,CAAoB;IAEzC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpD,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAG7C,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,GAChC;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE;IAsDf,OAAO,CAAC,aAAa;IA8BrB,OAAO,CAAC,cAAc;IAgBtB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IA4E7B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,cAAc;IAkDtB,IAAI,EAAE,IAAI,EAAE,CAEX;IAEM,KAAK,IAAI,OAAO;IAIvB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,GAAG,OAAO;IAoBnD,IAAW,KAAK,IAAI,CAAC,CAEpB;IAED;;OAEG;IACH,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,eAAe,GAAG,SAAS,CAElD;IAED;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,gBAAgB,CAAC,UAAU,CAAC;IAK5E;;OAEG;IACH,UAAU,IAAI,YAAY,EAAE;IAI5B;;;OAGG;IACH,WAAW,IAAI,IAAI;IAKnB;;;OAGG;IACH,eAAe,IAAI,IAAI;IAOvB,MAAM,IAAI,cAAc,CAAC,CAAC,CAAC;IAI3B,OAAO,CAAC,UAAU;CAiBnB"}
|
|
@@ -13,7 +13,6 @@ export class BaseEntity {
|
|
|
13
13
|
validationConfig;
|
|
14
14
|
entityHooks;
|
|
15
15
|
entitySchema;
|
|
16
|
-
domainEvents = [];
|
|
17
16
|
static validation;
|
|
18
17
|
static hooks;
|
|
19
18
|
constructor(props) {
|
|
@@ -263,35 +262,12 @@ export class BaseEntity {
|
|
|
263
262
|
this.takeSnapshot();
|
|
264
263
|
}
|
|
265
264
|
/**
|
|
266
|
-
*
|
|
267
|
-
|
|
268
|
-
addDomainEvent(event) {
|
|
269
|
-
this.domainEvents.push(event);
|
|
270
|
-
}
|
|
271
|
-
/**
|
|
272
|
-
* Dispatch all events through the event bus
|
|
273
|
-
*/
|
|
274
|
-
async dispatchAll(bus) {
|
|
275
|
-
await bus.publishAll(this.getUncommittedEvents());
|
|
276
|
-
this.clearEvents();
|
|
277
|
-
}
|
|
278
|
-
/**
|
|
279
|
-
* Get all uncommitted domain events
|
|
280
|
-
*/
|
|
281
|
-
getUncommittedEvents() {
|
|
282
|
-
return [...this.domainEvents];
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* Clear all domain events (call after publishing)
|
|
286
|
-
*/
|
|
287
|
-
clearEvents() {
|
|
288
|
-
this.domainEvents = [];
|
|
289
|
-
}
|
|
290
|
-
/**
|
|
291
|
-
* Check if entity has uncommitted events
|
|
265
|
+
* Clears history, marks entity as "clean" and marks the Id as not new.
|
|
266
|
+
* Call this after successfully persisting to the database.
|
|
292
267
|
*/
|
|
293
|
-
|
|
294
|
-
|
|
268
|
+
markAsPersisted() {
|
|
269
|
+
this.markAsClean();
|
|
270
|
+
this.id.markAsNotNew();
|
|
295
271
|
}
|
|
296
272
|
toJSON() {
|
|
297
273
|
return this.deepToJson(this._props);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-entity.js","sourceRoot":"","sources":["../../../src/core/base-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"base-entity.js","sourceRoot":"","sources":["../../../src/core/base-entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { BaseEntity } from "./base-entity.js";
|
|
2
|
+
import { BaseAggregate } from "./base-aggregate.js";
|
|
2
3
|
import { BaseProps } from "../types/index.js";
|
|
3
|
-
export declare class Entity<T extends BaseProps> extends BaseEntity<T> {
|
|
4
|
+
export declare class Entity<T extends BaseProps, TOptionalInput extends keyof T = never> extends BaseEntity<T, TOptionalInput> {
|
|
4
5
|
}
|
|
5
|
-
export declare class Aggregate<T extends BaseProps> extends
|
|
6
|
+
export declare class Aggregate<T extends BaseProps, TOptionalInput extends keyof T = never> extends BaseAggregate<T, TOptionalInput> {
|
|
6
7
|
}
|
|
7
8
|
//# sourceMappingURL=entity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/core/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,qBAAa,MAAM,
|
|
1
|
+
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/core/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,qBAAa,MAAM,CACjB,CAAC,SAAS,SAAS,EACnB,cAAc,SAAS,MAAM,CAAC,GAAG,KAAK,CACtC,SAAQ,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC;CAAG;AAE1C,qBAAa,SAAS,CACpB,CAAC,SAAS,SAAS,EACnB,cAAc,SAAS,MAAM,CAAC,GAAG,KAAK,CACtC,SAAQ,aAAa,CAAC,CAAC,EAAE,cAAc,CAAC;CAAG"}
|
package/dist/esm/core/entity.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BaseEntity } from "./base-entity.js";
|
|
2
|
+
import { BaseAggregate } from "./base-aggregate.js";
|
|
2
3
|
export class Entity extends BaseEntity {
|
|
3
4
|
}
|
|
4
|
-
export class Aggregate extends
|
|
5
|
+
export class Aggregate extends BaseAggregate {
|
|
5
6
|
}
|
|
6
7
|
//# sourceMappingURL=entity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/core/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/core/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,OAAO,MAGX,SAAQ,UAA6B;CAAG;AAE1C,MAAM,OAAO,SAGX,SAAQ,aAAgC;CAAG"}
|
package/dist/esm/core/id.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare class Id {
|
|
2
2
|
private readonly _value;
|
|
3
|
-
private
|
|
3
|
+
private _isNew;
|
|
4
4
|
/**
|
|
5
5
|
* Create a new Id
|
|
6
6
|
* @param value - Optional existing ID value. If not provided, generates a new UUID.
|
|
@@ -44,6 +44,14 @@ export declare class Id {
|
|
|
44
44
|
* Create a new Id (convenience static method)
|
|
45
45
|
*/
|
|
46
46
|
static create(): Id;
|
|
47
|
+
/**
|
|
48
|
+
* Mark the Id as not new
|
|
49
|
+
*/
|
|
50
|
+
markAsNotNew(): void;
|
|
51
|
+
/**
|
|
52
|
+
* Mark the Id as new
|
|
53
|
+
*/
|
|
54
|
+
markAsNew(): void;
|
|
47
55
|
/**
|
|
48
56
|
* Create an Id from an existing value
|
|
49
57
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../../src/core/id.ts"],"names":[],"mappings":"AAEA,qBAAa,EAAE;IACb,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../../src/core/id.ts"],"names":[],"mappings":"AAEA,qBAAa,EAAE;IACb,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,MAAM,CAAU;IAExB;;;;;;;;;;;;OAYG;gBACS,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;gBAC9B,KAAK,CAAC,EAAE,MAAM;IAa1B;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACI,KAAK,IAAI,OAAO;IAIvB;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,GAAG,OAAO;IAOnC;;OAEG;IACH,OAAO,CAAC,YAAY;IAKpB;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,EAAE;IAInB;;OAEG;IACI,YAAY,IAAI,IAAI;IAI3B;;OAEG;IACI,SAAS,IAAI,IAAI;IAIxB;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE;IAI9B;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,GAAG,MAAM;CAUvD"}
|
package/dist/esm/core/id.js
CHANGED
|
@@ -60,6 +60,18 @@ export class Id {
|
|
|
60
60
|
static create() {
|
|
61
61
|
return new Id();
|
|
62
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Mark the Id as not new
|
|
65
|
+
*/
|
|
66
|
+
markAsNotNew() {
|
|
67
|
+
this._isNew = false;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Mark the Id as new
|
|
71
|
+
*/
|
|
72
|
+
markAsNew() {
|
|
73
|
+
this._isNew = true;
|
|
74
|
+
}
|
|
63
75
|
/**
|
|
64
76
|
* Create an Id from an existing value
|
|
65
77
|
*/
|
package/dist/esm/core/id.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../../src/core/id.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,oBAAoB,CAAC;AAEtC,MAAM,OAAO,EAAE;IACI,MAAM,CAAS;
|
|
1
|
+
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../../src/core/id.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,oBAAoB,CAAC;AAEtC,MAAM,OAAO,EAAE;IACI,MAAM,CAAS;IACxB,MAAM,CAAU;IAiBxB,YAAY,KAAc,EAAE,KAAe;QACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,+CAA+C;YAC/C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,KAAK,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,0DAA0D;YAC1D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,KAAK;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAkB;QACvB,IAAI,KAAK,YAAY,EAAE,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,gCAAgC;QAChC,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,EAAE,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACI,YAAY;QACjB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;OAEG;IACI,SAAS;QACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,KAAa;QACvB,OAAO,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,CAAc,EAAE,CAAc;QAC3C,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACpB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACpB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QACd,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IACrB,CAAC;CACF"}
|
package/dist/esm/core/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,MAAM,CAAC;AACrB,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,MAAM,CAAC;AACrB,cAAc,gBAAgB,CAAC"}
|
package/dist/esm/core/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,MAAM,CAAC;AACrB,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,MAAM,CAAC;AACrB,cAAc,gBAAgB,CAAC"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { ValidationError } from "../validation-error.js";
|
|
2
|
-
import { IDomainEvent } from "../index.js";
|
|
3
2
|
import { VOHooks, EntityValidation, Primitive } from "../types/index.js";
|
|
4
3
|
export declare abstract class ValueObject<T extends Primitive> {
|
|
5
4
|
readonly value: T;
|
|
6
5
|
private validationConfig;
|
|
7
6
|
private domainHooks?;
|
|
8
7
|
private domainSchema?;
|
|
9
|
-
private domainEvents;
|
|
10
8
|
protected static validation?: EntityValidation<any>;
|
|
11
9
|
protected static hooks?: VOHooks<any, any>;
|
|
12
10
|
constructor(value: T);
|
|
@@ -24,22 +22,6 @@ export declare abstract class ValueObject<T extends Primitive> {
|
|
|
24
22
|
* Compare this ValueObject with another for equality based on their properties.
|
|
25
23
|
*/
|
|
26
24
|
equals(other: ValueObject<T>): boolean;
|
|
27
|
-
/**
|
|
28
|
-
* Adds a domain event to this value object.
|
|
29
|
-
*/
|
|
30
|
-
protected addDomainEvent(event: IDomainEvent): void;
|
|
31
|
-
/**
|
|
32
|
-
* Returns all uncommitted domain events.
|
|
33
|
-
*/
|
|
34
|
-
getUncommittedEvents(): IDomainEvent[];
|
|
35
|
-
/**
|
|
36
|
-
* Clears all domain events (call after publishing).
|
|
37
|
-
*/
|
|
38
|
-
clearEvents(): void;
|
|
39
|
-
/**
|
|
40
|
-
* Returns true if the value object has uncommitted events.
|
|
41
|
-
*/
|
|
42
|
-
hasUncommittedEvents(): boolean;
|
|
43
25
|
/**
|
|
44
26
|
* Creates a new ValueObject with updated value.
|
|
45
27
|
* ValueObjects are immutable, so this returns a new instance.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-object.d.ts","sourceRoot":"","sources":["../../../src/core/value-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,
|
|
1
|
+
{"version":3,"file":"value-object.d.ts","sourceRoot":"","sources":["../../../src/core/value-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,OAAO,EAGP,gBAAgB,EAChB,SAAS,EACV,MAAM,mBAAmB,CAAC;AAW3B,8BAAsB,WAAW,CAAC,CAAC,SAAS,SAAS;IACnD,SAAgB,KAAK,EAAG,CAAC,CAAC;IAC1B,OAAO,CAAC,gBAAgB,CAA6B;IAErD,OAAO,CAAC,WAAW,CAAC,CAAkB;IACtC,OAAO,CAAC,YAAY,CAAC,CAAoB;IAEzC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpD,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAE/B,KAAK,EAAE,CAAC;IAmCpB,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,eAAe,GAAG,SAAS,CAElD;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO;IAMtC;;;OAGG;IACH,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;CAIhC"}
|
|
@@ -10,7 +10,6 @@ export class ValueObject {
|
|
|
10
10
|
// @ts-expect-error - This is a private property
|
|
11
11
|
domainHooks;
|
|
12
12
|
domainSchema;
|
|
13
|
-
domainEvents = [];
|
|
14
13
|
static validation;
|
|
15
14
|
static hooks;
|
|
16
15
|
constructor(value) {
|
|
@@ -89,30 +88,6 @@ export class ValueObject {
|
|
|
89
88
|
return false;
|
|
90
89
|
return this.value === other.value;
|
|
91
90
|
}
|
|
92
|
-
/**
|
|
93
|
-
* Adds a domain event to this value object.
|
|
94
|
-
*/
|
|
95
|
-
addDomainEvent(event) {
|
|
96
|
-
this.domainEvents.push(event);
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Returns all uncommitted domain events.
|
|
100
|
-
*/
|
|
101
|
-
getUncommittedEvents() {
|
|
102
|
-
return [...this.domainEvents];
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Clears all domain events (call after publishing).
|
|
106
|
-
*/
|
|
107
|
-
clearEvents() {
|
|
108
|
-
this.domainEvents = [];
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Returns true if the value object has uncommitted events.
|
|
112
|
-
*/
|
|
113
|
-
hasUncommittedEvents() {
|
|
114
|
-
return this.domainEvents.length > 0;
|
|
115
|
-
}
|
|
116
91
|
/**
|
|
117
92
|
* Creates a new ValueObject with updated value.
|
|
118
93
|
* ValueObjects are immutable, so this returns a new instance.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-object.js","sourceRoot":"","sources":["../../../src/core/value-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"value-object.js","sourceRoot":"","sources":["../../../src/core/value-object.ts"],"names":[],"mappings":"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"}
|