@kronos-ts/eventsourcing 0.2.1 → 0.2.3
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/append.d.ts.map +1 -1
- package/dist/append.js +14 -2
- package/dist/append.js.map +1 -1
- package/dist/schedule.d.ts.map +1 -1
- package/dist/schedule.js +1 -0
- package/dist/schedule.js.map +1 -1
- package/package.json +4 -4
- package/src/append.ts +17 -1
- package/src/schedule.ts +1 -0
package/dist/append.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"append.d.ts","sourceRoot":"","sources":["../src/append.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"append.d.ts","sourceRoot":"","sources":["../src/append.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,QAAQ,EACb,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAA;AAO1B,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAExF,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC7B,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAC3E,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;CAChG;AAOD,+DAA+D;AAC/D,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,YAAY,EAAE,CAAiC,CAAA;AAE7F,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,KAAK,CAAC;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CACzE,CAAA;AAE9B,2EAA2E;AAC3E,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAA6B,CAAA;AAEpG,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CACxD,CAAA;AAE7B;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,EAAE,cA+DD,CAAA"}
|
package/dist/append.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { resourceKey, qualifiedNameToString, generateIdentifier, } from "@kronos-ts/common";
|
|
1
|
+
import { resourceKey, qualifiedNameToString, generateIdentifier, mergeMetadata, } from "@kronos-ts/common";
|
|
2
2
|
import { getResource, computeIfAbsent, requireInvocationPhase, } from "@kronos-ts/messaging/processing-state";
|
|
3
|
+
import { CORRELATION_DATA_KEY } from "@kronos-ts/messaging/correlation-data";
|
|
3
4
|
// ---------------------------------------------------------------------------
|
|
4
5
|
// Resource keys (owned by append — open-question #1 resolved: keys live with
|
|
5
6
|
// the helper that writes them)
|
|
@@ -25,12 +26,23 @@ export const append = ((eventDescriptor, eventPayload, eventMetadata) => {
|
|
|
25
26
|
const state = requireInvocationPhase(); // D-43 mutator guard
|
|
26
27
|
const events = computeIfAbsent(BUFFERED_EVENTS_KEY, () => []);
|
|
27
28
|
const tags = eventDescriptor.tags ? eventDescriptor.tags(eventPayload) : [];
|
|
29
|
+
// Apply the active UnitOfWork's correlation data to the appended event so it
|
|
30
|
+
// carries the correct correlationId/causationId of the message currently
|
|
31
|
+
// being handled. Merges over the base metadata (explicit arg, else UoW
|
|
32
|
+
// metadata). No-op when no correlation data is set — keeps events untouched
|
|
33
|
+
// for apps that don't configure correlation providers.
|
|
34
|
+
const baseMetadata = eventMetadata ?? state.metadata; // fallback to UoW metadata when caller omits
|
|
35
|
+
const correlationData = getResource(CORRELATION_DATA_KEY);
|
|
36
|
+
const metadata = correlationData && Object.keys(correlationData).length > 0
|
|
37
|
+
? mergeMetadata(baseMetadata, correlationData)
|
|
38
|
+
: baseMetadata;
|
|
28
39
|
const eventMessage = {
|
|
40
|
+
kind: "event",
|
|
29
41
|
identifier: generateIdentifier(),
|
|
30
42
|
name: eventDescriptor.name,
|
|
31
43
|
version: eventDescriptor.version,
|
|
32
44
|
payload: eventPayload,
|
|
33
|
-
metadata
|
|
45
|
+
metadata,
|
|
34
46
|
timestamp: Date.now(),
|
|
35
47
|
tags,
|
|
36
48
|
};
|
package/dist/append.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"append.js","sourceRoot":"","sources":["../src/append.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"append.js","sourceRoot":"","sources":["../src/append.ts"],"names":[],"mappings":"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"}
|
package/dist/schedule.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../src/schedule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,QAAQ,EAAe,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpG,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EACV,eAAe,EAEf,cAAc,EACd,aAAa,EACb,YAAY,EACb,MAAM,sBAAsB,CAAA;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,cAAc,CAAiC,CAAA;AAE7F,iEAAiE;AACjE,MAAM,WAAW,gBAAgB;IAC/B,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IACvG,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAClB,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EACzB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EACnB,EAAE,EAAE,IAAI,EACR,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,aAAa,CAAC,CAAA;CAC1B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../src/schedule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,QAAQ,EAAe,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpG,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EACV,eAAe,EAEf,cAAc,EACd,aAAa,EACb,YAAY,EACb,MAAM,sBAAsB,CAAA;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,cAAc,CAAiC,CAAA;AAE7F,iEAAiE;AACjE,MAAM,WAAW,gBAAgB;IAC/B,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IACvG,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAClB,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EACzB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EACnB,EAAE,EAAE,IAAI,EACR,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,aAAa,CAAC,CAAA;CAC1B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,QAAQ,EAAE,gBA8BD,CAAA;AAEtB,uEAAuE;AACvE,MAAM,WAAW,qBAAqB;IACpC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IAC9G,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAClB,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EACzB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,aAAa,CAAC,CAAA;CAC1B;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,qBAaD,CAAA;AAE3B;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAU,OAAO,aAAa,KAAG,OAAO,CAAC,YAAY,CAK/E,CAAA"}
|
package/dist/schedule.js
CHANGED
|
@@ -38,6 +38,7 @@ export const schedule = (async (event, payload, at, metadata) => {
|
|
|
38
38
|
throw new Error(`schedule: \`at\` must be a valid Date, received ${String(at)}`);
|
|
39
39
|
}
|
|
40
40
|
const eventMessage = {
|
|
41
|
+
kind: "event",
|
|
41
42
|
identifier: generateIdentifier(),
|
|
42
43
|
name: event.name,
|
|
43
44
|
version: event.version,
|
package/dist/schedule.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../src/schedule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAiB,WAAW,EAAoB,MAAM,mBAAmB,CAAA;AACpG,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAA;AAU9E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAgC,WAAW,CAAC,gBAAgB,CAAC,CAAA;AAa7F;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAqB,CAAC,KAAK,EAC9C,KAAyB,EACzB,OAAmB,EACnB,EAAQ,EACR,QAAmB,EACK,EAAE;IAC1B,MAAM,KAAK,GAAG,sBAAsB,EAAE,CAAA,CAAC,qBAAqB;IAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAA+B,CAAA;IAC/F,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAEhE,2EAA2E;IAC3E,2EAA2E;IAC3E,0EAA0E;IAC1E,6EAA6E;IAC7E,sDAAsD;IACtD,IAAI,CAAC,CAAC,EAAE,YAAY,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,mDAAmD,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAClF,CAAC;IAED,MAAM,YAAY,GAAiB;QACjC,UAAU,EAAE,kBAAkB,EAAE;QAChC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO;QACP,QAAQ,EAAE,QAAQ,IAAI,KAAK,CAAC,QAAQ;QACpC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;KAC5C,CAAA;IACD,OAAO,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;AAC7C,CAAC,CAAqB,CAAA;AAatB;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAA0B,CAAC,KAAK,EACxD,KAA2B,EAC3B,OAAgB,EAChB,OAAe,EACf,QAAmB,EACnB,EAAE;IACF,6EAA6E;IAC7E,6EAA6E;IAC7E,uDAAuD;IACvD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,gEAAgE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACpG,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,EAAE,QAAoB,CAAC,CAAA;AACvF,CAAC,CAA0B,CAAA;AAE3B;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,KAAoB,EAAyB,EAAE;IAClF,MAAM,KAAK,GAAG,sBAAsB,EAAE,CAAA,CAAC,qBAAqB;IAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAA+B,CAAA;IAC/F,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAChE,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAChC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../src/schedule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAiB,WAAW,EAAoB,MAAM,mBAAmB,CAAA;AACpG,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAA;AAU9E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAgC,WAAW,CAAC,gBAAgB,CAAC,CAAA;AAa7F;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAqB,CAAC,KAAK,EAC9C,KAAyB,EACzB,OAAmB,EACnB,EAAQ,EACR,QAAmB,EACK,EAAE;IAC1B,MAAM,KAAK,GAAG,sBAAsB,EAAE,CAAA,CAAC,qBAAqB;IAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAA+B,CAAA;IAC/F,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAEhE,2EAA2E;IAC3E,2EAA2E;IAC3E,0EAA0E;IAC1E,6EAA6E;IAC7E,sDAAsD;IACtD,IAAI,CAAC,CAAC,EAAE,YAAY,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,mDAAmD,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAClF,CAAC;IAED,MAAM,YAAY,GAAiB;QACjC,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,kBAAkB,EAAE;QAChC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO;QACP,QAAQ,EAAE,QAAQ,IAAI,KAAK,CAAC,QAAQ;QACpC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;KAC5C,CAAA;IACD,OAAO,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;AAC7C,CAAC,CAAqB,CAAA;AAatB;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAA0B,CAAC,KAAK,EACxD,KAA2B,EAC3B,OAAgB,EAChB,OAAe,EACf,QAAmB,EACnB,EAAE;IACF,6EAA6E;IAC7E,6EAA6E;IAC7E,uDAAuD;IACvD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,gEAAgE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACpG,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,EAAE,QAAoB,CAAC,CAAA;AACvF,CAAC,CAA0B,CAAA;AAE3B;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,KAAoB,EAAyB,EAAE;IAClF,MAAM,KAAK,GAAG,sBAAsB,EAAE,CAAA,CAAC,qBAAqB;IAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAA+B,CAAA;IAC/F,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAChE,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAChC,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kronos-ts/eventsourcing",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "Event sourcing for Kronos — dynamic-consistency-boundary event store with load/append.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -48,11 +48,11 @@
|
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"@kronos-ts/common": "0.1.1",
|
|
51
|
-
"@kronos-ts/messaging": "0.
|
|
52
|
-
"@kronos-ts/modelling": "0.2.
|
|
51
|
+
"@kronos-ts/messaging": "0.7.0",
|
|
52
|
+
"@kronos-ts/modelling": "0.2.6",
|
|
53
53
|
"zod": "^4.3.6"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@kronos-ts/app": "0.
|
|
56
|
+
"@kronos-ts/app": "0.4.1"
|
|
57
57
|
}
|
|
58
58
|
}
|
package/src/append.ts
CHANGED
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
resourceKey,
|
|
3
3
|
qualifiedNameToString,
|
|
4
4
|
generateIdentifier,
|
|
5
|
+
mergeMetadata,
|
|
5
6
|
type Metadata,
|
|
6
7
|
type ResourceKey,
|
|
7
8
|
} from "@kronos-ts/common"
|
|
@@ -10,6 +11,7 @@ import {
|
|
|
10
11
|
computeIfAbsent,
|
|
11
12
|
requireInvocationPhase,
|
|
12
13
|
} from "@kronos-ts/messaging/processing-state"
|
|
14
|
+
import { CORRELATION_DATA_KEY } from "@kronos-ts/messaging/correlation-data"
|
|
13
15
|
import type { z } from "zod"
|
|
14
16
|
import type { EventDescriptor, EventMessage, EventCriteria } from "@kronos-ts/messaging"
|
|
15
17
|
|
|
@@ -55,12 +57,26 @@ export const append: AppendFunction = ((
|
|
|
55
57
|
const state = requireInvocationPhase() // D-43 mutator guard
|
|
56
58
|
const events = computeIfAbsent(BUFFERED_EVENTS_KEY, () => [])
|
|
57
59
|
const tags = eventDescriptor.tags ? eventDescriptor.tags(eventPayload) : []
|
|
60
|
+
|
|
61
|
+
// Apply the active UnitOfWork's correlation data to the appended event so it
|
|
62
|
+
// carries the correct correlationId/causationId of the message currently
|
|
63
|
+
// being handled. Merges over the base metadata (explicit arg, else UoW
|
|
64
|
+
// metadata). No-op when no correlation data is set — keeps events untouched
|
|
65
|
+
// for apps that don't configure correlation providers.
|
|
66
|
+
const baseMetadata = eventMetadata ?? state.metadata // fallback to UoW metadata when caller omits
|
|
67
|
+
const correlationData = getResource(CORRELATION_DATA_KEY)
|
|
68
|
+
const metadata =
|
|
69
|
+
correlationData && Object.keys(correlationData).length > 0
|
|
70
|
+
? mergeMetadata(baseMetadata, correlationData)
|
|
71
|
+
: baseMetadata
|
|
72
|
+
|
|
58
73
|
const eventMessage: EventMessage = {
|
|
74
|
+
kind: "event",
|
|
59
75
|
identifier: generateIdentifier(),
|
|
60
76
|
name: eventDescriptor.name,
|
|
61
77
|
version: eventDescriptor.version,
|
|
62
78
|
payload: eventPayload,
|
|
63
|
-
metadata
|
|
79
|
+
metadata,
|
|
64
80
|
timestamp: Date.now(),
|
|
65
81
|
tags,
|
|
66
82
|
}
|