@event-nest/core 3.1.0 → 3.2.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/README.md +7 -7
- package/package.json +3 -2
- package/src/lib/aggregate-root/aggregate-root-name.js +2 -2
- package/src/lib/aggregate-root/aggregate-root-name.js.map +1 -1
- package/src/lib/aggregate-root/aggregate-root.d.ts +10 -10
- package/src/lib/aggregate-root/aggregate-root.js +10 -11
- package/src/lib/aggregate-root/aggregate-root.js.map +1 -1
- package/src/lib/aggregate-root/apply-event.decorator.js +1 -2
- package/src/lib/aggregate-root/apply-event.decorator.js.map +1 -1
- package/src/lib/aggregate-root/reflection.js +1 -2
- package/src/lib/aggregate-root/reflection.js.map +1 -1
- package/src/lib/domain-event-registrations.js +4 -5
- package/src/lib/domain-event-registrations.js.map +1 -1
- package/src/lib/domain-event-subscription.js +4 -4
- package/src/lib/domain-event-subscription.js.map +1 -1
- package/src/lib/domain-event.js +1 -2
- package/src/lib/domain-event.js.map +1 -1
- package/src/lib/utils/type-utils.js +2 -3
- package/src/lib/utils/type-utils.js.map +1 -1
package/README.md
CHANGED
|
@@ -58,7 +58,7 @@ import { Module } from "@nestjs/common";
|
|
|
58
58
|
|
|
59
59
|
@Module({
|
|
60
60
|
imports: [
|
|
61
|
-
EventNestMongoDbModule.
|
|
61
|
+
EventNestMongoDbModule.forRoot({
|
|
62
62
|
connectionUri: "mongodb://localhost:27017/example",
|
|
63
63
|
aggregatesCollection: "aggregates-collection",
|
|
64
64
|
eventsCollection: "events-collection"
|
|
@@ -83,7 +83,7 @@ import { Module } from "@nestjs/common";
|
|
|
83
83
|
|
|
84
84
|
@Module({
|
|
85
85
|
imports: [
|
|
86
|
-
EventNestPostgreSQLModule.
|
|
86
|
+
EventNestPostgreSQLModule.forRoot({
|
|
87
87
|
aggregatesTableName: "aggregates",
|
|
88
88
|
connectionUri: "postgresql://postgres:password@localhost:5432/event_nest",
|
|
89
89
|
eventsTableName: "events",
|
|
@@ -287,10 +287,10 @@ import { PublishedDomainEvent, DomainEventSubscription, OnDomainEvent } from "@e
|
|
|
287
287
|
@DomainEventSubscription(UserCreatedEvent, UserUpdatedEvent)
|
|
288
288
|
export class UserEventSubscription implements OnDomainEvent<UserCreatedEvent | UserUpdatedEvent> {
|
|
289
289
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
290
|
+
onDomainEvent(event: PublishedDomainEvent<UserCreatedEvent | UserUpdatedEvent>): Promise<unknown> {
|
|
291
|
+
//Here you can create/update your read model based on the event and your custom logic.
|
|
292
|
+
return Promise.resolve(undefined);
|
|
293
|
+
}
|
|
294
294
|
|
|
295
295
|
}
|
|
296
296
|
```
|
|
@@ -304,7 +304,7 @@ and your logic doesn't depend on the order of the events, you can change this se
|
|
|
304
304
|
```typescript
|
|
305
305
|
@Module({
|
|
306
306
|
imports: [
|
|
307
|
-
EventNestMongoDbModule.
|
|
307
|
+
EventNestMongoDbModule.forRoot({
|
|
308
308
|
connectionUri: "mongodb://localhost:27017/example",
|
|
309
309
|
aggregatesCollection: "aggregates-collection",
|
|
310
310
|
eventsCollection: "events-collection",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@event-nest/core",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Nick Tsitlakidis",
|
|
6
6
|
"description": "Event sourcing module for NestJS. It provides a set of decorators and classes to build an application based on event sourcing.",
|
|
@@ -31,5 +31,6 @@
|
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"class-transformer": "^0.5.1"
|
|
33
33
|
},
|
|
34
|
-
"main": "./src/index.js"
|
|
34
|
+
"main": "./src/index.js",
|
|
35
|
+
"types": "./src/index.d.ts"
|
|
35
36
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.AggregateRootName = void 0;
|
|
4
|
+
exports.getAggregateRootName = getAggregateRootName;
|
|
4
5
|
require("reflect-metadata");
|
|
5
6
|
const metadata_keys_1 = require("../metadata-keys");
|
|
6
7
|
/**
|
|
@@ -22,5 +23,4 @@ exports.AggregateRootName = AggregateRootName;
|
|
|
22
23
|
function getAggregateRootName(targetClass) {
|
|
23
24
|
return Reflect.getMetadata(metadata_keys_1.AGGREGATE_ROOT_NAME_KEY, targetClass)?.aggregateRootName;
|
|
24
25
|
}
|
|
25
|
-
exports.getAggregateRootName = getAggregateRootName;
|
|
26
26
|
//# sourceMappingURL=aggregate-root-name.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-root-name.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/aggregate-root/aggregate-root-name.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"aggregate-root-name.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/aggregate-root/aggregate-root-name.ts"],"names":[],"mappings":";;;AAoBA,oDAEC;AAtBD,4BAA0B;AAE1B,oDAA2D;AAE3D;;;;;;;;GAQG;AACI,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAkB,EAAE;IAC9D,OAAO,CAAC,MAAc,EAAE,EAAE;QACtB,OAAO,CAAC,cAAc,CAAC,uCAAuB,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IACzF,CAAC,CAAC;AACN,CAAC,CAAC;AAJW,QAAA,iBAAiB,qBAI5B;AAEF,wDAAwD;AACxD,SAAgB,oBAAoB,CAAC,WAAqB;IACtD,OAAO,OAAO,CAAC,WAAW,CAAC,uCAAuB,EAAE,WAAW,CAAC,EAAE,iBAAiB,CAAC;AACxF,CAAC"}
|
|
@@ -13,14 +13,6 @@ export declare abstract class AggregateRoot {
|
|
|
13
13
|
get appendedEvents(): Array<AggregateRootEvent<object>>;
|
|
14
14
|
get id(): string;
|
|
15
15
|
get logger(): Logger;
|
|
16
|
-
/**
|
|
17
|
-
* Publishes all the provided events using a connected event publisher. To connect a publisher, use the
|
|
18
|
-
* {@link EventStore}. Normally this should never be called by application logic. Instead, after you append the
|
|
19
|
-
* events, you should call the commit method which will end up calling this method.
|
|
20
|
-
*
|
|
21
|
-
* If a publisher is not connected, the method will return a rejected promise.
|
|
22
|
-
* @param events The events to be published
|
|
23
|
-
*/
|
|
24
16
|
/**
|
|
25
17
|
* Defines the current version of the aggregate root. The version is increased
|
|
26
18
|
* each time an event is persisted.
|
|
@@ -40,12 +32,20 @@ export declare abstract class AggregateRoot {
|
|
|
40
32
|
* Call this once all the events you want, have been appended.
|
|
41
33
|
*/
|
|
42
34
|
commit(): Promise<AggregateRoot>;
|
|
35
|
+
/**
|
|
36
|
+
* Publishes all the provided events using a connected event publisher. To connect a publisher, use the
|
|
37
|
+
* {@link EventStore}. Normally this should never be called by application logic. Instead, after you append the
|
|
38
|
+
* events, you should call the commit method which will end up calling this method.
|
|
39
|
+
*
|
|
40
|
+
* If a publisher is not connected, the method will return a rejected promise.
|
|
41
|
+
* @param events The events to be published
|
|
42
|
+
*/
|
|
43
43
|
publish(events: Array<AggregateRootEvent<object>>): Promise<Array<StoredEvent>>;
|
|
44
44
|
/**
|
|
45
45
|
* Used when a set of events have been retrieved from the database. These events can be passed to the method and the
|
|
46
|
-
* method will trigger all the matching {@link
|
|
46
|
+
* method will trigger all the matching {@link ApplyEvent} functions of the entity to populate the object based on
|
|
47
47
|
* application logic.
|
|
48
|
-
* @param events The events that will be sent to
|
|
48
|
+
* @param events The events that will be sent to {@link ApplyEvent} functions
|
|
49
49
|
*/
|
|
50
50
|
reconstitute(events: Array<StoredEvent>): void;
|
|
51
51
|
resolveVersion(events: Array<StoredEvent>): void;
|
|
@@ -26,14 +26,6 @@ class AggregateRoot {
|
|
|
26
26
|
get logger() {
|
|
27
27
|
return this._logger;
|
|
28
28
|
}
|
|
29
|
-
/**
|
|
30
|
-
* Publishes all the provided events using a connected event publisher. To connect a publisher, use the
|
|
31
|
-
* {@link EventStore}. Normally this should never be called by application logic. Instead, after you append the
|
|
32
|
-
* events, you should call the commit method which will end up calling this method.
|
|
33
|
-
*
|
|
34
|
-
* If a publisher is not connected, the method will return a rejected promise.
|
|
35
|
-
* @param events The events to be published
|
|
36
|
-
*/
|
|
37
29
|
/**
|
|
38
30
|
* Defines the current version of the aggregate root. The version is increased
|
|
39
31
|
* each time an event is persisted.
|
|
@@ -73,16 +65,23 @@ class AggregateRoot {
|
|
|
73
65
|
}
|
|
74
66
|
return this;
|
|
75
67
|
}
|
|
76
|
-
|
|
68
|
+
/**
|
|
69
|
+
* Publishes all the provided events using a connected event publisher. To connect a publisher, use the
|
|
70
|
+
* {@link EventStore}. Normally this should never be called by application logic. Instead, after you append the
|
|
71
|
+
* events, you should call the commit method which will end up calling this method.
|
|
72
|
+
*
|
|
73
|
+
* If a publisher is not connected, the method will return a rejected promise.
|
|
74
|
+
* @param events The events to be published
|
|
75
|
+
*/
|
|
77
76
|
publish(events) {
|
|
78
77
|
this.logger.error("There is no event publisher assigned");
|
|
79
78
|
return Promise.reject("There is no event publisher assigned");
|
|
80
79
|
}
|
|
81
80
|
/**
|
|
82
81
|
* Used when a set of events have been retrieved from the database. These events can be passed to the method and the
|
|
83
|
-
* method will trigger all the matching {@link
|
|
82
|
+
* method will trigger all the matching {@link ApplyEvent} functions of the entity to populate the object based on
|
|
84
83
|
* application logic.
|
|
85
|
-
* @param events The events that will be sent to
|
|
84
|
+
* @param events The events that will be sent to {@link ApplyEvent} functions
|
|
86
85
|
*/
|
|
87
86
|
reconstitute(events) {
|
|
88
87
|
if (events.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-root.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/aggregate-root/aggregate-root.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAExC,8EAA4E;AAC5E,mFAA8E;AAC9E,6FAAwF;AAExF,oDAA4C;AAE5C,6CAAuD;AAOvD,MAAsB,aAAa;IAK/B,YACqB,GAAW,EAC5B,MAAe;QADE,QAAG,GAAH,GAAG,CAAQ;QAG5B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,IAAA,kBAAK,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,eAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3E,CAAC;IAED;;OAEG;IACH,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"aggregate-root.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/aggregate-root/aggregate-root.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ApplyEvent =
|
|
3
|
+
exports.ApplyEvent = ApplyEvent;
|
|
4
4
|
require("reflect-metadata");
|
|
5
5
|
const metadata_keys_1 = require("../metadata-keys");
|
|
6
6
|
/**
|
|
@@ -16,5 +16,4 @@ function ApplyEvent(eventClass) {
|
|
|
16
16
|
Reflect.defineMetadata(metadata_keys_1.APPLY_EVENT_DECORATOR_KEY + "-" + propertyKey.toString(), { eventClass: eventClass, key: propertyKey }, propertyParent);
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
|
-
exports.ApplyEvent = ApplyEvent;
|
|
20
19
|
//# sourceMappingURL=apply-event.decorator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-event.decorator.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/aggregate-root/apply-event.decorator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"apply-event.decorator.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/aggregate-root/apply-event.decorator.ts"],"names":[],"mappings":";;AAaA,gCAQC;AArBD,4BAA0B;AAG1B,oDAA6D;AAE7D;;;;;;;GAOG;AACH,SAAgB,UAAU,CAAC,UAA0B;IACjD,OAAO,CAAC,cAAc,EAAE,WAAW,EAAE,EAAE;QACnC,OAAO,CAAC,cAAc,CAClB,yCAAyB,GAAG,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,EACxD,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,EAC5C,cAAc,CACjB,CAAC;IACN,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getDecoratedPropertyKey =
|
|
3
|
+
exports.getDecoratedPropertyKey = getDecoratedPropertyKey;
|
|
4
4
|
require("reflect-metadata");
|
|
5
5
|
function getDecoratedPropertyKey(entity, eventClass) {
|
|
6
6
|
const metadataKeys = Reflect.getMetadataKeys(entity);
|
|
@@ -16,5 +16,4 @@ function getDecoratedPropertyKey(entity, eventClass) {
|
|
|
16
16
|
}
|
|
17
17
|
return Reflect.getMetadata(matchingKey, entity).key;
|
|
18
18
|
}
|
|
19
|
-
exports.getDecoratedPropertyKey = getDecoratedPropertyKey;
|
|
20
19
|
//# sourceMappingURL=reflection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reflection.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/aggregate-root/reflection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reflection.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/aggregate-root/reflection.ts"],"names":[],"mappings":";;AAKA,0DAgBC;AArBD,4BAA0B;AAK1B,SAAgB,uBAAuB,CAAC,MAAqB,EAAE,UAA0B;IACrF,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;QAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC,UAAU,KAAK,UAAU,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC;AACxD,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getEventName = getEventName;
|
|
4
|
+
exports.getEventClass = getEventClass;
|
|
5
|
+
exports.isRegistered = isRegistered;
|
|
6
|
+
exports.registerEvent = registerEvent;
|
|
4
7
|
const event_name_conflict_exception_1 = require("./exceptions/event-name-conflict-exception");
|
|
5
8
|
const type_utils_1 = require("./utils/type-utils");
|
|
6
9
|
const registrations = [];
|
|
@@ -12,7 +15,6 @@ function getEventName(target) {
|
|
|
12
15
|
const found = registrations.find((registration) => registration.eventClass === target.constructor);
|
|
13
16
|
return found ? found.eventName : undefined;
|
|
14
17
|
}
|
|
15
|
-
exports.getEventName = getEventName;
|
|
16
18
|
/**
|
|
17
19
|
* Returns the class that matches the provided name. Or undefined.
|
|
18
20
|
* @param name The event name to be checked.
|
|
@@ -21,16 +23,13 @@ function getEventClass(name) {
|
|
|
21
23
|
const found = registrations.find((registration) => registration.eventName === name);
|
|
22
24
|
return (0, type_utils_1.isNil)(found) ? undefined : found.eventClass;
|
|
23
25
|
}
|
|
24
|
-
exports.getEventClass = getEventClass;
|
|
25
26
|
function isRegistered(event) {
|
|
26
27
|
return !(0, type_utils_1.isNil)(getEventName(event));
|
|
27
28
|
}
|
|
28
|
-
exports.isRegistered = isRegistered;
|
|
29
29
|
function registerEvent(newRegistration) {
|
|
30
30
|
if (registrations.some((registration) => registration.eventName === newRegistration.eventName)) {
|
|
31
31
|
throw new event_name_conflict_exception_1.EventNameConflictException(newRegistration.eventName);
|
|
32
32
|
}
|
|
33
33
|
registrations.push(newRegistration);
|
|
34
34
|
}
|
|
35
|
-
exports.registerEvent = registerEvent;
|
|
36
35
|
//# sourceMappingURL=domain-event-registrations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-event-registrations.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/domain-event-registrations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"domain-event-registrations.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/domain-event-registrations.ts"],"names":[],"mappings":";;AAgBA,oCAGC;AAMD,sCAGC;AAED,oCAEC;AAED,sCAMC;AAtCD,8FAAwF;AACxF,mDAA2C;AAO3C,MAAM,aAAa,GAAwB,EAAE,CAAC;AAE9C;;;GAGG;AACH,SAAgB,YAAY,CAAC,MAAc;IACvC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,KAAK,MAAM,CAAC,WAAW,CAAC,CAAC;IACnG,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAI,IAAY;IACzC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;IACpF,OAAO,IAAA,kBAAK,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,KAAK,CAAC,UAAuB,CAAC;AACrE,CAAC;AAED,SAAgB,YAAY,CAAC,KAAa;IACtC,OAAO,CAAC,IAAA,kBAAK,EAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAgB,aAAa,CAAC,eAA6B;IACvD,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,KAAK,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7F,MAAM,IAAI,0DAA0B,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC;IAED,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.DomainEventSubscription = void 0;
|
|
4
|
+
exports.isDomainEventSubscription = isDomainEventSubscription;
|
|
5
|
+
exports.getEventsFromDomainEventSubscription = getEventsFromDomainEventSubscription;
|
|
6
|
+
exports.getEventId = getEventId;
|
|
4
7
|
const crypto_1 = require("crypto");
|
|
5
8
|
const metadata_keys_1 = require("./metadata-keys");
|
|
6
9
|
const type_utils_1 = require("./utils/type-utils");
|
|
@@ -19,15 +22,12 @@ function isDomainEventSubscription(targetInstance) {
|
|
|
19
22
|
const hasMetadata = Reflect.hasOwnMetadata(metadata_keys_1.DOMAIN_EVENT_SUBSCRIPTION_KEY, targetInstance.constructor);
|
|
20
23
|
return hasMetadata && typeof targetInstance.onDomainEvent === "function";
|
|
21
24
|
}
|
|
22
|
-
exports.isDomainEventSubscription = isDomainEventSubscription;
|
|
23
25
|
function getEventsFromDomainEventSubscription(subscriptionInstance) {
|
|
24
26
|
const metadata = Reflect.getMetadata(metadata_keys_1.DOMAIN_EVENT_SUBSCRIPTION_KEY, subscriptionInstance.constructor);
|
|
25
27
|
return (0, type_utils_1.isNil)(metadata) ? [] : metadata.events;
|
|
26
28
|
}
|
|
27
|
-
exports.getEventsFromDomainEventSubscription = getEventsFromDomainEventSubscription;
|
|
28
29
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
29
30
|
function getEventId(eventConstructor) {
|
|
30
31
|
return Reflect.getMetadata(metadata_keys_1.DOMAIN_EVENT_KEY, eventConstructor)?.eventSubscriptionId;
|
|
31
32
|
}
|
|
32
|
-
exports.getEventId = getEventId;
|
|
33
33
|
//# sourceMappingURL=domain-event-subscription.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-event-subscription.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/domain-event-subscription.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"domain-event-subscription.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/domain-event-subscription.ts"],"names":[],"mappings":";;;AAuBA,8DAGC;AAED,oFAGC;AAGD,gCAEC;AApCD,mCAAoC;AAGpC,mDAAkF;AAElF,mDAA2C;AAEpC,MAAM,uBAAuB,GAAG,CAAC,GAAG,YAA8B,EAAkB,EAAE;IACzF,OAAO,CAAC,MAAc,EAAE,EAAE;QACtB,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,gCAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;gBACnD,OAAO,CAAC,cAAc,CAClB,gCAAgB,EAChB,EAAE,mBAAmB,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,IAAA,mBAAU,GAAE,EAAE,EAAE,EACxD,KAAK,CACR,CAAC;YACN,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,cAAc,CAAC,6CAA6B,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5F,CAAC,CAAC;AACN,CAAC,CAAC;AAdW,QAAA,uBAAuB,2BAclC;AAEF,SAAgB,yBAAyB,CAAC,cAAsB;IAC5D,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,6CAA6B,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACtG,OAAO,WAAW,IAAI,OAAQ,cAAyC,CAAC,aAAa,KAAK,UAAU,CAAC;AACzG,CAAC;AAED,SAAgB,oCAAoC,CAAC,oBAA4C;IAC7F,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,6CAA6B,EAAE,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACtG,OAAO,IAAA,kBAAK,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;AAClD,CAAC;AAED,wDAAwD;AACxD,SAAgB,UAAU,CAAC,gBAA0B;IACjD,OAAO,OAAO,CAAC,WAAW,CAAC,gCAAgB,EAAE,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;AACxF,CAAC"}
|
package/src/lib/domain-event.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DomainEvent =
|
|
3
|
+
exports.DomainEvent = DomainEvent;
|
|
4
4
|
const domain_event_registrations_1 = require("./domain-event-registrations");
|
|
5
5
|
/**
|
|
6
6
|
* A decorator to mark a class as a domain event. Objects of this type of classes are persisted in the database and
|
|
@@ -21,5 +21,4 @@ function DomainEvent(eventName) {
|
|
|
21
21
|
});
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
exports.DomainEvent = DomainEvent;
|
|
25
24
|
//# sourceMappingURL=domain-event.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-event.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/domain-event.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"domain-event.js","sourceRoot":"","sources":["../../../../../libs/core/src/lib/domain-event.ts"],"names":[],"mappings":";;AAaA,kCAOC;AApBD,6EAA6D;AAE7D;;;;;;;;;;GAUG;AACH,SAAgB,WAAW,CAAC,SAAiB;IACzC,OAAO,CAAC,MAAM,EAAE,EAAE;QACd,IAAA,0CAAa,EAAC;YACV,UAAU,EAAE,MAAM;YAClB,SAAS,EAAE,SAAS;SACvB,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isNil = isNil;
|
|
4
|
+
exports.hasAllValues = hasAllValues;
|
|
4
5
|
function isNil(toCheck) {
|
|
5
6
|
return toCheck === null || toCheck === undefined;
|
|
6
7
|
}
|
|
7
|
-
exports.isNil = isNil;
|
|
8
8
|
function hasAllValues(toCheck) {
|
|
9
9
|
return toCheck.every((item) => !isNil(item));
|
|
10
10
|
}
|
|
11
|
-
exports.hasAllValues = hasAllValues;
|
|
12
11
|
//# sourceMappingURL=type-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-utils.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/utils/type-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"type-utils.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/utils/type-utils.ts"],"names":[],"mappings":";;AAAA,sBAEC;AAED,oCAEC;AAND,SAAgB,KAAK,CAAC,OAAgB;IAClC,OAAO,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,CAAC;AACrD,CAAC;AAED,SAAgB,YAAY,CAAI,OAAoC;IAChE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD,CAAC"}
|