@zeeshan60/event-processor 1.0.23 → 1.0.25
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/ActivityEventHandler.d.ts +3 -1
- package/dist/ActivityEventHandler.d.ts.map +1 -1
- package/dist/ActivityEventHandler.js +19 -13
- package/dist/ActivityEventHandler.js.map +1 -1
- package/dist/BaseEventHandler.d.ts +2 -1
- package/dist/BaseEventHandler.d.ts.map +1 -1
- package/dist/BaseEventHandler.js +3 -3
- package/dist/BaseEventHandler.js.map +1 -1
- package/dist/FriendEventHandler.d.ts +3 -1
- package/dist/FriendEventHandler.d.ts.map +1 -1
- package/dist/FriendEventHandler.js +22 -15
- package/dist/FriendEventHandler.js.map +1 -1
- package/dist/GroupEventHandler.d.ts +2 -0
- package/dist/GroupEventHandler.d.ts.map +1 -1
- package/dist/GroupEventHandler.js +29 -23
- package/dist/GroupEventHandler.js.map +1 -1
- package/dist/GroupTransactionEventHandler.d.ts +2 -0
- package/dist/GroupTransactionEventHandler.d.ts.map +1 -1
- package/dist/GroupTransactionEventHandler.js +29 -16
- package/dist/GroupTransactionEventHandler.js.map +1 -1
- package/dist/TransactionEventHandler.d.ts +3 -1
- package/dist/TransactionEventHandler.d.ts.map +1 -1
- package/dist/TransactionEventHandler.js +101 -46
- package/dist/TransactionEventHandler.js.map +1 -1
- package/dist/UserEventHandler.d.ts +3 -1
- package/dist/UserEventHandler.d.ts.map +1 -1
- package/dist/UserEventHandler.js +30 -22
- package/dist/UserEventHandler.js.map +1 -1
- package/dist/__tests__/test-helpers/IMTransactionEventStore.d.ts +1 -0
- package/dist/__tests__/test-helpers/IMTransactionEventStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMTransactionEventStore.js +3 -0
- package/dist/__tests__/test-helpers/IMTransactionEventStore.js.map +1 -1
- package/dist/store/TransactionEventStore.d.ts +1 -0
- package/dist/store/TransactionEventStore.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/errors/RetryError.d.ts +0 -6
- package/dist/errors/RetryError.d.ts.map +0 -1
- package/dist/errors/RetryError.js +0 -13
- package/dist/errors/RetryError.js.map +0 -1
- package/dist/utils/tryLater.d.ts +0 -12
- package/dist/utils/tryLater.d.ts.map +0 -1
- package/dist/utils/tryLater.js +0 -27
- package/dist/utils/tryLater.js.map +0 -1
|
@@ -17,21 +17,23 @@ class GroupTransactionEventHandler extends BaseEventHandler_1.BaseEventHandler {
|
|
|
17
17
|
}
|
|
18
18
|
async handleClientEventFromRemoteListener(event) {
|
|
19
19
|
const existingModel = await this.modelStore.getByStreamId(event.streamId);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
await this.modelStore.save(updatedModel);
|
|
23
|
-
this.modelChangeEmitter?.emit("GroupTransactionModel", updatedModel);
|
|
20
|
+
if (this.shouldSkipSave(existingModel, event)) {
|
|
21
|
+
return;
|
|
24
22
|
}
|
|
23
|
+
const updatedModel = event.apply(existingModel);
|
|
24
|
+
await this.modelStore.save(updatedModel);
|
|
25
|
+
this.modelChangeEmitter?.emit("GroupTransactionModel", updatedModel);
|
|
25
26
|
}
|
|
26
27
|
async handleClientEventsFromRemoteListenerBulk(events) {
|
|
27
28
|
const updatedModels = [];
|
|
28
29
|
for (const event of events) {
|
|
29
30
|
const existingModel = await this.modelStore.getByStreamId(event.streamId);
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
await this.modelStore.save(updatedModel);
|
|
33
|
-
updatedModels.push(updatedModel);
|
|
31
|
+
if (this.shouldSkipSave(existingModel, event)) {
|
|
32
|
+
continue;
|
|
34
33
|
}
|
|
34
|
+
const updatedModel = event.apply(existingModel);
|
|
35
|
+
await this.modelStore.save(updatedModel);
|
|
36
|
+
updatedModels.push(updatedModel);
|
|
35
37
|
}
|
|
36
38
|
if (this.modelChangeEmitter && updatedModels.length > 0) {
|
|
37
39
|
for (const model of updatedModels) {
|
|
@@ -39,6 +41,9 @@ class GroupTransactionEventHandler extends BaseEventHandler_1.BaseEventHandler {
|
|
|
39
41
|
}
|
|
40
42
|
}
|
|
41
43
|
}
|
|
44
|
+
async handleBackendEvent(event, context) {
|
|
45
|
+
return this.handleEvent(event);
|
|
46
|
+
}
|
|
42
47
|
async handleEvent(event) {
|
|
43
48
|
if (this.isClient) {
|
|
44
49
|
await this.eventStore.addEvent(event);
|
|
@@ -55,11 +60,15 @@ class GroupTransactionEventHandler extends BaseEventHandler_1.BaseEventHandler {
|
|
|
55
60
|
}
|
|
56
61
|
async handleGroupTransactionCreated(event) {
|
|
57
62
|
const existingModel = await this.modelStore.getByStreamIdWhereDeletedIsFalse(event.streamId);
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
63
|
+
if (this.shouldSkipSave(existingModel, event)) {
|
|
64
|
+
if (this.activityEventHandler) {
|
|
65
|
+
await this.activityEventHandler.createActivityLog(event, existingModel, existingModel);
|
|
66
|
+
}
|
|
67
|
+
return existingModel;
|
|
62
68
|
}
|
|
69
|
+
const updatedModel = event.apply(existingModel);
|
|
70
|
+
await this.modelStore.save(updatedModel);
|
|
71
|
+
this.modelChangeEmitter?.emit("GroupTransactionModel", updatedModel);
|
|
63
72
|
if (this.activityEventHandler) {
|
|
64
73
|
await this.activityEventHandler.createActivityLog(event, existingModel, updatedModel);
|
|
65
74
|
}
|
|
@@ -70,11 +79,15 @@ class GroupTransactionEventHandler extends BaseEventHandler_1.BaseEventHandler {
|
|
|
70
79
|
if (!existingModel) {
|
|
71
80
|
throw new Error("GroupTransaction must exist to change split details");
|
|
72
81
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
82
|
+
if (this.shouldSkipSave(existingModel, event)) {
|
|
83
|
+
if (this.activityEventHandler) {
|
|
84
|
+
await this.activityEventHandler.createActivityLog(event, existingModel, existingModel);
|
|
85
|
+
}
|
|
86
|
+
return existingModel;
|
|
77
87
|
}
|
|
88
|
+
const updatedModel = event.apply(existingModel);
|
|
89
|
+
await this.modelStore.save(updatedModel);
|
|
90
|
+
this.modelChangeEmitter?.emit("GroupTransactionModel", updatedModel);
|
|
78
91
|
if (this.activityEventHandler) {
|
|
79
92
|
await this.activityEventHandler.createActivityLog(event, existingModel, updatedModel);
|
|
80
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupTransactionEventHandler.js","sourceRoot":"","sources":["../src/GroupTransactionEventHandler.ts"],"names":[],"mappings":";;;AAcA,yDAAsD;
|
|
1
|
+
{"version":3,"file":"GroupTransactionEventHandler.js","sourceRoot":"","sources":["../src/GroupTransactionEventHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { TransactionEvent, TransactionEventStore, TransactionModel, TransactionM
|
|
|
2
2
|
import { BaseEventHandler } from "./BaseEventHandler";
|
|
3
3
|
import { ActivityEventHandler } from "./ActivityEventHandler";
|
|
4
4
|
import { ModelChangeEmitter } from "./ModelChangeEmitter";
|
|
5
|
+
import { LoggingContext } from "./common/LoggingContext";
|
|
5
6
|
export declare class TransactionEventHandler extends BaseEventHandler<TransactionEvent> {
|
|
6
7
|
private modelStore;
|
|
7
8
|
private eventStore;
|
|
@@ -10,7 +11,8 @@ export declare class TransactionEventHandler extends BaseEventHandler<Transactio
|
|
|
10
11
|
getModelStore(): TransactionModelStore;
|
|
11
12
|
handleClientEventFromRemoteListener(event: TransactionEvent): Promise<void>;
|
|
12
13
|
handleClientEventsFromRemoteListenerBulk(events: TransactionEvent[]): Promise<void>;
|
|
13
|
-
|
|
14
|
+
handleBackendEvent(event: TransactionEvent, context?: LoggingContext): Promise<TransactionModel>;
|
|
15
|
+
handleEvent(event: TransactionEvent, context?: LoggingContext): Promise<TransactionModel>;
|
|
14
16
|
private createMirrorEvent;
|
|
15
17
|
}
|
|
16
18
|
//# sourceMappingURL=TransactionEventHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionEventHandler.d.ts","sourceRoot":"","sources":["../src/TransactionEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EASH,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACxB,MAAM,GAAG,CAAC;AACX,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAM9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"TransactionEventHandler.d.ts","sourceRoot":"","sources":["../src/TransactionEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EASH,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACxB,MAAM,GAAG,CAAC;AACX,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAM9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,qBAAa,uBAAwB,SAAQ,gBAAgB,CAAC,gBAAgB,CAAC;IAEvE,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,UAAU;IAGlB,OAAO,CAAC,oBAAoB,CAAC;gBAJrB,UAAU,EAAE,qBAAqB,EACjC,UAAU,EAAE,qBAAqB,EACzC,QAAQ,EAAE,OAAO,EACjB,kBAAkB,CAAC,EAAE,kBAAkB,EAC/B,oBAAoB,CAAC,EAAE,oBAAoB,YAAA;IAKhD,aAAa,IAAI,qBAAqB;IAIhC,mCAAmC,CAC5C,KAAK,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC;IAYH,wCAAwC,CACjD,MAAM,EAAE,gBAAgB,EAAE,GAC3B,OAAO,CAAC,IAAI,CAAC;IAsBV,kBAAkB,CACpB,KAAK,EAAE,gBAAgB,EACvB,OAAO,CAAC,EAAE,cAAc,GACzB,OAAO,CAAC,gBAAgB,CAAC;IAqEtB,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAwEjF,iBAAiB;CA0MlC"}
|
|
@@ -17,21 +17,23 @@ class TransactionEventHandler extends BaseEventHandler_1.BaseEventHandler {
|
|
|
17
17
|
}
|
|
18
18
|
async handleClientEventFromRemoteListener(event) {
|
|
19
19
|
const existingModel = await this.modelStore.getByStreamId(event.streamId);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
await this.modelStore.save(model);
|
|
23
|
-
this.modelChangeEmitter?.emit("TransactionModel", model);
|
|
20
|
+
if (this.shouldSkipSave(existingModel, event)) {
|
|
21
|
+
return;
|
|
24
22
|
}
|
|
23
|
+
const model = event.apply(existingModel);
|
|
24
|
+
await this.modelStore.save(model);
|
|
25
|
+
this.modelChangeEmitter?.emit("TransactionModel", model);
|
|
25
26
|
}
|
|
26
27
|
async handleClientEventsFromRemoteListenerBulk(events) {
|
|
27
28
|
const updatedModels = [];
|
|
28
29
|
for (const event of events) {
|
|
29
30
|
const existingModel = await this.modelStore.getByStreamId(event.streamId);
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
await this.modelStore.save(model);
|
|
33
|
-
updatedModels.push(model);
|
|
31
|
+
if (this.shouldSkipSave(existingModel, event)) {
|
|
32
|
+
continue;
|
|
34
33
|
}
|
|
34
|
+
const model = event.apply(existingModel);
|
|
35
|
+
await this.modelStore.save(model);
|
|
36
|
+
updatedModels.push(model);
|
|
35
37
|
}
|
|
36
38
|
if (this.modelChangeEmitter && updatedModels.length > 0) {
|
|
37
39
|
for (const model of updatedModels) {
|
|
@@ -39,6 +41,61 @@ class TransactionEventHandler extends BaseEventHandler_1.BaseEventHandler {
|
|
|
39
41
|
}
|
|
40
42
|
}
|
|
41
43
|
}
|
|
44
|
+
async handleBackendEvent(event, context) {
|
|
45
|
+
const logData = {
|
|
46
|
+
requestId: context?.requestId,
|
|
47
|
+
streamId: event.streamId,
|
|
48
|
+
triggerEventVersion: event.version,
|
|
49
|
+
};
|
|
50
|
+
context?.logger?.info("[TransactionEventHandler] handleBackendEvent started", logData);
|
|
51
|
+
const events = await this.eventStore.getAllEventsByStreamId(event.streamId);
|
|
52
|
+
events.sort((a, b) => a.version - b.version);
|
|
53
|
+
context?.logger?.info("[TransactionEventHandler] Retrieved and sorted events", {
|
|
54
|
+
...logData,
|
|
55
|
+
totalEvents: events.length,
|
|
56
|
+
});
|
|
57
|
+
const existingModel = await this.modelStore.getByStreamIdWhereDeletedIsFalse(event.streamId);
|
|
58
|
+
const currentVersion = existingModel?.version ?? 0;
|
|
59
|
+
context?.logger?.info("[TransactionEventHandler] Current model state", {
|
|
60
|
+
...logData,
|
|
61
|
+
currentVersion,
|
|
62
|
+
modelExists: !!existingModel,
|
|
63
|
+
});
|
|
64
|
+
const eventsToProcess = events.filter(e => e.version > currentVersion);
|
|
65
|
+
if (eventsToProcess.length === 0) {
|
|
66
|
+
context?.logger?.info("[TransactionEventHandler] No new events to process", {
|
|
67
|
+
...logData,
|
|
68
|
+
currentVersion,
|
|
69
|
+
});
|
|
70
|
+
return existingModel;
|
|
71
|
+
}
|
|
72
|
+
let lastProcessedVersion = currentVersion;
|
|
73
|
+
let finalModel = existingModel;
|
|
74
|
+
for (const evt of eventsToProcess) {
|
|
75
|
+
if (evt.version !== lastProcessedVersion + 1) {
|
|
76
|
+
context?.logger?.warn("[TransactionEventHandler] Version gap detected, stopping", {
|
|
77
|
+
...logData,
|
|
78
|
+
expectedVersion: lastProcessedVersion + 1,
|
|
79
|
+
actualVersion: evt.version,
|
|
80
|
+
lastProcessedVersion,
|
|
81
|
+
});
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
context?.logger?.info("[TransactionEventHandler] Processing event", {
|
|
85
|
+
...logData,
|
|
86
|
+
eventVersion: evt.version,
|
|
87
|
+
eventType: evt.constructor.name,
|
|
88
|
+
});
|
|
89
|
+
finalModel = await this.handleEvent(evt, context);
|
|
90
|
+
lastProcessedVersion = evt.version;
|
|
91
|
+
}
|
|
92
|
+
context?.logger?.info("[TransactionEventHandler] handleBackendEvent completed", {
|
|
93
|
+
...logData,
|
|
94
|
+
finalVersion: lastProcessedVersion,
|
|
95
|
+
eventsProcessed: lastProcessedVersion - currentVersion,
|
|
96
|
+
});
|
|
97
|
+
return finalModel ?? existingModel;
|
|
98
|
+
}
|
|
42
99
|
async handleEvent(event, context) {
|
|
43
100
|
const eventType = event.constructor.name;
|
|
44
101
|
const logData = {
|
|
@@ -56,40 +113,39 @@ class TransactionEventHandler extends BaseEventHandler_1.BaseEventHandler {
|
|
|
56
113
|
existingModelFound: !!existingModel,
|
|
57
114
|
existingModelVersion: existingModel?.version,
|
|
58
115
|
});
|
|
116
|
+
if (this.shouldSkipSave(existingModel, event)) {
|
|
117
|
+
context?.logger?.warn("[TransactionEventHandler] Skipping save due to version conflict", {
|
|
118
|
+
...logData,
|
|
119
|
+
existingVersion: existingModel?.version,
|
|
120
|
+
eventVersion: event.version,
|
|
121
|
+
});
|
|
122
|
+
context?.logger?.info("[TransactionEventHandler] Event processing completed", logData);
|
|
123
|
+
return existingModel;
|
|
124
|
+
}
|
|
59
125
|
const model = event.apply(existingModel);
|
|
60
126
|
context?.logger?.info("[TransactionEventHandler] Event applied to model", {
|
|
61
127
|
...logData,
|
|
62
128
|
newModelVersion: model.version,
|
|
63
|
-
shouldSkipSave: this.shouldSkipSave(existingModel, model),
|
|
64
129
|
});
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
await this.activityEventHandler.createActivityLog(event, existingModel, model);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
context?.logger?.info("[TransactionEventHandler] Creating mirror event", {
|
|
81
|
-
...logData,
|
|
82
|
-
recipientUserId: model.recipientUserId,
|
|
83
|
-
});
|
|
84
|
-
await this.createMirrorEvent(event, model, context);
|
|
130
|
+
await this.modelStore.save(model);
|
|
131
|
+
context?.logger?.info("[TransactionEventHandler] Model saved successfully", {
|
|
132
|
+
...logData,
|
|
133
|
+
modelVersion: model.version,
|
|
134
|
+
isClient: this.isClient,
|
|
135
|
+
});
|
|
136
|
+
if (this.isClient) {
|
|
137
|
+
await this.eventStore.addEvent(event);
|
|
138
|
+
this.modelChangeEmitter?.emit("TransactionModel", model);
|
|
139
|
+
if (this.activityEventHandler) {
|
|
140
|
+
await this.activityEventHandler.createActivityLog(event, existingModel, model);
|
|
85
141
|
}
|
|
86
142
|
}
|
|
87
143
|
else {
|
|
88
|
-
context?.logger?.
|
|
144
|
+
context?.logger?.info("[TransactionEventHandler] Creating mirror event", {
|
|
89
145
|
...logData,
|
|
90
|
-
|
|
91
|
-
newVersion: model.version,
|
|
146
|
+
recipientUserId: model.recipientUserId,
|
|
92
147
|
});
|
|
148
|
+
await this.createMirrorEvent(event, model, context);
|
|
93
149
|
}
|
|
94
150
|
context?.logger?.info("[TransactionEventHandler] Event processing completed", logData);
|
|
95
151
|
return model;
|
|
@@ -234,25 +290,24 @@ class TransactionEventHandler extends BaseEventHandler_1.BaseEventHandler {
|
|
|
234
290
|
recipientUserId: transactionModel.recipientUserId,
|
|
235
291
|
});
|
|
236
292
|
await this.eventStore.addEvent(mirrorEvent);
|
|
237
|
-
|
|
238
|
-
if (!this.shouldSkipSave(existingMirrorModel, updatedModel)) {
|
|
239
|
-
await this.modelStore.save(updatedModel);
|
|
240
|
-
context?.logger?.info("[TransactionEventHandler] Mirror model saved successfully", {
|
|
241
|
-
requestId: context?.requestId,
|
|
242
|
-
mirrorStreamId,
|
|
243
|
-
mirrorVersion: updatedModel.version,
|
|
244
|
-
});
|
|
245
|
-
if (this.activityEventHandler) {
|
|
246
|
-
await this.activityEventHandler.createActivityLog(mirrorEvent, existingMirrorModel, updatedModel);
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
else {
|
|
293
|
+
if (this.shouldSkipSave(existingMirrorModel, mirrorEvent)) {
|
|
250
294
|
context?.logger?.warn("[TransactionEventHandler] Skipping mirror save due to version conflict", {
|
|
251
295
|
requestId: context?.requestId,
|
|
252
296
|
mirrorStreamId,
|
|
253
297
|
existingVersion: existingMirrorModel?.version,
|
|
254
|
-
|
|
298
|
+
eventVersion: mirrorEvent.version,
|
|
255
299
|
});
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
const updatedModel = mirrorEvent.apply(existingMirrorModel);
|
|
303
|
+
await this.modelStore.save(updatedModel);
|
|
304
|
+
context?.logger?.info("[TransactionEventHandler] Mirror model saved successfully", {
|
|
305
|
+
requestId: context?.requestId,
|
|
306
|
+
mirrorStreamId,
|
|
307
|
+
mirrorVersion: updatedModel.version,
|
|
308
|
+
});
|
|
309
|
+
if (this.activityEventHandler) {
|
|
310
|
+
await this.activityEventHandler.createActivityLog(mirrorEvent, existingMirrorModel, updatedModel);
|
|
256
311
|
}
|
|
257
312
|
}
|
|
258
313
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionEventHandler.js","sourceRoot":"","sources":["../src/TransactionEventHandler.ts"],"names":[],"mappings":";;;AAAA,wBAaW;AACX,yDAAsD;AAEtD,2DAGgC;AAChC,+BAAoC;
|
|
1
|
+
{"version":3,"file":"TransactionEventHandler.js","sourceRoot":"","sources":["../src/TransactionEventHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { UserCreated, UserEvent, UserEventStore, UserModel, UserModelStore } fro
|
|
|
2
2
|
import { BaseEventHandler } from "./BaseEventHandler";
|
|
3
3
|
import { ActivityEventHandler } from "./ActivityEventHandler";
|
|
4
4
|
import { ModelChangeEmitter } from "./ModelChangeEmitter";
|
|
5
|
+
import { LoggingContext } from "./common/LoggingContext";
|
|
5
6
|
export declare class UserEventHandler extends BaseEventHandler<UserEvent> {
|
|
6
7
|
private modelStore;
|
|
7
8
|
private eventStore;
|
|
@@ -10,7 +11,8 @@ export declare class UserEventHandler extends BaseEventHandler<UserEvent> {
|
|
|
10
11
|
getModelStore(): UserModelStore;
|
|
11
12
|
handleClientEventFromRemoteListener(event: UserEvent): Promise<void>;
|
|
12
13
|
handleClientEventsFromRemoteListenerBulk(events: UserEvent[]): Promise<void>;
|
|
13
|
-
|
|
14
|
+
handleBackendEvent(event: UserEvent, context?: LoggingContext): Promise<UserModel>;
|
|
15
|
+
handleEvent(event: UserEvent, context?: LoggingContext): Promise<UserModel>;
|
|
14
16
|
handleUserCreatedBackend(event: UserCreated): Promise<UserModel>;
|
|
15
17
|
}
|
|
16
18
|
//# sourceMappingURL=UserEventHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserEventHandler.d.ts","sourceRoot":"","sources":["../src/UserEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,WAAW,EACX,SAAS,EACT,cAAc,EACd,SAAS,EACT,cAAc,EACjB,MAAM,GAAG,CAAC;AACX,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"UserEventHandler.d.ts","sourceRoot":"","sources":["../src/UserEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,WAAW,EACX,SAAS,EACT,cAAc,EACd,SAAS,EACT,cAAc,EACjB,MAAM,GAAG,CAAC;AACX,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,qBAAa,gBAAiB,SAAQ,gBAAgB,CAAC,SAAS,CAAC;IAEzD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,UAAU;IAGlB,OAAO,CAAC,oBAAoB,CAAC;gBAJrB,UAAU,EAAE,cAAc,EAC1B,UAAU,EAAE,cAAc,EAClC,QAAQ,EAAE,OAAO,EACjB,kBAAkB,CAAC,EAAE,kBAAkB,EAC/B,oBAAoB,CAAC,EAAE,oBAAoB,YAAA;IAKhD,aAAa,IAAI,cAAc;IAIzB,mCAAmC,CAC5C,KAAK,EAAE,SAAS,GACjB,OAAO,CAAC,IAAI,CAAC;IAYH,wCAAwC,CACjD,MAAM,EAAE,SAAS,EAAE,GACpB,OAAO,CAAC,IAAI,CAAC;IAsBV,kBAAkB,CACpB,KAAK,EAAE,SAAS,EAChB,OAAO,CAAC,EAAE,cAAc,GACzB,OAAO,CAAC,SAAS,CAAC;IAIf,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IA8B3E,wBAAwB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;CAyDzE"}
|
package/dist/UserEventHandler.js
CHANGED
|
@@ -16,21 +16,23 @@ class UserEventHandler extends BaseEventHandler_1.BaseEventHandler {
|
|
|
16
16
|
}
|
|
17
17
|
async handleClientEventFromRemoteListener(event) {
|
|
18
18
|
const existingModel = await this.modelStore.getByStreamId(event.streamId);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
await this.modelStore.save(updatedModel);
|
|
22
|
-
this.modelChangeEmitter?.emit("UserModel", updatedModel);
|
|
19
|
+
if (this.shouldSkipSave(existingModel, event)) {
|
|
20
|
+
return;
|
|
23
21
|
}
|
|
22
|
+
const updatedModel = event.apply(existingModel);
|
|
23
|
+
await this.modelStore.save(updatedModel);
|
|
24
|
+
this.modelChangeEmitter?.emit("UserModel", updatedModel);
|
|
24
25
|
}
|
|
25
26
|
async handleClientEventsFromRemoteListenerBulk(events) {
|
|
26
27
|
const updatedModels = [];
|
|
27
28
|
for (const event of events) {
|
|
28
29
|
const existingModel = await this.modelStore.getByStreamId(event.streamId);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
await this.modelStore.save(updatedModel);
|
|
32
|
-
updatedModels.push(updatedModel);
|
|
30
|
+
if (this.shouldSkipSave(existingModel, event)) {
|
|
31
|
+
continue;
|
|
33
32
|
}
|
|
33
|
+
const updatedModel = event.apply(existingModel);
|
|
34
|
+
await this.modelStore.save(updatedModel);
|
|
35
|
+
updatedModels.push(updatedModel);
|
|
34
36
|
}
|
|
35
37
|
if (this.modelChangeEmitter && updatedModels.length > 0) {
|
|
36
38
|
for (const model of updatedModels) {
|
|
@@ -38,6 +40,9 @@ class UserEventHandler extends BaseEventHandler_1.BaseEventHandler {
|
|
|
38
40
|
}
|
|
39
41
|
}
|
|
40
42
|
}
|
|
43
|
+
async handleBackendEvent(event, context) {
|
|
44
|
+
return this.handleEvent(event, context);
|
|
45
|
+
}
|
|
41
46
|
async handleEvent(event, context) {
|
|
42
47
|
const eventType = event.constructor.name;
|
|
43
48
|
if (eventType === "UserCreated") {
|
|
@@ -45,15 +50,16 @@ class UserEventHandler extends BaseEventHandler_1.BaseEventHandler {
|
|
|
45
50
|
}
|
|
46
51
|
else {
|
|
47
52
|
const existingModel = await this.modelStore.getByStreamIdWhereDeletedIsFalse(event.streamId);
|
|
53
|
+
if (this.shouldSkipSave(existingModel, event)) {
|
|
54
|
+
return existingModel;
|
|
55
|
+
}
|
|
48
56
|
const updatedModel = event.apply(existingModel);
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
await this.activityEventHandler.createActivityLog(event, existingModel, updatedModel);
|
|
56
|
-
}
|
|
57
|
+
await this.modelStore.save(updatedModel);
|
|
58
|
+
if (this.isClient) {
|
|
59
|
+
await this.eventStore.addEvent(event);
|
|
60
|
+
this.modelChangeEmitter?.emit("UserModel", updatedModel);
|
|
61
|
+
if (this.activityEventHandler) {
|
|
62
|
+
await this.activityEventHandler.createActivityLog(event, existingModel, updatedModel);
|
|
57
63
|
}
|
|
58
64
|
}
|
|
59
65
|
return updatedModel;
|
|
@@ -87,18 +93,20 @@ class UserEventHandler extends BaseEventHandler_1.BaseEventHandler {
|
|
|
87
93
|
systemGenerated: event.systemGenerated,
|
|
88
94
|
});
|
|
89
95
|
await this.eventStore.addEvent(mergeEvent);
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
await this.modelStore.save(updatedModel);
|
|
96
|
+
if (this.shouldSkipSave(placeholderUser, mergeEvent)) {
|
|
97
|
+
return placeholderUser;
|
|
93
98
|
}
|
|
99
|
+
const updatedModel = mergeEvent.apply(placeholderUser);
|
|
100
|
+
await this.modelStore.save(updatedModel);
|
|
94
101
|
return updatedModel;
|
|
95
102
|
}
|
|
96
103
|
await this.eventStore.addEvent(event);
|
|
97
104
|
const existingModel = await this.modelStore.getByStreamIdWhereDeletedIsFalse(event.streamId);
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
await this.modelStore.save(updatedModel);
|
|
105
|
+
if (this.shouldSkipSave(existingModel, event)) {
|
|
106
|
+
return existingModel;
|
|
101
107
|
}
|
|
108
|
+
const updatedModel = event.apply(existingModel);
|
|
109
|
+
await this.modelStore.save(updatedModel);
|
|
102
110
|
return updatedModel;
|
|
103
111
|
}
|
|
104
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserEventHandler.js","sourceRoot":"","sources":["../src/UserEventHandler.ts"],"names":[],"mappings":";;;AAAA,wBAQW;AACX,yDAAsD;AAEtD,+BAAoC;
|
|
1
|
+
{"version":3,"file":"UserEventHandler.js","sourceRoot":"","sources":["../src/UserEventHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { TransactionEvent, TransactionEventStore } from "../..";
|
|
|
2
2
|
export declare class IMTransactionEventStore implements TransactionEventStore {
|
|
3
3
|
private events;
|
|
4
4
|
addEvent(event: TransactionEvent): Promise<void>;
|
|
5
|
+
getAllEventsByStreamId(streamId: string): Promise<TransactionEvent[]>;
|
|
5
6
|
getEvents(): TransactionEvent[];
|
|
6
7
|
getAll(): TransactionEvent[];
|
|
7
8
|
getEventsByStreamId(streamId: string): TransactionEvent[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IMTransactionEventStore.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/IMTransactionEventStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AAEhE,qBAAa,uBAAwB,YAAW,qBAAqB;IACjE,OAAO,CAAC,MAAM,CAA0B;IAElC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"IMTransactionEventStore.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/IMTransactionEventStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AAEhE,qBAAa,uBAAwB,YAAW,qBAAqB;IACjE,OAAO,CAAC,MAAM,CAA0B;IAElC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAI3E,SAAS,IAAI,gBAAgB,EAAE;IAI/B,MAAM,IAAI,gBAAgB,EAAE;IAI5B,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAIzD,oBAAoB,IAAI,IAAI;IAI5B,KAAK,IAAI,IAAI;CAGhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IMTransactionEventStore.js","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/IMTransactionEventStore.ts"],"names":[],"mappings":";;;AAEA,MAAa,uBAAuB;IAApC;QACY,WAAM,GAAuB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"IMTransactionEventStore.js","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/IMTransactionEventStore.ts"],"names":[],"mappings":";;;AAEA,MAAa,uBAAuB;IAApC;QACY,WAAM,GAAuB,EAAE,CAAC;IA6B5C,CAAC;IA3BG,KAAK,CAAC,QAAQ,CAAC,KAAuB;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,QAAgB;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IACtE,CAAC;IAED,SAAS;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC;IAED,mBAAmB,CAAC,QAAgB;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IACtE,CAAC;IAED,oBAAoB;QAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC;IACxE,CAAC;IAED,KAAK;QACD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;CACJ;AA9BD,0DA8BC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TransactionEvent } from "../common/DomainEvents";
|
|
2
2
|
export interface TransactionEventStore {
|
|
3
3
|
addEvent(event: TransactionEvent): Promise<void>;
|
|
4
|
+
getAllEventsByStreamId(streamId: string): Promise<TransactionEvent[]>;
|
|
4
5
|
}
|
|
5
6
|
//# sourceMappingURL=TransactionEventStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionEventStore.d.ts","sourceRoot":"","sources":["../../src/store/TransactionEventStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"TransactionEventStore.d.ts","sourceRoot":"","sources":["../../src/store/TransactionEventStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;CACzE"}
|
package/package.json
CHANGED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export declare class RetryError extends Error {
|
|
2
|
-
readonly versionGap?: number | undefined;
|
|
3
|
-
readonly delayMs?: number | undefined;
|
|
4
|
-
constructor(message: string, versionGap?: number | undefined, delayMs?: number | undefined);
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=RetryError.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RetryError.d.ts","sourceRoot":"","sources":["../../src/errors/RetryError.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAW,SAAQ,KAAK;aAGb,UAAU,CAAC,EAAE,MAAM;aACnB,OAAO,CAAC,EAAE,MAAM;gBAFhC,OAAO,EAAE,MAAM,EACC,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,OAAO,CAAC,EAAE,MAAM,YAAA;CAKvC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RetryError = void 0;
|
|
4
|
-
class RetryError extends Error {
|
|
5
|
-
constructor(message, versionGap, delayMs) {
|
|
6
|
-
super(message);
|
|
7
|
-
this.versionGap = versionGap;
|
|
8
|
-
this.delayMs = delayMs;
|
|
9
|
-
this.name = "RetryError";
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
exports.RetryError = RetryError;
|
|
13
|
-
//# sourceMappingURL=RetryError.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RetryError.js","sourceRoot":"","sources":["../../src/errors/RetryError.ts"],"names":[],"mappings":";;;AAAA,MAAa,UAAW,SAAQ,KAAK;IACjC,YACI,OAAe,EACC,UAAmB,EACnB,OAAgB;QAEhC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,eAAU,GAAV,UAAU,CAAS;QACnB,YAAO,GAAP,OAAO,CAAS;QAGhC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC7B,CAAC;CACJ;AATD,gCASC"}
|
package/dist/utils/tryLater.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { LoggingContext } from "../common/LoggingContext";
|
|
2
|
-
export interface TryLaterOptions {
|
|
3
|
-
shouldRetry: boolean;
|
|
4
|
-
delayMs: number;
|
|
5
|
-
versionGap: number;
|
|
6
|
-
maxRetries: number;
|
|
7
|
-
currentAttempt: number;
|
|
8
|
-
context?: LoggingContext;
|
|
9
|
-
logContext?: Record<string, any>;
|
|
10
|
-
}
|
|
11
|
-
export declare function tryLater(options: TryLaterOptions): Promise<void>;
|
|
12
|
-
//# sourceMappingURL=tryLater.d.ts.map
|