@tsed/core 7.0.0-beta.15 → 7.0.0-beta.18
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/coverage.json +6 -0
- package/jest.config.js +1 -6
- package/lib/cjs/domain/Hooks.js +20 -17
- package/lib/cjs/domain/Hooks.js.map +1 -1
- package/lib/esm/domain/Hooks.js +20 -17
- package/lib/esm/domain/Hooks.js.map +1 -1
- package/package.json +1 -1
package/coverage.json
ADDED
package/jest.config.js
CHANGED
package/lib/cjs/domain/Hooks.js
CHANGED
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Hooks = void 0;
|
|
4
4
|
class Hooks {
|
|
5
|
-
#listeners =
|
|
5
|
+
#listeners = {};
|
|
6
6
|
/**
|
|
7
7
|
* Listen a hook event
|
|
8
8
|
* @param event
|
|
9
9
|
* @param cb
|
|
10
10
|
*/
|
|
11
11
|
on(event, cb) {
|
|
12
|
-
if (!this.#listeners
|
|
13
|
-
this.#listeners
|
|
12
|
+
if (!this.#listeners[event]) {
|
|
13
|
+
this.#listeners[event] = [];
|
|
14
14
|
}
|
|
15
|
-
this.#listeners
|
|
15
|
+
this.#listeners[event].push(cb);
|
|
16
16
|
return this;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
@@ -21,8 +21,8 @@ class Hooks {
|
|
|
21
21
|
* @param cb
|
|
22
22
|
*/
|
|
23
23
|
off(event, cb) {
|
|
24
|
-
if (this.#listeners
|
|
25
|
-
this.#listeners
|
|
24
|
+
if (this.#listeners[event]) {
|
|
25
|
+
this.#listeners[event] = this.#listeners[event].filter((item) => item === cb);
|
|
26
26
|
}
|
|
27
27
|
return this;
|
|
28
28
|
}
|
|
@@ -33,8 +33,9 @@ class Hooks {
|
|
|
33
33
|
* @param callThis
|
|
34
34
|
*/
|
|
35
35
|
emit(event, args = [], callThis = null) {
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
const listeners = this.#listeners[event];
|
|
37
|
+
if (listeners?.length) {
|
|
38
|
+
for (const cb of listeners) {
|
|
38
39
|
cb.call(callThis, ...args);
|
|
39
40
|
}
|
|
40
41
|
}
|
|
@@ -47,8 +48,9 @@ class Hooks {
|
|
|
47
48
|
* @param callThis
|
|
48
49
|
*/
|
|
49
50
|
alter(event, value, args = [], callThis = null) {
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
const listeners = this.#listeners[event];
|
|
52
|
+
if (listeners?.length) {
|
|
53
|
+
for (const cb of listeners) {
|
|
52
54
|
value = cb.call(callThis, value, ...args);
|
|
53
55
|
}
|
|
54
56
|
}
|
|
@@ -61,10 +63,10 @@ class Hooks {
|
|
|
61
63
|
* @param callThis
|
|
62
64
|
*/
|
|
63
65
|
async asyncEmit(event, args = [], callThis = null) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
const listeners = this.#listeners[event];
|
|
67
|
+
if (listeners?.length) {
|
|
68
|
+
const promises = listeners.map((cb) => cb.call(callThis, ...args));
|
|
69
|
+
await Promise.all(promises);
|
|
68
70
|
}
|
|
69
71
|
}
|
|
70
72
|
/**
|
|
@@ -75,15 +77,16 @@ class Hooks {
|
|
|
75
77
|
* @param callThis
|
|
76
78
|
*/
|
|
77
79
|
async asyncAlter(event, value, args = [], callThis = null) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
+
const listeners = this.#listeners[event];
|
|
81
|
+
if (listeners?.length) {
|
|
82
|
+
for (const cb of listeners) {
|
|
80
83
|
value = await cb.call(callThis, value, ...args);
|
|
81
84
|
}
|
|
82
85
|
}
|
|
83
86
|
return value;
|
|
84
87
|
}
|
|
85
88
|
destroy() {
|
|
86
|
-
this.#listeners
|
|
89
|
+
this.#listeners = {};
|
|
87
90
|
}
|
|
88
91
|
}
|
|
89
92
|
exports.Hooks = Hooks;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hooks.js","sourceRoot":"","sources":["../../../src/domain/Hooks.ts"],"names":[],"mappings":";;;AAAA,MAAa,KAAK;IAChB,UAAU,
|
|
1
|
+
{"version":3,"file":"Hooks.js","sourceRoot":"","sources":["../../../src/domain/Hooks.ts"],"names":[],"mappings":";;;AAAA,MAAa,KAAK;IAChB,UAAU,GAA+B,EAAE,CAAC;IAE5C;;;;OAIG;IACH,EAAE,CAAC,KAAa,EAAE,EAAY;QAC5B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAC3B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SAC7B;QAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEhC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,KAAa,EAAE,EAAY;QAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAC1B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;SAC/E;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,KAAa,EAAE,OAAc,EAAE,EAAE,WAAgB,IAAI;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,SAAS,EAAE,MAAM,EAAE;YACrB,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE;gBAC1B,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;aAC5B;SACF;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAa,EAAE,KAAU,EAAE,OAAc,EAAE,EAAE,WAAgB,IAAI;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,SAAS,EAAE,MAAM,EAAE;YACrB,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE;gBAC1B,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;aAC3C;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,OAAc,EAAE,EAAE,WAAgB,IAAI;QACnE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,SAAS,EAAE,MAAM,EAAE;YACrB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YAEnE,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SAC7B;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,KAAU,EAAE,OAAc,EAAE,EAAE,WAAgB,IAAI;QAChF,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,SAAS,EAAE,MAAM,EAAE;YACrB,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE;gBAC1B,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;aACjD;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO;QACL,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC;CACF;AAxGD,sBAwGC","sourcesContent":["export class Hooks {\n #listeners: Record<string, Function[]> = {};\n\n /**\n * Listen a hook event\n * @param event\n * @param cb\n */\n on(event: string, cb: Function) {\n if (!this.#listeners[event]) {\n this.#listeners[event] = [];\n }\n\n this.#listeners[event].push(cb);\n\n return this;\n }\n\n /**\n * Remove a listener attached to an event\n * @param event\n * @param cb\n */\n off(event: string, cb: Function) {\n if (this.#listeners[event]) {\n this.#listeners[event] = this.#listeners[event].filter((item) => item === cb);\n }\n\n return this;\n }\n\n /**\n * Trigger an event and call listener.\n * @param event\n * @param args\n * @param callThis\n */\n emit(event: string, args: any[] = [], callThis: any = null): void {\n const listeners = this.#listeners[event];\n\n if (listeners?.length) {\n for (const cb of listeners) {\n cb.call(callThis, ...args);\n }\n }\n }\n\n /**\n * Trigger an event, listener alter given value and return it.\n * @param event\n * @param value\n * @param args\n * @param callThis\n */\n alter(event: string, value: any, args: any[] = [], callThis: any = null): any {\n const listeners = this.#listeners[event];\n\n if (listeners?.length) {\n for (const cb of listeners) {\n value = cb.call(callThis, value, ...args);\n }\n }\n\n return value;\n }\n\n /**\n * Trigger an event and call async listener.\n * @param event\n * @param args\n * @param callThis\n */\n async asyncEmit(event: string, args: any[] = [], callThis: any = null): Promise<void> {\n const listeners = this.#listeners[event];\n\n if (listeners?.length) {\n const promises = listeners.map((cb) => cb.call(callThis, ...args));\n\n await Promise.all(promises);\n }\n }\n\n /**\n * Trigger an event, async listener alter given value and return it.\n * @param event\n * @param value\n * @param args\n * @param callThis\n */\n async asyncAlter(event: string, value: any, args: any[] = [], callThis: any = null): Promise<any> {\n const listeners = this.#listeners[event];\n\n if (listeners?.length) {\n for (const cb of listeners) {\n value = await cb.call(callThis, value, ...args);\n }\n }\n\n return value;\n }\n\n destroy() {\n this.#listeners = {};\n }\n}\n"]}
|
package/lib/esm/domain/Hooks.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
export class Hooks {
|
|
2
|
-
#listeners =
|
|
2
|
+
#listeners = {};
|
|
3
3
|
/**
|
|
4
4
|
* Listen a hook event
|
|
5
5
|
* @param event
|
|
6
6
|
* @param cb
|
|
7
7
|
*/
|
|
8
8
|
on(event, cb) {
|
|
9
|
-
if (!this.#listeners
|
|
10
|
-
this.#listeners
|
|
9
|
+
if (!this.#listeners[event]) {
|
|
10
|
+
this.#listeners[event] = [];
|
|
11
11
|
}
|
|
12
|
-
this.#listeners
|
|
12
|
+
this.#listeners[event].push(cb);
|
|
13
13
|
return this;
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
@@ -18,8 +18,8 @@ export class Hooks {
|
|
|
18
18
|
* @param cb
|
|
19
19
|
*/
|
|
20
20
|
off(event, cb) {
|
|
21
|
-
if (this.#listeners
|
|
22
|
-
this.#listeners
|
|
21
|
+
if (this.#listeners[event]) {
|
|
22
|
+
this.#listeners[event] = this.#listeners[event].filter((item) => item === cb);
|
|
23
23
|
}
|
|
24
24
|
return this;
|
|
25
25
|
}
|
|
@@ -30,8 +30,9 @@ export class Hooks {
|
|
|
30
30
|
* @param callThis
|
|
31
31
|
*/
|
|
32
32
|
emit(event, args = [], callThis = null) {
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
const listeners = this.#listeners[event];
|
|
34
|
+
if (listeners?.length) {
|
|
35
|
+
for (const cb of listeners) {
|
|
35
36
|
cb.call(callThis, ...args);
|
|
36
37
|
}
|
|
37
38
|
}
|
|
@@ -44,8 +45,9 @@ export class Hooks {
|
|
|
44
45
|
* @param callThis
|
|
45
46
|
*/
|
|
46
47
|
alter(event, value, args = [], callThis = null) {
|
|
47
|
-
|
|
48
|
-
|
|
48
|
+
const listeners = this.#listeners[event];
|
|
49
|
+
if (listeners?.length) {
|
|
50
|
+
for (const cb of listeners) {
|
|
49
51
|
value = cb.call(callThis, value, ...args);
|
|
50
52
|
}
|
|
51
53
|
}
|
|
@@ -58,10 +60,10 @@ export class Hooks {
|
|
|
58
60
|
* @param callThis
|
|
59
61
|
*/
|
|
60
62
|
async asyncEmit(event, args = [], callThis = null) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
const listeners = this.#listeners[event];
|
|
64
|
+
if (listeners?.length) {
|
|
65
|
+
const promises = listeners.map((cb) => cb.call(callThis, ...args));
|
|
66
|
+
await Promise.all(promises);
|
|
65
67
|
}
|
|
66
68
|
}
|
|
67
69
|
/**
|
|
@@ -72,15 +74,16 @@ export class Hooks {
|
|
|
72
74
|
* @param callThis
|
|
73
75
|
*/
|
|
74
76
|
async asyncAlter(event, value, args = [], callThis = null) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
+
const listeners = this.#listeners[event];
|
|
78
|
+
if (listeners?.length) {
|
|
79
|
+
for (const cb of listeners) {
|
|
77
80
|
value = await cb.call(callThis, value, ...args);
|
|
78
81
|
}
|
|
79
82
|
}
|
|
80
83
|
return value;
|
|
81
84
|
}
|
|
82
85
|
destroy() {
|
|
83
|
-
this.#listeners
|
|
86
|
+
this.#listeners = {};
|
|
84
87
|
}
|
|
85
88
|
}
|
|
86
89
|
//# sourceMappingURL=Hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hooks.js","sourceRoot":"","sources":["../../../src/domain/Hooks.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,KAAK;IAChB,UAAU,
|
|
1
|
+
{"version":3,"file":"Hooks.js","sourceRoot":"","sources":["../../../src/domain/Hooks.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,KAAK;IAChB,UAAU,GAA+B,EAAE,CAAC;IAE5C;;;;OAIG;IACH,EAAE,CAAC,KAAa,EAAE,EAAY;QAC5B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAC3B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SAC7B;QAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEhC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,KAAa,EAAE,EAAY;QAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAC1B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;SAC/E;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,KAAa,EAAE,OAAc,EAAE,EAAE,WAAgB,IAAI;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,SAAS,EAAE,MAAM,EAAE;YACrB,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE;gBAC1B,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;aAC5B;SACF;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAa,EAAE,KAAU,EAAE,OAAc,EAAE,EAAE,WAAgB,IAAI;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,SAAS,EAAE,MAAM,EAAE;YACrB,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE;gBAC1B,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;aAC3C;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,OAAc,EAAE,EAAE,WAAgB,IAAI;QACnE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,SAAS,EAAE,MAAM,EAAE;YACrB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YAEnE,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SAC7B;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,KAAU,EAAE,OAAc,EAAE,EAAE,WAAgB,IAAI;QAChF,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,SAAS,EAAE,MAAM,EAAE;YACrB,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE;gBAC1B,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;aACjD;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO;QACL,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC;CACF","sourcesContent":["export class Hooks {\n #listeners: Record<string, Function[]> = {};\n\n /**\n * Listen a hook event\n * @param event\n * @param cb\n */\n on(event: string, cb: Function) {\n if (!this.#listeners[event]) {\n this.#listeners[event] = [];\n }\n\n this.#listeners[event].push(cb);\n\n return this;\n }\n\n /**\n * Remove a listener attached to an event\n * @param event\n * @param cb\n */\n off(event: string, cb: Function) {\n if (this.#listeners[event]) {\n this.#listeners[event] = this.#listeners[event].filter((item) => item === cb);\n }\n\n return this;\n }\n\n /**\n * Trigger an event and call listener.\n * @param event\n * @param args\n * @param callThis\n */\n emit(event: string, args: any[] = [], callThis: any = null): void {\n const listeners = this.#listeners[event];\n\n if (listeners?.length) {\n for (const cb of listeners) {\n cb.call(callThis, ...args);\n }\n }\n }\n\n /**\n * Trigger an event, listener alter given value and return it.\n * @param event\n * @param value\n * @param args\n * @param callThis\n */\n alter(event: string, value: any, args: any[] = [], callThis: any = null): any {\n const listeners = this.#listeners[event];\n\n if (listeners?.length) {\n for (const cb of listeners) {\n value = cb.call(callThis, value, ...args);\n }\n }\n\n return value;\n }\n\n /**\n * Trigger an event and call async listener.\n * @param event\n * @param args\n * @param callThis\n */\n async asyncEmit(event: string, args: any[] = [], callThis: any = null): Promise<void> {\n const listeners = this.#listeners[event];\n\n if (listeners?.length) {\n const promises = listeners.map((cb) => cb.call(callThis, ...args));\n\n await Promise.all(promises);\n }\n }\n\n /**\n * Trigger an event, async listener alter given value and return it.\n * @param event\n * @param value\n * @param args\n * @param callThis\n */\n async asyncAlter(event: string, value: any, args: any[] = [], callThis: any = null): Promise<any> {\n const listeners = this.#listeners[event];\n\n if (listeners?.length) {\n for (const cb of listeners) {\n value = await cb.call(callThis, value, ...args);\n }\n }\n\n return value;\n }\n\n destroy() {\n this.#listeners = {};\n }\n}\n"]}
|