@event-nest/postgresql 3.0.0 → 3.1.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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@event-nest/postgresql",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Event sourcing module for NestJS using PostgreSQL. It uses SQL tables and transactions to store events",
|
|
6
6
|
"author": "Nick Tsitlakidis",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"@nestjs/common": "^9.0.0 || ^10.0.0",
|
|
26
26
|
"@nestjs/core": "^9.0.0 || ^10.0.0",
|
|
27
27
|
"pg": "^8.11.5",
|
|
28
|
-
"reflect-metadata": "0.1.
|
|
28
|
+
"reflect-metadata": "^0.1.12 || ^0.2.0",
|
|
29
29
|
"rxjs": "^7.2.0"
|
|
30
30
|
},
|
|
31
31
|
"main": "./src/index.js",
|
|
@@ -34,6 +34,6 @@
|
|
|
34
34
|
"class-transformer": "^0.5.1",
|
|
35
35
|
"knex": "^3.1.0",
|
|
36
36
|
"tslib": "^2.3.0",
|
|
37
|
-
"@event-nest/core": "3.
|
|
37
|
+
"@event-nest/core": "3.1.0"
|
|
38
38
|
}
|
|
39
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-providers.js","sourceRoot":"","sources":["../../../../../libs/postgresql/src/lib/module-providers.ts"],"names":[],"mappings":";;;AAAA,2CAA0E;AAE1E,+BAA4B;AAG5B,6EAAwE;AAExE,MAAM,eAAe,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC;AAE7D,SAAS,mBAAmB,CAAC,OAAgC;IACzD,IAAI,IAAA,YAAK,EAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,IAAA,WAAI,EAAC;YACR,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE;gBACR,gBAAgB,EAAE,OAAO,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"module-providers.js","sourceRoot":"","sources":["../../../../../libs/postgresql/src/lib/module-providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ export declare class PostgreSQLEventStore extends AbstractEventStore {
|
|
|
14
14
|
get schemaName(): string;
|
|
15
15
|
findAggregateRootVersion(id: string): Promise<number>;
|
|
16
16
|
findByAggregateRootId<T extends AggregateRoot>(aggregateRootClass: AggregateRootClass<T>, id: string): Promise<Array<StoredEvent>>;
|
|
17
|
+
findByAggregateRootIds<T extends AggregateRoot>(aggregateRootClass: AggregateRootClass<T>, ids: string[]): Promise<Record<string, Array<StoredEvent>>>;
|
|
17
18
|
generateEntityId(): Promise<string>;
|
|
18
19
|
save(events: Array<StoredEvent>, aggregate: StoredAggregateRoot): Promise<Array<StoredEvent>>;
|
|
19
20
|
}
|
|
@@ -51,6 +51,27 @@ class PostgreSQLEventStore extends core_1.AbstractEventStore {
|
|
|
51
51
|
}
|
|
52
52
|
return [];
|
|
53
53
|
}
|
|
54
|
+
async findByAggregateRootIds(aggregateRootClass, ids) {
|
|
55
|
+
const aggregateRootName = (0, core_1.getAggregateRootName)(aggregateRootClass);
|
|
56
|
+
if ((0, core_1.isNil)(aggregateRootName)) {
|
|
57
|
+
this._logger.error(`Missing aggregate root name for class: ${aggregateRootClass.name}. Use the @AggregateRootName decorator.`);
|
|
58
|
+
throw new core_1.MissingAggregateRootNameException(aggregateRootClass.name);
|
|
59
|
+
}
|
|
60
|
+
const rows = await this._knexConnection(this._fullEventsTableName)
|
|
61
|
+
.select("*")
|
|
62
|
+
.whereIn("aggregate_root_id", ids)
|
|
63
|
+
.andWhere({
|
|
64
|
+
aggregate_root_name: aggregateRootName
|
|
65
|
+
});
|
|
66
|
+
const grouped = {};
|
|
67
|
+
rows.forEach((row) => {
|
|
68
|
+
if ((0, core_1.isNil)(grouped[row.aggregate_root_id])) {
|
|
69
|
+
grouped[row.aggregate_root_id] = [];
|
|
70
|
+
}
|
|
71
|
+
grouped[row.aggregate_root_id].push(core_1.StoredEvent.fromStorage(row.id, row.aggregate_root_id, row.event_name, row.created_at, row.aggregate_root_version, row.aggregate_root_name, row.payload));
|
|
72
|
+
});
|
|
73
|
+
return grouped;
|
|
74
|
+
}
|
|
54
75
|
generateEntityId() {
|
|
55
76
|
return Promise.resolve((0, crypto_1.randomUUID)());
|
|
56
77
|
}
|
|
@@ -79,8 +100,8 @@ class PostgreSQLEventStore extends core_1.AbstractEventStore {
|
|
|
79
100
|
});
|
|
80
101
|
foundAggregate = aggregate;
|
|
81
102
|
}
|
|
82
|
-
if (
|
|
83
|
-
this._logger.error(`
|
|
103
|
+
if (aggregate.isOutdated(foundAggregate)) {
|
|
104
|
+
this._logger.error(`Version conflict detected for aggregate ${aggregate.id}. Expected ${aggregate.version}. Stored ${foundAggregate.version}`);
|
|
84
105
|
throw new core_1.EventConcurrencyException(aggregate.id, foundAggregate.version, aggregate.version);
|
|
85
106
|
}
|
|
86
107
|
for (let i = 0; i < events.length; i++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgresql-event-store.js","sourceRoot":"","sources":["../../../../../../libs/postgresql/src/lib/storage/postgresql-event-store.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"postgresql-event-store.js","sourceRoot":"","sources":["../../../../../../libs/postgresql/src/lib/storage/postgresql-event-store.ts"],"names":[],"mappings":"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"}
|