@event-nest/mongodb 3.0.1 → 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/package.json +6 -5
- package/src/lib/event-nest-mongodb.module.d.ts +22 -0
- package/src/lib/event-nest-mongodb.module.js +38 -1
- package/src/lib/event-nest-mongodb.module.js.map +1 -1
- package/src/lib/storage/mongo-event-store.d.ts +1 -0
- package/src/lib/storage/mongo-event-store.js +20 -0
- package/src/lib/storage/mongo-event-store.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@event-nest/mongodb",
|
|
3
|
-
"version": "3.0
|
|
3
|
+
"version": "3.2.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",
|
|
@@ -24,14 +24,15 @@
|
|
|
24
24
|
"peerDependencies": {
|
|
25
25
|
"@nestjs/common": "^9.0.0 || ^10.0.0",
|
|
26
26
|
"@nestjs/core": "^9.0.0 || ^10.0.0",
|
|
27
|
-
"mongodb": "^5.0.0",
|
|
28
|
-
"reflect-metadata": "0.1.
|
|
27
|
+
"mongodb": "^5.0.0 || ^6.0.0",
|
|
28
|
+
"reflect-metadata": "^0.1.12 || ^0.2.0",
|
|
29
29
|
"rxjs": "^7.2.0"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"class-transformer": "^0.5.1",
|
|
33
33
|
"tslib": "^2.3.0",
|
|
34
|
-
"@event-nest/core": "3.0
|
|
34
|
+
"@event-nest/core": "3.2.0"
|
|
35
35
|
},
|
|
36
|
-
"main": "./src/index.js"
|
|
36
|
+
"main": "./src/index.js",
|
|
37
|
+
"types": "./src/index.d.ts"
|
|
37
38
|
}
|
|
@@ -6,7 +6,29 @@ export declare class EventNestMongoDbModule implements OnApplicationBootstrap {
|
|
|
6
6
|
private readonly _eventEmitter;
|
|
7
7
|
private readonly _modulesContainer;
|
|
8
8
|
constructor(_eventEmitter: DomainEventEmitter, _modulesContainer: ModulesContainer);
|
|
9
|
+
/**
|
|
10
|
+
* Registers the event-nest module globally with the provided options. The exported providers will be available
|
|
11
|
+
* across the application without having to import the module more than once.
|
|
12
|
+
* @param options The options to configure the PostgreSQL connection.
|
|
13
|
+
*/
|
|
14
|
+
static forRoot(options: MongodbModuleOptions): DynamicModule;
|
|
15
|
+
/**
|
|
16
|
+
* Registers the event-nest module globally with the provided options. The exported providers will be available
|
|
17
|
+
* across the application without having to import the module more than once.
|
|
18
|
+
* @param options An options object which includes the factory that should be called to resolve the final module options.
|
|
19
|
+
*/
|
|
20
|
+
static forRootAsync(options: MongoDbModuleAsyncOptions): DynamicModule;
|
|
21
|
+
/**
|
|
22
|
+
* Registers the event-nest module with the provided options. The exported providers will be available only for the
|
|
23
|
+
* module that imports this module.
|
|
24
|
+
* @param options The options to configure the PostgreSQL connection.
|
|
25
|
+
*/
|
|
9
26
|
static register(options: MongodbModuleOptions): DynamicModule;
|
|
27
|
+
/**
|
|
28
|
+
* Registers the event-nest module with the provided options. The exported providers will be available only for the
|
|
29
|
+
* module that imports this module.
|
|
30
|
+
* @param options An options object which includes the factory that should be called to resolve the final module options.
|
|
31
|
+
*/
|
|
10
32
|
static registerAsync(options: MongoDbModuleAsyncOptions): DynamicModule;
|
|
11
33
|
onApplicationBootstrap(): void;
|
|
12
34
|
}
|
|
@@ -12,16 +12,54 @@ let EventNestMongoDbModule = EventNestMongoDbModule_1 = class EventNestMongoDbMo
|
|
|
12
12
|
this._eventEmitter = _eventEmitter;
|
|
13
13
|
this._modulesContainer = _modulesContainer;
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Registers the event-nest module globally with the provided options. The exported providers will be available
|
|
17
|
+
* across the application without having to import the module more than once.
|
|
18
|
+
* @param options The options to configure the PostgreSQL connection.
|
|
19
|
+
*/
|
|
20
|
+
static forRoot(options) {
|
|
21
|
+
return {
|
|
22
|
+
exports: [core_1.EVENT_STORE],
|
|
23
|
+
global: true,
|
|
24
|
+
module: EventNestMongoDbModule_1,
|
|
25
|
+
providers: module_providers_1.ModuleProviders.create(options)
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Registers the event-nest module globally with the provided options. The exported providers will be available
|
|
30
|
+
* across the application without having to import the module more than once.
|
|
31
|
+
* @param options An options object which includes the factory that should be called to resolve the final module options.
|
|
32
|
+
*/
|
|
33
|
+
static forRootAsync(options) {
|
|
34
|
+
return {
|
|
35
|
+
exports: [core_1.EVENT_STORE],
|
|
36
|
+
global: true,
|
|
37
|
+
module: EventNestMongoDbModule_1,
|
|
38
|
+
providers: module_providers_1.ModuleProviders.createAsync(options)
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Registers the event-nest module with the provided options. The exported providers will be available only for the
|
|
43
|
+
* module that imports this module.
|
|
44
|
+
* @param options The options to configure the PostgreSQL connection.
|
|
45
|
+
*/
|
|
15
46
|
static register(options) {
|
|
16
47
|
return {
|
|
17
48
|
exports: [core_1.EVENT_STORE],
|
|
49
|
+
global: false,
|
|
18
50
|
module: EventNestMongoDbModule_1,
|
|
19
51
|
providers: module_providers_1.ModuleProviders.create(options)
|
|
20
52
|
};
|
|
21
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Registers the event-nest module with the provided options. The exported providers will be available only for the
|
|
56
|
+
* module that imports this module.
|
|
57
|
+
* @param options An options object which includes the factory that should be called to resolve the final module options.
|
|
58
|
+
*/
|
|
22
59
|
static registerAsync(options) {
|
|
23
60
|
return {
|
|
24
61
|
exports: [core_1.EVENT_STORE],
|
|
62
|
+
global: false,
|
|
25
63
|
module: EventNestMongoDbModule_1,
|
|
26
64
|
providers: module_providers_1.ModuleProviders.createAsync(options)
|
|
27
65
|
};
|
|
@@ -32,7 +70,6 @@ let EventNestMongoDbModule = EventNestMongoDbModule_1 = class EventNestMongoDbMo
|
|
|
32
70
|
};
|
|
33
71
|
exports.EventNestMongoDbModule = EventNestMongoDbModule;
|
|
34
72
|
exports.EventNestMongoDbModule = EventNestMongoDbModule = EventNestMongoDbModule_1 = tslib_1.__decorate([
|
|
35
|
-
(0, common_1.Global)(),
|
|
36
73
|
(0, common_1.Module)({}),
|
|
37
74
|
tslib_1.__metadata("design:paramtypes", [core_1.DomainEventEmitter,
|
|
38
75
|
core_2.ModulesContainer])
|
|
@@ -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,2CAAmE;AACnE,2CAAuF;AACvF,uCAAgD;AAEhD,yDAAqD;
|
|
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;AAI9C,IAAM,sBAAsB,8BAA5B,MAAM,sBAAsB;IAC/B,YACqB,aAAiC,EACjC,iBAAmC;QADnC,kBAAa,GAAb,aAAa,CAAoB;QACjC,sBAAiB,GAAjB,iBAAiB,CAAkB;IACrD,CAAC;IAEJ;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,OAA6B;QACxC,OAAO;YACH,OAAO,EAAE,CAAC,kBAAW,CAAC;YACtB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,wBAAsB;YAC9B,SAAS,EAAE,kCAAe,CAAC,MAAM,CAAC,OAAO,CAAC;SAC7C,CAAC;IACN,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,OAAkC;QAClD,OAAO;YACH,OAAO,EAAE,CAAC,kBAAW,CAAC;YACtB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,wBAAsB;YAC9B,SAAS,EAAE,kCAAe,CAAC,WAAW,CAAC,OAAO,CAAC;SAClD,CAAC;IACN,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,OAA6B;QACzC,OAAO;YACH,OAAO,EAAE,CAAC,kBAAW,CAAC;YACtB,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,wBAAsB;YAC9B,SAAS,EAAE,kCAAe,CAAC,MAAM,CAAC,OAAO,CAAC;SAC7C,CAAC;IACN,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,OAAkC;QACnD,OAAO;YACH,OAAO,EAAE,CAAC,kBAAW,CAAC;YACtB,MAAM,EAAE,KAAK;YACb,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;AAjEY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,eAAM,EAAC,EAAE,CAAC;6CAG6B,yBAAkB;QACd,uBAAgB;GAH/C,sBAAsB,CAiElC"}
|
|
@@ -10,6 +10,7 @@ export declare class MongoEventStore extends AbstractEventStore {
|
|
|
10
10
|
get eventsCollectionName(): string;
|
|
11
11
|
findAggregateRootVersion(id: string): Promise<number>;
|
|
12
12
|
findByAggregateRootId<T extends AggregateRoot>(aggregateRootClass: AggregateRootClass<T>, id: string): Promise<Array<StoredEvent>>;
|
|
13
|
+
findByAggregateRootIds<T extends AggregateRoot>(aggregateRootClass: AggregateRootClass<T>, ids: string[]): Promise<Record<string, Array<StoredEvent>>>;
|
|
13
14
|
generateEntityId(): Promise<string>;
|
|
14
15
|
save(events: Array<StoredEvent>, aggregate: StoredAggregateRoot): Promise<Array<StoredEvent>>;
|
|
15
16
|
}
|
|
@@ -46,6 +46,26 @@ class MongoEventStore extends core_1.AbstractEventStore {
|
|
|
46
46
|
}
|
|
47
47
|
return [];
|
|
48
48
|
}
|
|
49
|
+
async findByAggregateRootIds(aggregateRootClass, ids) {
|
|
50
|
+
const aggregateRootName = (0, core_1.getAggregateRootName)(aggregateRootClass);
|
|
51
|
+
if ((0, core_1.isNil)(aggregateRootName)) {
|
|
52
|
+
this._logger.error(`Missing aggregate root name for class: ${aggregateRootClass.name}. Use the @AggregateRootName decorator.`);
|
|
53
|
+
throw new core_1.MissingAggregateRootNameException(aggregateRootClass.name);
|
|
54
|
+
}
|
|
55
|
+
const documents = await this._mongoClient
|
|
56
|
+
.db()
|
|
57
|
+
.collection(this._eventsCollectionName)
|
|
58
|
+
.find({ aggregateRootId: { $in: ids }, aggregateRootName: aggregateRootName })
|
|
59
|
+
.toArray();
|
|
60
|
+
const grouped = {};
|
|
61
|
+
documents.forEach((doc) => {
|
|
62
|
+
if ((0, core_1.isNil)(grouped[doc["aggregateRootId"]])) {
|
|
63
|
+
grouped[doc["aggregateRootId"]] = [];
|
|
64
|
+
}
|
|
65
|
+
grouped[doc["aggregateRootId"]].push(core_1.StoredEvent.fromStorage(doc._id.toHexString(), doc["aggregateRootId"], doc["eventName"], doc["createdAt"], doc["aggregateRootVersion"], doc["aggregateRootName"], doc["payload"]));
|
|
66
|
+
});
|
|
67
|
+
return grouped;
|
|
68
|
+
}
|
|
49
69
|
generateEntityId() {
|
|
50
70
|
return Promise.resolve(new mongodb_1.ObjectId().toHexString());
|
|
51
71
|
}
|
|
@@ -1 +1 @@
|
|
|
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
|
+
{"version":3,"file":"mongo-event-store.js","sourceRoot":"","sources":["../../../../../../libs/mongodb/src/lib/storage/mongo-event-store.ts"],"names":[],"mappings":"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"}
|