@event-nest/mongodb 1.3.1 → 2.0.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 +5 -3
- package/src/lib/event-nest-mongodb.module.d.ts +2 -2
- package/src/lib/event-nest-mongodb.module.js +7 -6
- package/src/lib/event-nest-mongodb.module.js.map +1 -1
- package/src/lib/module-providers.js +9 -10
- package/src/lib/module-providers.js.map +1 -1
- package/src/lib/mongodb-module-options.d.ts +5 -5
- package/src/lib/storage/mongo-event-store.d.ts +2 -2
- package/src/lib/storage/mongo-event-store.js +15 -16
- package/src/lib/storage/mongo-event-store.js.map +1 -1
- package/src/lib/storage/event-concurrency-exception.d.ts +0 -3
- package/src/lib/storage/event-concurrency-exception.js +0 -10
- package/src/lib/storage/event-concurrency-exception.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@event-nest/mongodb",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Event sourcing module for NestJS using MongoDB. It uses MongoDB collections and transactions to store events and object information",
|
|
6
6
|
"author": "Nick Tsitlakidis",
|
|
@@ -17,7 +17,9 @@
|
|
|
17
17
|
"event sourcing",
|
|
18
18
|
"cqrs",
|
|
19
19
|
"ddd",
|
|
20
|
-
"mongodb"
|
|
20
|
+
"mongodb",
|
|
21
|
+
"sql",
|
|
22
|
+
"postgresql"
|
|
21
23
|
],
|
|
22
24
|
"peerDependencies": {
|
|
23
25
|
"@nestjs/common": "^9.0.0 || ^10.0.0",
|
|
@@ -29,7 +31,7 @@
|
|
|
29
31
|
"dependencies": {
|
|
30
32
|
"class-transformer": "^0.5.1",
|
|
31
33
|
"tslib": "^2.3.0",
|
|
32
|
-
"@event-nest/core": "
|
|
34
|
+
"@event-nest/core": "2.0.0"
|
|
33
35
|
},
|
|
34
36
|
"main": "./src/index.js"
|
|
35
37
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { DynamicModule, OnApplicationBootstrap } from "@nestjs/common";
|
|
2
|
-
import { MongoDbModuleAsyncOptions, MongodbModuleOptions } from "./mongodb-module-options";
|
|
3
1
|
import { DomainEventEmitter } from "@event-nest/core";
|
|
2
|
+
import { DynamicModule, OnApplicationBootstrap } from "@nestjs/common";
|
|
4
3
|
import { ModulesContainer } from "@nestjs/core";
|
|
4
|
+
import { MongoDbModuleAsyncOptions, MongodbModuleOptions } from "./mongodb-module-options";
|
|
5
5
|
export declare class EventNestMongoDbModule implements OnApplicationBootstrap {
|
|
6
6
|
private readonly _eventEmitter;
|
|
7
7
|
private readonly _modulesContainer;
|
|
@@ -3,33 +3,34 @@ var EventNestMongoDbModule_1;
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.EventNestMongoDbModule = void 0;
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
|
-
const common_1 = require("@nestjs/common");
|
|
7
6
|
const core_1 = require("@event-nest/core");
|
|
7
|
+
const common_1 = require("@nestjs/common");
|
|
8
8
|
const core_2 = require("@nestjs/core");
|
|
9
9
|
const module_providers_1 = require("./module-providers");
|
|
10
|
-
let EventNestMongoDbModule =
|
|
10
|
+
let EventNestMongoDbModule = EventNestMongoDbModule_1 = class EventNestMongoDbModule {
|
|
11
11
|
constructor(_eventEmitter, _modulesContainer) {
|
|
12
12
|
this._eventEmitter = _eventEmitter;
|
|
13
13
|
this._modulesContainer = _modulesContainer;
|
|
14
14
|
}
|
|
15
15
|
static register(options) {
|
|
16
16
|
return {
|
|
17
|
+
exports: [core_1.EVENT_STORE],
|
|
17
18
|
module: EventNestMongoDbModule_1,
|
|
18
|
-
providers: module_providers_1.ModuleProviders.create(options)
|
|
19
|
-
exports: [core_1.EVENT_STORE]
|
|
19
|
+
providers: module_providers_1.ModuleProviders.create(options)
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
22
|
static registerAsync(options) {
|
|
23
23
|
return {
|
|
24
|
+
exports: [core_1.EVENT_STORE],
|
|
24
25
|
module: EventNestMongoDbModule_1,
|
|
25
|
-
providers: module_providers_1.ModuleProviders.createAsync(options)
|
|
26
|
-
exports: [core_1.EVENT_STORE]
|
|
26
|
+
providers: module_providers_1.ModuleProviders.createAsync(options)
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
29
|
onApplicationBootstrap() {
|
|
30
30
|
this._eventEmitter.bindSubscriptions(this._modulesContainer);
|
|
31
31
|
}
|
|
32
32
|
};
|
|
33
|
+
exports.EventNestMongoDbModule = EventNestMongoDbModule;
|
|
33
34
|
exports.EventNestMongoDbModule = EventNestMongoDbModule = EventNestMongoDbModule_1 = tslib_1.__decorate([
|
|
34
35
|
(0, common_1.Global)(),
|
|
35
36
|
(0, common_1.Module)({}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-nest-mongodb.module.js","sourceRoot":"","sources":["../../../../../libs/mongodb/src/lib/event-nest-mongodb.module.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"event-nest-mongodb.module.js","sourceRoot":"","sources":["../../../../../libs/mongodb/src/lib/event-nest-mongodb.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAAmE;AACnE,2CAAuF;AACvF,uCAAgD;AAEhD,yDAAqD;AAK9C,IAAM,sBAAsB,8BAA5B,MAAM,sBAAsB;IAC/B,YACqB,aAAiC,EACjC,iBAAmC;QADnC,kBAAa,GAAb,aAAa,CAAoB;QACjC,sBAAiB,GAAjB,iBAAiB,CAAkB;IACrD,CAAC;IAEJ,MAAM,CAAC,QAAQ,CAAC,OAA6B;QACzC,OAAO;YACH,OAAO,EAAE,CAAC,kBAAW,CAAC;YACtB,MAAM,EAAE,wBAAsB;YAC9B,SAAS,EAAE,kCAAe,CAAC,MAAM,CAAC,OAAO,CAAC;SAC7C,CAAC;IACN,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,OAAkC;QACnD,OAAO;YACH,OAAO,EAAE,CAAC,kBAAW,CAAC;YACtB,MAAM,EAAE,wBAAsB;YAC9B,SAAS,EAAE,kCAAe,CAAC,WAAW,CAAC,OAAO,CAAC;SAClD,CAAC;IACN,CAAC;IAED,sBAAsB;QAClB,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjE,CAAC;CACJ,CAAA;AAzBY,wDAAsB;iCAAtB,sBAAsB;IAFlC,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;6CAG6B,yBAAkB;QACd,uBAAgB;GAH/C,sBAAsB,CAyBlC"}
|
|
@@ -14,37 +14,36 @@ class ModuleProviders {
|
|
|
14
14
|
}
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
|
+
inject: [core_1.DomainEventEmitter],
|
|
17
18
|
provide: core_1.EVENT_STORE,
|
|
18
19
|
useFactory: (eventEmitter) => {
|
|
19
20
|
return new mongo_event_store_1.MongoEventStore(eventEmitter, new mongodb_1.MongoClient(options.connectionUri), options.aggregatesCollection, options.eventsCollection);
|
|
20
|
-
}
|
|
21
|
-
inject: [core_1.DomainEventEmitter]
|
|
21
|
+
}
|
|
22
22
|
}
|
|
23
23
|
];
|
|
24
24
|
}
|
|
25
25
|
static createAsync(options) {
|
|
26
26
|
const optionsProvider = {
|
|
27
|
+
inject: options.inject,
|
|
27
28
|
provide: "EVENT_NEST_OPTIONS",
|
|
28
29
|
useFactory: async (...args) => {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
},
|
|
32
|
-
inject: options.inject
|
|
30
|
+
return await options.useFactory(...args);
|
|
31
|
+
}
|
|
33
32
|
};
|
|
34
33
|
const eventBusProvider = {
|
|
34
|
+
inject: ["EVENT_NEST_OPTIONS"],
|
|
35
35
|
provide: core_1.DomainEventEmitter,
|
|
36
36
|
useFactory: (options) => {
|
|
37
37
|
return new core_1.DomainEventEmitter(options.concurrentSubscriptions);
|
|
38
|
-
}
|
|
39
|
-
inject: ["EVENT_NEST_OPTIONS"]
|
|
38
|
+
}
|
|
40
39
|
};
|
|
41
40
|
const eventStoreProvider = {
|
|
41
|
+
inject: ["EVENT_NEST_OPTIONS", core_1.DomainEventEmitter],
|
|
42
42
|
provide: core_1.EVENT_STORE,
|
|
43
43
|
useFactory: (options, eventBus) => {
|
|
44
44
|
const mongoClient = new mongodb_1.MongoClient(options.connectionUri);
|
|
45
45
|
return new mongo_event_store_1.MongoEventStore(eventBus, mongoClient, options.aggregatesCollection, options.eventsCollection);
|
|
46
|
-
}
|
|
47
|
-
inject: ["EVENT_NEST_OPTIONS", core_1.DomainEventEmitter]
|
|
46
|
+
}
|
|
48
47
|
};
|
|
49
48
|
return [optionsProvider, eventBusProvider, eventStoreProvider];
|
|
50
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-providers.js","sourceRoot":"","sources":["../../../../../libs/mongodb/src/lib/module-providers.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"module-providers.js","sourceRoot":"","sources":["../../../../../libs/mongodb/src/lib/module-providers.ts"],"names":[],"mappings":";;;AAAA,2CAAmE;AAEnE,qCAAsC;AAGtC,mEAA8D;AAE9D,MAAa,eAAe;IACxB,MAAM,CAAC,MAAM,CAAC,OAA6B;QACvC,OAAO;YACH;gBACI,OAAO,EAAE,yBAAkB;gBAC3B,UAAU,EAAE,GAAG,EAAE;oBACb,OAAO,IAAI,yBAAkB,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;gBACnE,CAAC;aACJ;YACD;gBACI,MAAM,EAAE,CAAC,yBAAkB,CAAC;gBAC5B,OAAO,EAAE,kBAAW;gBACpB,UAAU,EAAE,CAAC,YAAgC,EAAE,EAAE;oBAC7C,OAAO,IAAI,mCAAe,CACtB,YAAY,EACZ,IAAI,qBAAW,CAAC,OAAO,CAAC,aAAa,CAAC,EACtC,OAAO,CAAC,oBAAoB,EAC5B,OAAO,CAAC,gBAAgB,CAC3B,CAAC;gBACN,CAAC;aACJ;SACJ,CAAC;IACN,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,OAAkC;QACjD,MAAM,eAAe,GAAG;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,oBAAoB;YAC7B,UAAU,EAAE,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;gBACrC,OAAO,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;YAC7C,CAAC;SACJ,CAAC;QAEF,MAAM,gBAAgB,GAAG;YACrB,MAAM,EAAE,CAAC,oBAAoB,CAAC;YAC9B,OAAO,EAAE,yBAAkB;YAC3B,UAAU,EAAE,CAAC,OAA6B,EAAE,EAAE;gBAC1C,OAAO,IAAI,yBAAkB,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YACnE,CAAC;SACJ,CAAC;QAEF,MAAM,kBAAkB,GAAG;YACvB,MAAM,EAAE,CAAC,oBAAoB,EAAE,yBAAkB,CAAC;YAClD,OAAO,EAAE,kBAAW;YACpB,UAAU,EAAE,CAAC,OAA6B,EAAE,QAA4B,EAAE,EAAE;gBACxE,MAAM,WAAW,GAAG,IAAI,qBAAW,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAC3D,OAAO,IAAI,mCAAe,CACtB,QAAQ,EACR,WAAW,EACX,OAAO,CAAC,oBAAoB,EAC5B,OAAO,CAAC,gBAAgB,CAC3B,CAAC;YACN,CAAC;SACJ,CAAC;QAEF,OAAO,CAAC,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;IACnE,CAAC;CACJ;AAzDD,0CAyDC"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { CoreModuleOptions } from "@event-nest/core";
|
|
2
2
|
export interface MongodbModuleOptions extends CoreModuleOptions {
|
|
3
|
-
/**
|
|
4
|
-
* A valid connection string which will be used to connect to the MongoDB instance.
|
|
5
|
-
*/
|
|
6
|
-
connectionUri: string;
|
|
7
3
|
/**
|
|
8
4
|
* The name of the collection which will be used to store the aggregate root objects.
|
|
9
5
|
*/
|
|
10
6
|
aggregatesCollection: string;
|
|
7
|
+
/**
|
|
8
|
+
* A valid connection string which will be used to connect to the MongoDB instance.
|
|
9
|
+
*/
|
|
10
|
+
connectionUri: string;
|
|
11
11
|
/**
|
|
12
12
|
* The name of the collection which will be used to store the event objects
|
|
13
13
|
*/
|
|
14
14
|
eventsCollection: string;
|
|
15
15
|
}
|
|
16
16
|
export interface MongoDbModuleAsyncOptions {
|
|
17
|
-
useFactory: (...args: any[]) => Promise<MongodbModuleOptions> | MongodbModuleOptions;
|
|
18
17
|
inject?: any[];
|
|
18
|
+
useFactory: (...args: any[]) => MongodbModuleOptions | Promise<MongodbModuleOptions>;
|
|
19
19
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { MongoClient } from "mongodb";
|
|
2
1
|
import { AbstractEventStore, AggregateRoot, AggregateRootClass, DomainEventEmitter, StoredAggregateRoot, StoredEvent } from "@event-nest/core";
|
|
2
|
+
import { MongoClient } from "mongodb";
|
|
3
3
|
export declare class MongoEventStore extends AbstractEventStore {
|
|
4
4
|
private readonly _mongoClient;
|
|
5
5
|
private readonly _aggregatesCollectionName;
|
|
@@ -8,8 +8,8 @@ export declare class MongoEventStore extends AbstractEventStore {
|
|
|
8
8
|
constructor(eventEmitter: DomainEventEmitter, _mongoClient: MongoClient, _aggregatesCollectionName: string, _eventsCollectionName: string);
|
|
9
9
|
get aggregatesCollectionName(): string;
|
|
10
10
|
get eventsCollectionName(): string;
|
|
11
|
-
findByAggregateRootId<T extends AggregateRoot>(aggregateRootClass: AggregateRootClass<T>, id: string): Promise<Array<StoredEvent>>;
|
|
12
11
|
findAggregateRootVersion(id: string): Promise<number>;
|
|
12
|
+
findByAggregateRootId<T extends AggregateRoot>(aggregateRootClass: AggregateRootClass<T>, id: string): Promise<Array<StoredEvent>>;
|
|
13
13
|
generateEntityId(): Promise<string>;
|
|
14
14
|
save(events: Array<StoredEvent>, aggregate: StoredAggregateRoot): Promise<Array<StoredEvent>>;
|
|
15
15
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MongoEventStore = void 0;
|
|
4
|
-
const mongodb_1 = require("mongodb");
|
|
5
|
-
const common_1 = require("@nestjs/common");
|
|
6
|
-
const event_concurrency_exception_1 = require("./event-concurrency-exception");
|
|
7
4
|
const core_1 = require("@event-nest/core");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const mongodb_1 = require("mongodb");
|
|
8
7
|
class MongoEventStore extends core_1.AbstractEventStore {
|
|
9
8
|
constructor(eventEmitter, _mongoClient, _aggregatesCollectionName, _eventsCollectionName) {
|
|
10
9
|
super(eventEmitter);
|
|
@@ -19,6 +18,16 @@ class MongoEventStore extends core_1.AbstractEventStore {
|
|
|
19
18
|
get eventsCollectionName() {
|
|
20
19
|
return this._eventsCollectionName;
|
|
21
20
|
}
|
|
21
|
+
async findAggregateRootVersion(id) {
|
|
22
|
+
const found = await this._mongoClient
|
|
23
|
+
.db()
|
|
24
|
+
.collection(this._aggregatesCollectionName)
|
|
25
|
+
.findOne({ _id: new mongodb_1.ObjectId(id) });
|
|
26
|
+
if ((0, core_1.isNil)(found) || (0, core_1.isNil)(found["version"])) {
|
|
27
|
+
return -1;
|
|
28
|
+
}
|
|
29
|
+
return found["version"];
|
|
30
|
+
}
|
|
22
31
|
async findByAggregateRootId(aggregateRootClass, id) {
|
|
23
32
|
const aggregateRootName = (0, core_1.getAggregateRootName)(aggregateRootClass);
|
|
24
33
|
if ((0, core_1.isNil)(aggregateRootName)) {
|
|
@@ -37,16 +46,6 @@ class MongoEventStore extends core_1.AbstractEventStore {
|
|
|
37
46
|
}
|
|
38
47
|
return [];
|
|
39
48
|
}
|
|
40
|
-
async findAggregateRootVersion(id) {
|
|
41
|
-
const found = await this._mongoClient
|
|
42
|
-
.db()
|
|
43
|
-
.collection(this._aggregatesCollectionName)
|
|
44
|
-
.findOne({ _id: new mongodb_1.ObjectId(id) });
|
|
45
|
-
if ((0, core_1.isNil)(found) || (0, core_1.isNil)(found["version"])) {
|
|
46
|
-
return -1;
|
|
47
|
-
}
|
|
48
|
-
return found["version"];
|
|
49
|
-
}
|
|
50
49
|
generateEntityId() {
|
|
51
50
|
return Promise.resolve(new mongodb_1.ObjectId().toHexString());
|
|
52
51
|
}
|
|
@@ -76,7 +75,7 @@ class MongoEventStore extends core_1.AbstractEventStore {
|
|
|
76
75
|
}
|
|
77
76
|
if (foundAggregate.version !== aggregate.version) {
|
|
78
77
|
this._logger.error(`Concurrency issue for aggregate ${aggregate.id}. Expected ${aggregate.version}. Stored ${foundAggregate.version}`);
|
|
79
|
-
throw new
|
|
78
|
+
throw new core_1.EventConcurrencyException(aggregate.id, foundAggregate.version, aggregate.version);
|
|
80
79
|
}
|
|
81
80
|
for (let i = 0; i < events.length; i++) {
|
|
82
81
|
incrementedVersion = aggregate.version + i + 1;
|
|
@@ -88,10 +87,10 @@ class MongoEventStore extends core_1.AbstractEventStore {
|
|
|
88
87
|
const mapped = events.map((ev) => {
|
|
89
88
|
return {
|
|
90
89
|
_id: new mongodb_1.ObjectId(ev.id),
|
|
91
|
-
createdAt: ev.createdAt,
|
|
92
90
|
aggregateRootId: ev.aggregateRootId,
|
|
93
|
-
aggregateRootVersion: ev.aggregateRootVersion,
|
|
94
91
|
aggregateRootName: ev.aggregateRootName,
|
|
92
|
+
aggregateRootVersion: ev.aggregateRootVersion,
|
|
93
|
+
createdAt: ev.createdAt,
|
|
95
94
|
eventName: ev.eventName,
|
|
96
95
|
payload: ev.payload
|
|
97
96
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongo-event-store.js","sourceRoot":"","sources":["../../../../../../libs/mongodb/src/lib/storage/mongo-event-store.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"mongo-event-store.js","sourceRoot":"","sources":["../../../../../../libs/mongodb/src/lib/storage/mongo-event-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EventConcurrencyException = void 0;
|
|
4
|
-
class EventConcurrencyException extends Error {
|
|
5
|
-
constructor(aggregateRootId, databaseVersion, version) {
|
|
6
|
-
super(`Concurrency issue for aggregate ${aggregateRootId}. Expected ${version}. Stored ${databaseVersion}`);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
exports.EventConcurrencyException = EventConcurrencyException;
|
|
10
|
-
//# sourceMappingURL=event-concurrency-exception.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-concurrency-exception.js","sourceRoot":"","sources":["../../../../../../libs/mongodb/src/lib/storage/event-concurrency-exception.ts"],"names":[],"mappings":";;;AAAA,MAAa,yBAA0B,SAAQ,KAAK;IAChD,YAAY,eAAuB,EAAE,eAAuB,EAAE,OAAe;QACzE,KAAK,CAAC,mCAAmC,eAAe,cAAc,OAAO,YAAY,eAAe,EAAE,CAAC,CAAC;IAChH,CAAC;CACJ;AAJD,8DAIC"}
|