@unchainedshop/events 3.1.15 → 4.0.0-rc.10
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/lib/EventDirector.d.ts +2 -14
- package/lib/EventDirector.d.ts.map +1 -1
- package/lib/EventDirector.js +0 -18
- package/lib/EventDirector.js.map +1 -1
- package/package.json +3 -3
- package/src/EventDirector.ts +2 -34
package/lib/EventDirector.d.ts
CHANGED
|
@@ -1,25 +1,13 @@
|
|
|
1
|
-
export
|
|
1
|
+
export interface RawPayloadType<T> {
|
|
2
2
|
payload: T;
|
|
3
|
-
|
|
4
|
-
userAgent?: string;
|
|
5
|
-
language?: string;
|
|
6
|
-
country?: string;
|
|
7
|
-
remoteAddress?: string;
|
|
8
|
-
referer?: string;
|
|
9
|
-
origin?: string;
|
|
10
|
-
userId?: string;
|
|
11
|
-
};
|
|
12
|
-
};
|
|
3
|
+
}
|
|
13
4
|
export interface EmitAdapter {
|
|
14
5
|
publish(eventName: string, data: RawPayloadType<Record<string, any>>): void;
|
|
15
6
|
subscribe(eventName: string, callback: (payload: RawPayloadType<Record<string, any>>) => void): void;
|
|
16
7
|
}
|
|
17
|
-
export type ContextNormalizerFunction = (context: any) => RawPayloadType<any>['context'];
|
|
18
|
-
export declare const defaultNormalizer: ContextNormalizerFunction;
|
|
19
8
|
export declare const EventDirector: {
|
|
20
9
|
registerEvents: (events: string[]) => void;
|
|
21
10
|
getRegisteredEvents: () => string[];
|
|
22
|
-
setContextNormalizer: (fn: ContextNormalizerFunction) => void;
|
|
23
11
|
setEmitAdapter: (adapter: EmitAdapter) => void;
|
|
24
12
|
getEmitAdapter: () => EmitAdapter;
|
|
25
13
|
setEmitHistoryAdapter: (adapter: EmitAdapter) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventDirector.d.ts","sourceRoot":"","sources":["../src/EventDirector.ts"],"names":[],"mappings":"AAIA,MAAM,
|
|
1
|
+
{"version":3,"file":"EventDirector.d.ts","sourceRoot":"","sources":["../src/EventDirector.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,OAAO,EAAE,CAAC,CAAC;CACZ;AACD,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;IAC5E,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;CACtG;AAQD,eAAO,MAAM,aAAa;6BACC,MAAM,EAAE,KAAG,IAAI;+BAMf,MAAM,EAAE;8BAIP,WAAW,KAAG,IAAI;0BAIxB,WAAW;qCAEE,WAAW,KAAG,IAAI;iCAIxB,WAAW;sBAEd,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC;gBAiB9D,CAAC,aAAa,MAAM,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,KAAG,IAAI;CAYxF,CAAC"}
|
package/lib/EventDirector.js
CHANGED
|
@@ -1,21 +1,9 @@
|
|
|
1
1
|
import { createLogger } from '@unchainedshop/logger';
|
|
2
2
|
const logger = createLogger('unchained:events');
|
|
3
|
-
export const defaultNormalizer = (context) => {
|
|
4
|
-
return {
|
|
5
|
-
userAgent: context?.getHeader?.('user-agent'),
|
|
6
|
-
language: context?.localeContext?.code,
|
|
7
|
-
country: context?.localeContext?.country,
|
|
8
|
-
remoteAddress: context?.remoteAddress,
|
|
9
|
-
referer: context?.req?.headers?.referer,
|
|
10
|
-
origin: context?.req?.headers?.origin,
|
|
11
|
-
userId: context?.userId,
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
3
|
const RegisteredEventsSet = new Set();
|
|
15
4
|
const RegisteredCallbacksSet = new Set();
|
|
16
5
|
let Adapter; // Public (customizable)
|
|
17
6
|
let HistoryAdapter; // (Per default: Core-events adapter to write into DB)
|
|
18
|
-
let ContextNormalizer = defaultNormalizer;
|
|
19
7
|
export const EventDirector = {
|
|
20
8
|
registerEvents: (events) => {
|
|
21
9
|
if (events.length) {
|
|
@@ -25,9 +13,6 @@ export const EventDirector = {
|
|
|
25
13
|
getRegisteredEvents: () => {
|
|
26
14
|
return Array.from(RegisteredEventsSet);
|
|
27
15
|
},
|
|
28
|
-
setContextNormalizer: (fn) => {
|
|
29
|
-
ContextNormalizer = fn;
|
|
30
|
-
},
|
|
31
16
|
setEmitAdapter: (adapter) => {
|
|
32
17
|
Adapter = adapter;
|
|
33
18
|
},
|
|
@@ -37,17 +22,14 @@ export const EventDirector = {
|
|
|
37
22
|
},
|
|
38
23
|
getEmitHistoryAdapter: () => HistoryAdapter,
|
|
39
24
|
emit: async (eventName, data) => {
|
|
40
|
-
const extractedContext = ContextNormalizer(null);
|
|
41
25
|
if (!RegisteredEventsSet.has(eventName))
|
|
42
26
|
throw new Error(`Event with ${eventName} is not registered`);
|
|
43
27
|
const payload = data || {};
|
|
44
28
|
Adapter?.publish(eventName, {
|
|
45
29
|
payload,
|
|
46
|
-
context: extractedContext,
|
|
47
30
|
});
|
|
48
31
|
HistoryAdapter?.publish(eventName, {
|
|
49
32
|
payload,
|
|
50
|
-
context: extractedContext,
|
|
51
33
|
});
|
|
52
34
|
logger.debug(`EventDirector -> Emitted ${eventName} with ${JSON.stringify(data)}`);
|
|
53
35
|
},
|
package/lib/EventDirector.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventDirector.js","sourceRoot":"","sources":["../src/EventDirector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,MAAM,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"EventDirector.js","sourceRoot":"","sources":["../src/EventDirector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,MAAM,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC;AAUhD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAE,CAAC;AACtC,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAE,CAAC;AAEzC,IAAI,OAAoB,CAAC,CAAC,wBAAwB;AAClD,IAAI,cAA2B,CAAC,CAAC,sDAAsD;AAEvF,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,cAAc,EAAE,CAAC,MAAgB,EAAQ,EAAE;QACzC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,mBAAmB,EAAE,GAAa,EAAE;QAClC,OAAO,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAa,CAAC;IACrD,CAAC;IAED,cAAc,EAAE,CAAC,OAAoB,EAAQ,EAAE;QAC7C,OAAO,GAAG,OAAO,CAAC;IACpB,CAAC;IAED,cAAc,EAAE,GAAgB,EAAE,CAAC,OAAO;IAE1C,qBAAqB,EAAE,CAAC,OAAoB,EAAQ,EAAE;QACpD,cAAc,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,qBAAqB,EAAE,GAAgB,EAAE,CAAC,cAAc;IAExD,IAAI,EAAE,KAAK,EAAE,SAAiB,EAAE,IAA0B,EAAiB,EAAE;QAC3E,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,cAAc,SAAS,oBAAoB,CAAC,CAAC;QAE/D,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAE3B,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE;YAC1B,OAAO;SACR,CAAC,CAAC;QAEH,cAAc,EAAE,OAAO,CAAC,SAAS,EAAE;YACjC,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,4BAA4B,SAAS,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,SAAS,EAAE,CAAI,SAAiB,EAAE,QAA8C,EAAQ,EAAE;QACxF,MAAM,mBAAmB,GAAG,GAAG,SAAS,GAAG,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,6DAA6D;QAEhI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,cAAc,SAAS,oBAAoB,CAAC,CAAC;QAE/D,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACrD,OAAO,EAAE,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACxC,cAAc,EAAE,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC/C,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unchainedshop/events",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0-rc.10",
|
|
4
4
|
"main": "lib/events-index.js",
|
|
5
5
|
"types": "lib/events-index.d.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -31,10 +31,10 @@
|
|
|
31
31
|
},
|
|
32
32
|
"homepage": "https://github.com/unchainedshop/unchained#readme",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@unchainedshop/logger": "^
|
|
34
|
+
"@unchainedshop/logger": "^4.0.0-rc.4"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@types/node": "^24.0.
|
|
37
|
+
"@types/node": "^24.0.13",
|
|
38
38
|
"tsx": "^4.20.3",
|
|
39
39
|
"typescript": "^5.8.3"
|
|
40
40
|
}
|
package/src/EventDirector.ts
CHANGED
|
@@ -2,43 +2,19 @@ import { createLogger } from '@unchainedshop/logger';
|
|
|
2
2
|
|
|
3
3
|
const logger = createLogger('unchained:events');
|
|
4
4
|
|
|
5
|
-
export
|
|
5
|
+
export interface RawPayloadType<T> {
|
|
6
6
|
payload: T;
|
|
7
|
-
|
|
8
|
-
userAgent?: string;
|
|
9
|
-
language?: string;
|
|
10
|
-
country?: string;
|
|
11
|
-
remoteAddress?: string;
|
|
12
|
-
referer?: string;
|
|
13
|
-
origin?: string;
|
|
14
|
-
userId?: string;
|
|
15
|
-
};
|
|
16
|
-
};
|
|
7
|
+
}
|
|
17
8
|
export interface EmitAdapter {
|
|
18
9
|
publish(eventName: string, data: RawPayloadType<Record<string, any>>): void;
|
|
19
10
|
subscribe(eventName: string, callback: (payload: RawPayloadType<Record<string, any>>) => void): void;
|
|
20
11
|
}
|
|
21
12
|
|
|
22
|
-
export type ContextNormalizerFunction = (context: any) => RawPayloadType<any>['context'];
|
|
23
|
-
|
|
24
|
-
export const defaultNormalizer: ContextNormalizerFunction = (context) => {
|
|
25
|
-
return {
|
|
26
|
-
userAgent: context?.getHeader?.('user-agent'),
|
|
27
|
-
language: context?.localeContext?.code,
|
|
28
|
-
country: context?.localeContext?.country,
|
|
29
|
-
remoteAddress: context?.remoteAddress,
|
|
30
|
-
referer: context?.req?.headers?.referer,
|
|
31
|
-
origin: context?.req?.headers?.origin,
|
|
32
|
-
userId: context?.userId,
|
|
33
|
-
};
|
|
34
|
-
};
|
|
35
|
-
|
|
36
13
|
const RegisteredEventsSet = new Set();
|
|
37
14
|
const RegisteredCallbacksSet = new Set();
|
|
38
15
|
|
|
39
16
|
let Adapter: EmitAdapter; // Public (customizable)
|
|
40
17
|
let HistoryAdapter: EmitAdapter; // (Per default: Core-events adapter to write into DB)
|
|
41
|
-
let ContextNormalizer = defaultNormalizer;
|
|
42
18
|
|
|
43
19
|
export const EventDirector = {
|
|
44
20
|
registerEvents: (events: string[]): void => {
|
|
@@ -51,10 +27,6 @@ export const EventDirector = {
|
|
|
51
27
|
return Array.from(RegisteredEventsSet) as string[];
|
|
52
28
|
},
|
|
53
29
|
|
|
54
|
-
setContextNormalizer: (fn: ContextNormalizerFunction): void => {
|
|
55
|
-
ContextNormalizer = fn;
|
|
56
|
-
},
|
|
57
|
-
|
|
58
30
|
setEmitAdapter: (adapter: EmitAdapter): void => {
|
|
59
31
|
Adapter = adapter;
|
|
60
32
|
},
|
|
@@ -68,8 +40,6 @@ export const EventDirector = {
|
|
|
68
40
|
getEmitHistoryAdapter: (): EmitAdapter => HistoryAdapter,
|
|
69
41
|
|
|
70
42
|
emit: async (eventName: string, data?: Record<string, any>): Promise<void> => {
|
|
71
|
-
const extractedContext = ContextNormalizer(null);
|
|
72
|
-
|
|
73
43
|
if (!RegisteredEventsSet.has(eventName))
|
|
74
44
|
throw new Error(`Event with ${eventName} is not registered`);
|
|
75
45
|
|
|
@@ -77,12 +47,10 @@ export const EventDirector = {
|
|
|
77
47
|
|
|
78
48
|
Adapter?.publish(eventName, {
|
|
79
49
|
payload,
|
|
80
|
-
context: extractedContext,
|
|
81
50
|
});
|
|
82
51
|
|
|
83
52
|
HistoryAdapter?.publish(eventName, {
|
|
84
53
|
payload,
|
|
85
|
-
context: extractedContext,
|
|
86
54
|
});
|
|
87
55
|
|
|
88
56
|
logger.debug(`EventDirector -> Emitted ${eventName} with ${JSON.stringify(data)}`);
|