@hg-ts/domain 0.3.3 → 0.4.0
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/dist/aggregate-created.event.d.ts +1 -1
- package/dist/aggregate-created.event.d.ts.map +1 -1
- package/dist/aggregate-created.event.js +2 -6
- package/dist/aggregate-created.event.js.map +1 -1
- package/dist/base.aggregate.d.ts +4 -4
- package/dist/base.aggregate.d.ts.map +1 -1
- package/dist/base.aggregate.js +11 -15
- package/dist/base.aggregate.js.map +1 -1
- package/dist/base.entity.d.ts +1 -1
- package/dist/base.entity.d.ts.map +1 -1
- package/dist/base.entity.js +1 -5
- package/dist/base.entity.js.map +1 -1
- package/dist/created-event.not-found.exception.js +2 -6
- package/dist/created-event.not-found.exception.js.map +1 -1
- package/dist/domain.event.d.ts +1 -1
- package/dist/domain.event.d.ts.map +1 -1
- package/dist/domain.event.js +7 -11
- package/dist/domain.event.js.map +1 -1
- package/dist/identifiable.js +1 -2
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -10
- package/dist/index.js.map +1 -1
- package/dist/tests/aggregate.test.js +83 -86
- package/dist/tests/aggregate.test.js.map +1 -1
- package/dist/tests/example-created.event.d.ts +1 -1
- package/dist/tests/example-created.event.d.ts.map +1 -1
- package/dist/tests/example-created.event.js +2 -6
- package/dist/tests/example-created.event.js.map +1 -1
- package/dist/tests/example-updated.event.d.ts +1 -1
- package/dist/tests/example-updated.event.d.ts.map +1 -1
- package/dist/tests/example-updated.event.js +2 -6
- package/dist/tests/example-updated.event.js.map +1 -1
- package/dist/tests/example.aggregate.d.ts +2 -2
- package/dist/tests/example.aggregate.d.ts.map +1 -1
- package/dist/tests/example.aggregate.js +13 -17
- package/dist/tests/example.aggregate.js.map +1 -1
- package/package.json +10 -9
- package/tsconfig.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-created.event.d.ts","sourceRoot":"","sources":["../src/aggregate-created.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"aggregate-created.event.d.ts","sourceRoot":"","sources":["../src/aggregate-created.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,8BAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAE,SAAQ,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC;CAAG"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.AggregateCreatedEvent = void 0;
|
|
4
|
-
const domain_event_1 = require("./domain.event");
|
|
5
|
-
class AggregateCreatedEvent extends domain_event_1.DomainEvent {
|
|
1
|
+
import { DomainEvent } from './domain.event.js';
|
|
2
|
+
export class AggregateCreatedEvent extends DomainEvent {
|
|
6
3
|
}
|
|
7
|
-
exports.AggregateCreatedEvent = AggregateCreatedEvent;
|
|
8
4
|
//# sourceMappingURL=aggregate-created.event.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-created.event.js","sourceRoot":"","sources":["../src/aggregate-created.event.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aggregate-created.event.js","sourceRoot":"","sources":["../src/aggregate-created.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAgB,qBAA6C,SAAQ,WAAyB;CAAG"}
|
package/dist/base.aggregate.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { AggregateCreatedEvent } from './aggregate-created.event';
|
|
2
|
-
import { BaseEntity } from './base.entity';
|
|
3
|
-
import { DomainEvent } from './domain.event';
|
|
4
|
-
import type { Identifiable } from './identifiable';
|
|
1
|
+
import { AggregateCreatedEvent } from './aggregate-created.event.js';
|
|
2
|
+
import { BaseEntity } from './base.entity.js';
|
|
3
|
+
import { DomainEvent } from './domain.event.js';
|
|
4
|
+
import type { Identifiable } from './identifiable.js';
|
|
5
5
|
declare const AGGREGATE_SYMBOL: unique symbol;
|
|
6
6
|
export declare const AGGREGATE_EVENTS_SYMBOL: unique symbol;
|
|
7
7
|
export declare abstract class BaseAggregate<IdType = string> extends BaseEntity<IdType> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.aggregate.d.ts","sourceRoot":"","sources":["../src/base.aggregate.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"base.aggregate.d.ts","sourceRoot":"","sources":["../src/base.aggregate.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,QAAA,MAAM,gBAAgB,eAA6B,CAAC;AACpD,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AAEzE,8BAAsB,aAAa,CAAC,MAAM,GAAG,MAAM,CAAE,SAAQ,UAAU,CAAC,MAAM,CAAC;IAC9E,SAAS,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,CAAC,uBAAuB,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAM;IAEtE,SAAS,aAAa,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC;IAW3C,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE;WAIxB,iBAAiB,CAAC,MAAM,EAAE,SAAS,SAAS,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,YAAY,EACxG,aAAa,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,EACtC,gBAAgB,EAAE,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAC9E,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,GACxB,SAAS;IAgBZ,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;IAIvD,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI;IAMrD,OAAO,CAAC,gBAAgB;CAexB"}
|
package/dist/base.aggregate.js
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const events_1 = require("@hg-ts/events");
|
|
5
|
-
const base_entity_1 = require("./base.entity");
|
|
6
|
-
const created_event_not_found_exception_1 = require("./created-event.not-found.exception");
|
|
1
|
+
import { getEventsToHandle, getListenMethods, } from '@hg-ts/events';
|
|
2
|
+
import { BaseEntity } from './base.entity.js';
|
|
3
|
+
import { CreatedEventNotFoundException } from './created-event.not-found.exception.js';
|
|
7
4
|
const AGGREGATE_SYMBOL = Symbol('AGGREGATE_SYMBOL');
|
|
8
|
-
|
|
9
|
-
class BaseAggregate extends
|
|
5
|
+
export const AGGREGATE_EVENTS_SYMBOL = Symbol('AGGREGATE_EVENTS_SYMBOL');
|
|
6
|
+
export class BaseAggregate extends BaseEntity {
|
|
10
7
|
[AGGREGATE_SYMBOL];
|
|
11
|
-
[
|
|
8
|
+
[AGGREGATE_EVENTS_SYMBOL] = [];
|
|
12
9
|
constructor(params) {
|
|
13
10
|
super(params);
|
|
14
11
|
Object.defineProperty(this, AGGREGATE_SYMBOL, {
|
|
@@ -19,12 +16,12 @@ class BaseAggregate extends base_entity_1.BaseEntity {
|
|
|
19
16
|
});
|
|
20
17
|
}
|
|
21
18
|
getEvents() {
|
|
22
|
-
return this[
|
|
19
|
+
return this[AGGREGATE_EVENTS_SYMBOL];
|
|
23
20
|
}
|
|
24
21
|
static restoreFromEvents(aggregateCtor, createdEventCtor, events) {
|
|
25
22
|
const createdEvent = events.find(event => event instanceof createdEventCtor);
|
|
26
23
|
if (!createdEvent) {
|
|
27
|
-
throw new
|
|
24
|
+
throw new CreatedEventNotFoundException(aggregateCtor.name);
|
|
28
25
|
}
|
|
29
26
|
const aggregate = new aggregateCtor({
|
|
30
27
|
id: createdEvent.entityId,
|
|
@@ -38,14 +35,14 @@ class BaseAggregate extends base_entity_1.BaseEntity {
|
|
|
38
35
|
}
|
|
39
36
|
produceEvent(event) {
|
|
40
37
|
this.triggerListeners(event);
|
|
41
|
-
this[
|
|
38
|
+
this[AGGREGATE_EVENTS_SYMBOL].push(event);
|
|
42
39
|
}
|
|
43
40
|
triggerListeners(event) {
|
|
44
41
|
const proto = Object.getPrototypeOf(this);
|
|
45
|
-
const listenMethods =
|
|
42
|
+
const listenMethods = getListenMethods(proto);
|
|
46
43
|
listenMethods.forEach(methodName => {
|
|
47
44
|
const method = this[methodName].bind(this);
|
|
48
|
-
const eventsToHandle =
|
|
45
|
+
const eventsToHandle = getEventsToHandle(proto, methodName);
|
|
49
46
|
eventsToHandle.forEach(eventCtor => {
|
|
50
47
|
if (event instanceof eventCtor) {
|
|
51
48
|
method(event);
|
|
@@ -54,5 +51,4 @@ class BaseAggregate extends base_entity_1.BaseEntity {
|
|
|
54
51
|
});
|
|
55
52
|
}
|
|
56
53
|
}
|
|
57
|
-
exports.BaseAggregate = BaseAggregate;
|
|
58
54
|
//# sourceMappingURL=base.aggregate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.aggregate.js","sourceRoot":"","sources":["../src/base.aggregate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.aggregate.js","sourceRoot":"","sources":["../src/base.aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,iBAAiB,EACjB,gBAAgB,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AAIvF,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAEzE,MAAM,OAAgB,aAA+B,SAAQ,UAAkB;IAC3D,CAAC,gBAAgB,CAAC,CAAS;IAC3B,CAAC,uBAAuB,CAAC,GAAuB,EAAE,CAAC;IAEtE,YAAsB,MAA4B;QACjD,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,gBAAgB,EAAE;YAC7C,KAAK,EAAE,MAAM,CAAC,EAAE;YAChB,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,IAAI;SACd,CAAC,CAAC;IACJ,CAAC;IAEM,SAAS;QACf,OAAO,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAC9B,aAAsC,EACtC,gBAA8E,EAC9E,MAA0B;QAE1B,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,YAAY,gBAAgB,CAAC,CAAC;QAC7E,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,MAAM,IAAI,6BAA6B,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC;YACnC,EAAE,EAAE,YAAY,CAAC,QAAQ;YACzB,GAAG,YAAY,CAAC,IAAI;SACpB,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE9B,OAAO,SAAS,CAAC;IAClB,CAAC;IAES,WAAW,CAAC,MAA0B;QAC/C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACnD,CAAC;IAES,YAAY,CAAC,KAAuB;QAC7C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAE7B,IAAI,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAEO,gBAAgB,CAAC,KAAuB;QAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAE,CAAC;QAC3C,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAE9C,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAClC,MAAM,MAAM,GAAI,IAAY,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAC;YACpE,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAE5D,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAClC,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;oBAChC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACf,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
|
package/dist/base.entity.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Identifiable } from './identifiable';
|
|
1
|
+
import type { Identifiable } from './identifiable.js';
|
|
2
2
|
export declare abstract class BaseEntity<IdType = string> implements Identifiable<IdType> {
|
|
3
3
|
readonly id: IdType;
|
|
4
4
|
protected constructor(params: Identifiable<IdType>);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.entity.d.ts","sourceRoot":"","sources":["../src/base.entity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"base.entity.d.ts","sourceRoot":"","sources":["../src/base.entity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,8BAAsB,UAAU,CAAC,MAAM,GAAG,MAAM,CAAE,YAAW,YAAY,CAAC,MAAM,CAAC;IAChF,SAAgB,EAAE,EAAE,MAAM,CAAC;IAE3B,SAAS,aAAa,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC;IAI3C,MAAM,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO;CAI/D"}
|
package/dist/base.entity.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BaseEntity = void 0;
|
|
4
|
-
class BaseEntity {
|
|
1
|
+
export class BaseEntity {
|
|
5
2
|
id;
|
|
6
3
|
constructor(params) {
|
|
7
4
|
this.id = params.id;
|
|
@@ -11,5 +8,4 @@ class BaseEntity {
|
|
|
11
8
|
&& this.id === entity.id;
|
|
12
9
|
}
|
|
13
10
|
}
|
|
14
|
-
exports.BaseEntity = BaseEntity;
|
|
15
11
|
//# sourceMappingURL=base.entity.js.map
|
package/dist/base.entity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.entity.js","sourceRoot":"","sources":["../src/base.entity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.entity.js","sourceRoot":"","sources":["../src/base.entity.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,UAAU;IACf,EAAE,CAAS;IAE3B,YAAsB,MAA4B;QACjD,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;IACrB,CAAC;IAEM,MAAM,CAA+B,MAAS;QACpD,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,CAAE,CAAC,WAAW,KAAK,MAAM,CAAC,cAAc,CAAC,MAAM,CAAE,CAAC,WAAW;eAC1F,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC;IAC3B,CAAC;CACD"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.CreatedEventNotFoundException = void 0;
|
|
4
|
-
const exception_1 = require("@hg-ts/exception");
|
|
5
|
-
class CreatedEventNotFoundException extends exception_1.BaseException {
|
|
1
|
+
import { BaseException } from '@hg-ts/exception';
|
|
2
|
+
export class CreatedEventNotFoundException extends BaseException {
|
|
6
3
|
constructor(entityName) {
|
|
7
4
|
super(`Created event for entity "${entityName}" `);
|
|
8
5
|
}
|
|
9
6
|
}
|
|
10
|
-
exports.CreatedEventNotFoundException = CreatedEventNotFoundException;
|
|
11
7
|
//# sourceMappingURL=created-event.not-found.exception.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"created-event.not-found.exception.js","sourceRoot":"","sources":["../src/created-event.not-found.exception.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"created-event.not-found.exception.js","sourceRoot":"","sources":["../src/created-event.not-found.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,OAAO,6BAA8B,SAAQ,aAAa;IAC/D,YAAmB,UAAkB;QACpC,KAAK,CAAC,6BAA6B,UAAU,IAAI,CAAC,CAAC;IACpD,CAAC;CACD"}
|
package/dist/domain.event.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseEvent, BaseEventDto, EventParams } from '@hg-ts/events';
|
|
2
|
-
import { Identifiable } from './identifiable';
|
|
2
|
+
import { Identifiable } from './identifiable.js';
|
|
3
3
|
export declare const STORED_PROPERTY: unique symbol;
|
|
4
4
|
export type DomainEventDto = BaseEventDto & {
|
|
5
5
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.event.d.ts","sourceRoot":"","sources":["../src/domain.event.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,SAAS,EACT,YAAY,EACZ,WAAW,EACX,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"domain.event.d.ts","sourceRoot":"","sources":["../src/domain.event.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,SAAS,EACT,YAAY,EACZ,WAAW,EACX,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,eAAO,MAAM,eAAe,eAAgC,CAAC;AAE7D,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,IAAI,GAAG,OAAO,EAAE,MAAM,GAAG,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG;IACpF,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC;CACzB,CAAC;AAGF,qBAAa,WAAW,CAAC,IAAI,GAAG,OAAO,EAAE,MAAM,GAAG,MAAM,CAAE,SAAQ,SAAS,CAAC,IAAI,CAAE,YAAW,YAAY;IACxG,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,QAAQ,EAAE,MAAM,CAAC;IAC1B,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;gBAEf,MAAM,EAAE,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC;IAUnD,KAAK,IAAI,cAAc;WAYhB,UAAU,IAAI,MAAM;CAGlC"}
|
package/dist/domain.event.js
CHANGED
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const uuid_1 = require("uuid");
|
|
6
|
-
exports.STORED_PROPERTY = Symbol('Domain event stored');
|
|
7
|
-
class DomainEvent extends events_1.BaseEvent {
|
|
1
|
+
import { BaseEvent, } from '@hg-ts/events';
|
|
2
|
+
import { v7 as uuid } from 'uuid';
|
|
3
|
+
export const STORED_PROPERTY = Symbol('Domain event stored');
|
|
4
|
+
export class DomainEvent extends BaseEvent {
|
|
8
5
|
id;
|
|
9
6
|
entityName;
|
|
10
7
|
entityId;
|
|
11
|
-
[
|
|
8
|
+
[STORED_PROPERTY];
|
|
12
9
|
constructor(params) {
|
|
13
10
|
super(params);
|
|
14
11
|
this.id = DomainEvent.generateId();
|
|
15
12
|
this.entityName = params.entityName;
|
|
16
13
|
this.entityId = params.entityId;
|
|
17
|
-
this[
|
|
14
|
+
this[STORED_PROPERTY] = params[STORED_PROPERTY] ?? false;
|
|
18
15
|
}
|
|
19
16
|
toDto() {
|
|
20
17
|
return {
|
|
@@ -28,8 +25,7 @@ class DomainEvent extends events_1.BaseEvent {
|
|
|
28
25
|
};
|
|
29
26
|
}
|
|
30
27
|
static generateId() {
|
|
31
|
-
return (
|
|
28
|
+
return uuid();
|
|
32
29
|
}
|
|
33
30
|
}
|
|
34
|
-
exports.DomainEvent = DomainEvent;
|
|
35
31
|
//# sourceMappingURL=domain.event.js.map
|
package/dist/domain.event.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.event.js","sourceRoot":"","sources":["../src/domain.event.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"domain.event.js","sourceRoot":"","sources":["../src/domain.event.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,SAAS,GAGT,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAIlC,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAe7D,MAAM,OAAO,WAA6C,SAAQ,SAAe;IAChE,EAAE,CAAS;IACX,UAAU,CAAS;IACnB,QAAQ,CAAS;IAC1B,CAAC,eAAe,CAAC,CAAU;IAElC,YAAmB,MAAuC;QACzD,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;QAEnC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC;IAC1D,CAAC;IAEM,KAAK;QACX,OAAO;YACN,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;SACrB,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,UAAU;QACvB,OAAO,IAAI,EAAE,CAAC;IACf,CAAC;CACD"}
|
package/dist/identifiable.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * from './identifiable';
|
|
2
|
-
export { BaseAggregate } from './base.aggregate';
|
|
3
|
-
export * from './base.entity';
|
|
4
|
-
export * from './domain.event';
|
|
5
|
-
export * from './aggregate-created.event';
|
|
1
|
+
export * from './identifiable.js';
|
|
2
|
+
export { BaseAggregate } from './base.aggregate.js';
|
|
3
|
+
export * from './base.entity.js';
|
|
4
|
+
export * from './domain.event.js';
|
|
5
|
+
export * from './aggregate-created.event.js';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,cAAc,kBAAkB,CAAC;AAEjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var base_aggregate_1 = require("./base.aggregate");
|
|
7
|
-
Object.defineProperty(exports, "BaseAggregate", { enumerable: true, get: function () { return base_aggregate_1.BaseAggregate; } });
|
|
8
|
-
tslib_1.__exportStar(require("./base.entity"), exports);
|
|
9
|
-
tslib_1.__exportStar(require("./domain.event"), exports);
|
|
10
|
-
tslib_1.__exportStar(require("./aggregate-created.event"), exports);
|
|
1
|
+
export * from './identifiable.js';
|
|
2
|
+
export { BaseAggregate } from './base.aggregate.js';
|
|
3
|
+
export * from './base.entity.js';
|
|
4
|
+
export * from './domain.event.js';
|
|
5
|
+
export * from './aggregate-created.event.js';
|
|
11
6
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,cAAc,kBAAkB,CAAC;AAEjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC"}
|
|
@@ -1,116 +1,113 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const example_updated_event_1 = require("./example-updated.event");
|
|
11
|
-
const example_aggregate_1 = require("./example.aggregate");
|
|
12
|
-
let AggregateTest = class AggregateTest extends tests_1.Suite {
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Describe, expect, ExpectException, Suite, Test, } from '@hg-ts/tests';
|
|
3
|
+
import { AGGREGATE_EVENTS_SYMBOL } from '../base.aggregate.js';
|
|
4
|
+
import { CreatedEventNotFoundException } from '../created-event.not-found.exception.js';
|
|
5
|
+
import { STORED_PROPERTY } from '../domain.event.js';
|
|
6
|
+
import { ExampleCreatedEvent } from './example-created.event.js';
|
|
7
|
+
import { ExampleUpdatedEvent } from './example-updated.event.js';
|
|
8
|
+
import { ExampleAggregate } from './example.aggregate.js';
|
|
9
|
+
let AggregateTest = class AggregateTest extends Suite {
|
|
13
10
|
simpleCreate() {
|
|
14
|
-
const aggregate =
|
|
15
|
-
const events = aggregate[
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
11
|
+
const aggregate = ExampleAggregate.create('original name');
|
|
12
|
+
const events = aggregate[AGGREGATE_EVENTS_SYMBOL];
|
|
13
|
+
expect(aggregate).toBeInstanceOf(ExampleAggregate);
|
|
14
|
+
expect(events).toBeInstanceOf(Array);
|
|
15
|
+
expect(events).toHaveLength(1);
|
|
16
|
+
expect(events[0]).toBeInstanceOf(ExampleCreatedEvent);
|
|
17
|
+
expect(events[0][STORED_PROPERTY]).toBe(false);
|
|
21
18
|
}
|
|
22
19
|
equalsSuccess() {
|
|
23
|
-
const baseAggregate =
|
|
24
|
-
const cloneAggregate1 = new
|
|
25
|
-
const cloneAggregate2 = new
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
const baseAggregate = ExampleAggregate.create('original name');
|
|
21
|
+
const cloneAggregate1 = new ExampleAggregate(baseAggregate.toDto());
|
|
22
|
+
const cloneAggregate2 = new ExampleAggregate(baseAggregate.toDto());
|
|
23
|
+
expect(baseAggregate.equals(baseAggregate)).toBeTruthy();
|
|
24
|
+
expect(cloneAggregate1.equals(cloneAggregate2)).toBeTruthy();
|
|
28
25
|
}
|
|
29
26
|
equalsFails() {
|
|
30
|
-
const aggregate =
|
|
31
|
-
const cloneAggregate =
|
|
32
|
-
|
|
27
|
+
const aggregate = ExampleAggregate.create('original name');
|
|
28
|
+
const cloneAggregate = ExampleAggregate.create('original name');
|
|
29
|
+
expect(aggregate.equals(cloneAggregate)).toBeFalsy();
|
|
33
30
|
}
|
|
34
31
|
updateName() {
|
|
35
|
-
const aggregate =
|
|
32
|
+
const aggregate = ExampleAggregate.create('original name');
|
|
36
33
|
aggregate.update('new name');
|
|
37
|
-
const events = aggregate[
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
34
|
+
const events = aggregate[AGGREGATE_EVENTS_SYMBOL];
|
|
35
|
+
expect(events).toBeInstanceOf(Array);
|
|
36
|
+
expect(events).toHaveLength(2);
|
|
37
|
+
expect(events[0]).toBeInstanceOf(ExampleCreatedEvent);
|
|
38
|
+
expect(events[1]).toBeInstanceOf(ExampleUpdatedEvent);
|
|
39
|
+
expect(aggregate.toDto().name).toEqual('new name');
|
|
43
40
|
}
|
|
44
41
|
restoreCreated() {
|
|
45
|
-
const aggregate =
|
|
46
|
-
const originalEvents = aggregate[
|
|
42
|
+
const aggregate = ExampleAggregate.create('original name');
|
|
43
|
+
const originalEvents = aggregate[AGGREGATE_EVENTS_SYMBOL];
|
|
47
44
|
originalEvents.forEach(event => {
|
|
48
|
-
event[
|
|
45
|
+
event[STORED_PROPERTY] = true;
|
|
49
46
|
});
|
|
50
|
-
const restored =
|
|
51
|
-
|
|
47
|
+
const restored = ExampleAggregate.restoreFromEvents(ExampleAggregate, ExampleCreatedEvent, originalEvents);
|
|
48
|
+
expect(restored.toDto()).toMatchObject(aggregate.toDto());
|
|
52
49
|
}
|
|
53
50
|
restoreUpdated() {
|
|
54
|
-
const aggregate =
|
|
51
|
+
const aggregate = ExampleAggregate.create('original name');
|
|
55
52
|
aggregate.update('new name');
|
|
56
|
-
const originalEvents = aggregate[
|
|
53
|
+
const originalEvents = aggregate[AGGREGATE_EVENTS_SYMBOL];
|
|
57
54
|
originalEvents.forEach(event => {
|
|
58
|
-
event[
|
|
55
|
+
event[STORED_PROPERTY] = true;
|
|
59
56
|
});
|
|
60
|
-
const restored =
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
57
|
+
const restored = ExampleAggregate.restoreFromEvents(ExampleAggregate, ExampleCreatedEvent, originalEvents);
|
|
58
|
+
expect(restored.getEvents()).toHaveLength(originalEvents.length);
|
|
59
|
+
expect(restored.getEvents()[0]?.toDto().name).toBe(ExampleCreatedEvent.name);
|
|
60
|
+
expect(restored.toDto()).toMatchObject(aggregate.toDto());
|
|
64
61
|
}
|
|
65
62
|
noCreatedEvent() {
|
|
66
|
-
|
|
63
|
+
ExampleAggregate.restoreFromEvents(ExampleAggregate, ExampleCreatedEvent, []);
|
|
67
64
|
}
|
|
68
65
|
};
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
(
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
tslib_1.__metadata("design:returntype", void 0)
|
|
66
|
+
__decorate([
|
|
67
|
+
Test(),
|
|
68
|
+
__metadata("design:type", Function),
|
|
69
|
+
__metadata("design:paramtypes", []),
|
|
70
|
+
__metadata("design:returntype", void 0)
|
|
75
71
|
], AggregateTest.prototype, "simpleCreate", null);
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
72
|
+
__decorate([
|
|
73
|
+
Test(),
|
|
74
|
+
__metadata("design:type", Function),
|
|
75
|
+
__metadata("design:paramtypes", []),
|
|
76
|
+
__metadata("design:returntype", void 0)
|
|
81
77
|
], AggregateTest.prototype, "equalsSuccess", null);
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
78
|
+
__decorate([
|
|
79
|
+
Test(),
|
|
80
|
+
__metadata("design:type", Function),
|
|
81
|
+
__metadata("design:paramtypes", []),
|
|
82
|
+
__metadata("design:returntype", void 0)
|
|
87
83
|
], AggregateTest.prototype, "equalsFails", null);
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
84
|
+
__decorate([
|
|
85
|
+
Test(),
|
|
86
|
+
__metadata("design:type", Function),
|
|
87
|
+
__metadata("design:paramtypes", []),
|
|
88
|
+
__metadata("design:returntype", void 0)
|
|
93
89
|
], AggregateTest.prototype, "updateName", null);
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
90
|
+
__decorate([
|
|
91
|
+
Test(),
|
|
92
|
+
__metadata("design:type", Function),
|
|
93
|
+
__metadata("design:paramtypes", []),
|
|
94
|
+
__metadata("design:returntype", void 0)
|
|
99
95
|
], AggregateTest.prototype, "restoreCreated", null);
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
96
|
+
__decorate([
|
|
97
|
+
Test(),
|
|
98
|
+
__metadata("design:type", Function),
|
|
99
|
+
__metadata("design:paramtypes", []),
|
|
100
|
+
__metadata("design:returntype", void 0)
|
|
105
101
|
], AggregateTest.prototype, "restoreUpdated", null);
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
102
|
+
__decorate([
|
|
103
|
+
Test(),
|
|
104
|
+
ExpectException(CreatedEventNotFoundException),
|
|
105
|
+
__metadata("design:type", Function),
|
|
106
|
+
__metadata("design:paramtypes", []),
|
|
107
|
+
__metadata("design:returntype", void 0)
|
|
112
108
|
], AggregateTest.prototype, "noCreatedEvent", null);
|
|
113
|
-
|
|
114
|
-
|
|
109
|
+
AggregateTest = __decorate([
|
|
110
|
+
Describe()
|
|
115
111
|
], AggregateTest);
|
|
112
|
+
export { AggregateTest };
|
|
116
113
|
//# sourceMappingURL=aggregate.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.test.js","sourceRoot":"","sources":["../../src/tests/aggregate.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aggregate.test.js","sourceRoot":"","sources":["../../src/tests/aggregate.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example-created.event.d.ts","sourceRoot":"","sources":["../../src/tests/example-created.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"example-created.event.d.ts","sourceRoot":"","sources":["../../src/tests/example-created.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,qBAAa,mBAAoB,SAAQ,qBAAqB,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;gBAC5D,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAO3C"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.ExampleCreatedEvent = void 0;
|
|
4
|
-
const aggregate_created_event_1 = require("../aggregate-created.event");
|
|
5
|
-
class ExampleCreatedEvent extends aggregate_created_event_1.AggregateCreatedEvent {
|
|
1
|
+
import { AggregateCreatedEvent } from '../aggregate-created.event.js';
|
|
2
|
+
export class ExampleCreatedEvent extends AggregateCreatedEvent {
|
|
6
3
|
constructor(id, name) {
|
|
7
4
|
super({
|
|
8
5
|
entityId: id,
|
|
@@ -11,5 +8,4 @@ class ExampleCreatedEvent extends aggregate_created_event_1.AggregateCreatedEven
|
|
|
11
8
|
});
|
|
12
9
|
}
|
|
13
10
|
}
|
|
14
|
-
exports.ExampleCreatedEvent = ExampleCreatedEvent;
|
|
15
11
|
//# sourceMappingURL=example-created.event.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example-created.event.js","sourceRoot":"","sources":["../../src/tests/example-created.event.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"example-created.event.js","sourceRoot":"","sources":["../../src/tests/example-created.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,MAAM,OAAO,mBAAoB,SAAQ,qBAAuC;IAC/E,YAAmB,EAAU,EAAE,IAAY;QAC1C,KAAK,CAAC;YACL,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,EAAE,IAAI,EAAE;SACd,CAAC,CAAC;IACJ,CAAC;CACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example-updated.event.d.ts","sourceRoot":"","sources":["../../src/tests/example-updated.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"example-updated.event.d.ts","sourceRoot":"","sources":["../../src/tests/example-updated.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,qBAAa,mBAAoB,SAAQ,WAAW,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAC,CAAC;gBACjD,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAO3C"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.ExampleUpdatedEvent = void 0;
|
|
4
|
-
const domain_event_1 = require("../domain.event");
|
|
5
|
-
class ExampleUpdatedEvent extends domain_event_1.DomainEvent {
|
|
1
|
+
import { DomainEvent } from '../domain.event.js';
|
|
2
|
+
export class ExampleUpdatedEvent extends DomainEvent {
|
|
6
3
|
constructor(id, name) {
|
|
7
4
|
super({
|
|
8
5
|
entityId: id,
|
|
@@ -11,5 +8,4 @@ class ExampleUpdatedEvent extends domain_event_1.DomainEvent {
|
|
|
11
8
|
});
|
|
12
9
|
}
|
|
13
10
|
}
|
|
14
|
-
exports.ExampleUpdatedEvent = ExampleUpdatedEvent;
|
|
15
11
|
//# sourceMappingURL=example-updated.event.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example-updated.event.js","sourceRoot":"","sources":["../../src/tests/example-updated.event.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"example-updated.event.js","sourceRoot":"","sources":["../../src/tests/example-updated.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,OAAO,mBAAoB,SAAQ,WAA4B;IACpE,YAAmB,EAAU,EAAE,IAAY;QAC1C,KAAK,CAAC;YACL,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,EAAE,IAAI,EAAE;SACd,CAAC,CAAC;IACJ,CAAC;CACD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseAggregate } from '../base.aggregate';
|
|
2
|
-
import { ExampleUpdatedEvent } from './example-updated.event';
|
|
1
|
+
import { BaseAggregate } from '../base.aggregate.js';
|
|
2
|
+
import { ExampleUpdatedEvent } from './example-updated.event.js';
|
|
3
3
|
type ExampleAggregateDto = {
|
|
4
4
|
id: string;
|
|
5
5
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example.aggregate.d.ts","sourceRoot":"","sources":["../../src/tests/example.aggregate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"example.aggregate.d.ts","sourceRoot":"","sources":["../../src/tests/example.aggregate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,KAAK,mBAAmB,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,aAAa;IAClD,OAAO,CAAC,IAAI,CAAS;gBAEF,GAAG,EAAE,mBAAmB;IAMpC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI7B,KAAK,IAAI,mBAAmB;WAOrB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IASpD,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;CAGrD"}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const example_created_event_1 = require("./example-created.event");
|
|
8
|
-
const example_updated_event_1 = require("./example-updated.event");
|
|
9
|
-
class ExampleAggregate extends base_aggregate_1.BaseAggregate {
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Listen } from '@hg-ts/events';
|
|
3
|
+
import { BaseAggregate } from '../base.aggregate.js';
|
|
4
|
+
import { ExampleCreatedEvent } from './example-created.event.js';
|
|
5
|
+
import { ExampleUpdatedEvent } from './example-updated.event.js';
|
|
6
|
+
export class ExampleAggregate extends BaseAggregate {
|
|
10
7
|
name;
|
|
11
8
|
constructor(dto) {
|
|
12
9
|
super(dto);
|
|
13
10
|
this.name = dto.name;
|
|
14
11
|
}
|
|
15
12
|
update(newName) {
|
|
16
|
-
this.produceEvent(new
|
|
13
|
+
this.produceEvent(new ExampleUpdatedEvent(this.id, newName));
|
|
17
14
|
}
|
|
18
15
|
toDto() {
|
|
19
16
|
return {
|
|
@@ -23,18 +20,17 @@ class ExampleAggregate extends base_aggregate_1.BaseAggregate {
|
|
|
23
20
|
}
|
|
24
21
|
static create(name) {
|
|
25
22
|
const aggregate = new ExampleAggregate({ id: crypto.randomUUID(), name });
|
|
26
|
-
aggregate.produceEvent(new
|
|
23
|
+
aggregate.produceEvent(new ExampleCreatedEvent(aggregate.id, name));
|
|
27
24
|
return aggregate;
|
|
28
25
|
}
|
|
29
26
|
onUpdated(event) {
|
|
30
27
|
this.name = event.body.name;
|
|
31
28
|
}
|
|
32
29
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
tslib_1.__metadata("design:returntype", void 0)
|
|
30
|
+
__decorate([
|
|
31
|
+
Listen(ExampleUpdatedEvent),
|
|
32
|
+
__metadata("design:type", Function),
|
|
33
|
+
__metadata("design:paramtypes", [ExampleUpdatedEvent]),
|
|
34
|
+
__metadata("design:returntype", void 0)
|
|
39
35
|
], ExampleAggregate.prototype, "onUpdated", null);
|
|
40
36
|
//# sourceMappingURL=example.aggregate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example.aggregate.js","sourceRoot":"","sources":["../../src/tests/example.aggregate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"example.aggregate.js","sourceRoot":"","sources":["../../src/tests/example.aggregate.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAOjE,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IAC1C,IAAI,CAAS;IAErB,YAAmB,GAAwB;QAC1C,KAAK,CAAC,GAAG,CAAC,CAAC;QAEX,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,CAAC;IAEM,MAAM,CAAC,OAAe;QAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEM,KAAK;QACX,OAAO;YACN,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;SACf,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,IAAY;QAChC,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1E,SAAS,CAAC,YAAY,CAAC,IAAI,mBAAmB,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;QAEpE,OAAO,SAAS,CAAC;IAClB,CAAC;IAGS,SAAS,CAAC,KAA0B;QAC7C,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B,CAAC;CACD;AAHU;IADT,MAAM,CAAC,mBAAmB,CAAC;;qCACD,mBAAmB;;iDAE7C"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hg-ts/domain",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"exports": {
|
|
6
7
|
".": "./dist/index.js"
|
|
7
8
|
},
|
|
@@ -16,12 +17,12 @@
|
|
|
16
17
|
"test:dev": "HG_ENV=test vitest watch"
|
|
17
18
|
},
|
|
18
19
|
"devDependencies": {
|
|
19
|
-
"@hg-ts-config/typescript": "0.
|
|
20
|
-
"@hg-ts/events": "0.
|
|
21
|
-
"@hg-ts/exception": "0.
|
|
22
|
-
"@hg-ts/linter": "0.
|
|
23
|
-
"@hg-ts/tests": "0.
|
|
24
|
-
"@hg-ts/types": "0.
|
|
20
|
+
"@hg-ts-config/typescript": "0.4.0",
|
|
21
|
+
"@hg-ts/events": "0.4.0",
|
|
22
|
+
"@hg-ts/exception": "0.4.0",
|
|
23
|
+
"@hg-ts/linter": "0.4.0",
|
|
24
|
+
"@hg-ts/tests": "0.4.0",
|
|
25
|
+
"@hg-ts/types": "0.4.0",
|
|
25
26
|
"@types/node": "22.19.1",
|
|
26
27
|
"@types/uuid": "10.0.0",
|
|
27
28
|
"@vitest/coverage-v8": "4.0.14",
|
|
@@ -34,8 +35,8 @@
|
|
|
34
35
|
"vitest": "4.0.14"
|
|
35
36
|
},
|
|
36
37
|
"peerDependencies": {
|
|
37
|
-
"@hg-ts/events": "0.
|
|
38
|
-
"@hg-ts/exception": "0.
|
|
38
|
+
"@hg-ts/events": "0.4.0",
|
|
39
|
+
"@hg-ts/exception": "0.4.0",
|
|
39
40
|
"reflect-metadata": "*",
|
|
40
41
|
"tslib": "*",
|
|
41
42
|
"vitest": "*"
|
package/tsconfig.json
CHANGED