@eggjs/tegg-eventbus-runtime 1.5.1 → 1.6.1
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.
|
@@ -1,23 +1,39 @@
|
|
|
1
1
|
import { EventBus, Events, EventWaiter, EventName } from '@eggjs/eventbus-decorator';
|
|
2
2
|
import { EggContext } from '@eggjs/tegg-runtime';
|
|
3
|
-
type
|
|
3
|
+
type Array<T> = [T] extends [(...args: infer U) => any] ? U : [T] extends [void] ? [] : [T];
|
|
4
|
+
export interface Event {
|
|
5
|
+
name: EventName;
|
|
6
|
+
args: Array<any>;
|
|
7
|
+
context?: EggContext;
|
|
8
|
+
}
|
|
9
|
+
export interface CorkEvents {
|
|
10
|
+
times: number;
|
|
11
|
+
events: Array<Event>;
|
|
12
|
+
}
|
|
4
13
|
export declare class SingletonEventBus implements EventBus, EventWaiter {
|
|
5
14
|
private readonly emitter;
|
|
6
15
|
private readonly eventContextFactory;
|
|
7
16
|
private readonly eventHandlerFactory;
|
|
8
17
|
private readonly logger;
|
|
18
|
+
private corkIdSequence;
|
|
19
|
+
private readonly corkedEvents;
|
|
9
20
|
/**
|
|
10
21
|
* only use for ensure event will happen
|
|
11
22
|
*/
|
|
12
23
|
once<E extends keyof Events>(event: E, listener: Events[E]): this;
|
|
13
|
-
await<E extends keyof Events>(event: E): Promise<
|
|
24
|
+
await<E extends keyof Events>(event: E): Promise<Array<Events[E]>>;
|
|
14
25
|
awaitFirst<E extends keyof Events>(...e: Array<E>): Promise<{
|
|
15
26
|
event: EventName;
|
|
16
|
-
args:
|
|
27
|
+
args: Array<Events[E]>;
|
|
17
28
|
}>;
|
|
18
|
-
emit<E extends keyof Events>(event: E, ...args:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
29
|
+
emit<E extends keyof Events>(event: E, ...args: Array<Events[E]>): boolean;
|
|
30
|
+
generateCorkId(): string;
|
|
31
|
+
cork(corkId: string): void;
|
|
32
|
+
uncork(corkId: string): void;
|
|
33
|
+
queueEvent(corkId: string, event: Event): void;
|
|
34
|
+
emitWithContext<E extends keyof Events>(parentContext: EggContext, event: E, args: Array<Events[E]>): boolean;
|
|
35
|
+
private doEmitWithContext;
|
|
36
|
+
private doOnceEmit;
|
|
37
|
+
private doEmit;
|
|
22
38
|
}
|
|
23
39
|
export {};
|
|
@@ -14,6 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.SingletonEventBus = void 0;
|
|
16
16
|
const core_decorator_1 = require("@eggjs/core-decorator");
|
|
17
|
+
const eventbus_decorator_1 = require("@eggjs/eventbus-decorator");
|
|
17
18
|
const EventContextFactory_1 = require("./EventContextFactory");
|
|
18
19
|
const EventHandlerFactory_1 = require("./EventHandlerFactory");
|
|
19
20
|
const events_1 = require("events");
|
|
@@ -22,6 +23,8 @@ const await_first_1 = __importDefault(require("await-first"));
|
|
|
22
23
|
let SingletonEventBus = class SingletonEventBus {
|
|
23
24
|
constructor() {
|
|
24
25
|
this.emitter = new events_1.EventEmitter();
|
|
26
|
+
this.corkIdSequence = 0;
|
|
27
|
+
this.corkedEvents = new Map();
|
|
25
28
|
}
|
|
26
29
|
/**
|
|
27
30
|
* only use for ensure event will happen
|
|
@@ -42,9 +45,54 @@ let SingletonEventBus = class SingletonEventBus {
|
|
|
42
45
|
this.doEmit(ctx, event, args);
|
|
43
46
|
return hasListener;
|
|
44
47
|
}
|
|
48
|
+
generateCorkId() {
|
|
49
|
+
return String(++this.corkIdSequence);
|
|
50
|
+
}
|
|
51
|
+
cork(corkId) {
|
|
52
|
+
let corkEvents = this.corkedEvents.get(corkId);
|
|
53
|
+
if (!corkEvents) {
|
|
54
|
+
corkEvents = {
|
|
55
|
+
times: 0,
|
|
56
|
+
events: [],
|
|
57
|
+
};
|
|
58
|
+
this.corkedEvents.set(corkId, corkEvents);
|
|
59
|
+
}
|
|
60
|
+
corkEvents.times++;
|
|
61
|
+
}
|
|
62
|
+
uncork(corkId) {
|
|
63
|
+
const corkEvents = this.corkedEvents.get(corkId);
|
|
64
|
+
if (!corkEvents) {
|
|
65
|
+
throw new Error(`eventbus corkId ${corkId} not found`);
|
|
66
|
+
}
|
|
67
|
+
if (--corkEvents.times !== 0) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
this.corkedEvents.delete(corkId);
|
|
71
|
+
for (const event of corkEvents.events) {
|
|
72
|
+
if (event.context) {
|
|
73
|
+
this.doEmitWithContext(event.context, event.name, event.args);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
queueEvent(corkId, event) {
|
|
78
|
+
const corkdEvents = this.corkedEvents.get(corkId);
|
|
79
|
+
if (!corkdEvents) {
|
|
80
|
+
throw new Error(`eventbus corkId ${corkId} not found`);
|
|
81
|
+
}
|
|
82
|
+
corkdEvents.events.push(event);
|
|
83
|
+
}
|
|
45
84
|
emitWithContext(parentContext, event, args) {
|
|
46
|
-
const
|
|
85
|
+
const corkId = parentContext.get(eventbus_decorator_1.CORK_ID);
|
|
47
86
|
const hasListener = this.eventHandlerFactory.hasListeners(event);
|
|
87
|
+
if (corkId) {
|
|
88
|
+
this.queueEvent(corkId, { name: event, args, context: parentContext });
|
|
89
|
+
return hasListener;
|
|
90
|
+
}
|
|
91
|
+
return this.doEmitWithContext(parentContext, event, args);
|
|
92
|
+
}
|
|
93
|
+
doEmitWithContext(parentContext, event, args) {
|
|
94
|
+
const hasListener = this.eventHandlerFactory.hasListeners(event);
|
|
95
|
+
const ctx = this.eventContextFactory.createContext(parentContext);
|
|
48
96
|
this.doEmit(ctx, event, args);
|
|
49
97
|
return hasListener;
|
|
50
98
|
}
|
|
@@ -53,7 +101,7 @@ let SingletonEventBus = class SingletonEventBus {
|
|
|
53
101
|
this.emitter.emit(event, ...args);
|
|
54
102
|
}
|
|
55
103
|
catch (e) {
|
|
56
|
-
e.message = `[EventBus] process once event ${event} failed: ${e.message}`;
|
|
104
|
+
e.message = `[EventBus] process once event ${String(event)} failed: ${e.message}`;
|
|
57
105
|
this.logger.error(e);
|
|
58
106
|
}
|
|
59
107
|
}
|
|
@@ -70,13 +118,13 @@ let SingletonEventBus = class SingletonEventBus {
|
|
|
70
118
|
}
|
|
71
119
|
catch (e) {
|
|
72
120
|
// should wait all handlers done then destroy ctx
|
|
73
|
-
e.message = `[EventBus] process event ${event} failed: ${e.message}`;
|
|
121
|
+
e.message = `[EventBus] process event ${String(event)} failed: ${e.message}`;
|
|
74
122
|
this.logger.error(e);
|
|
75
123
|
}
|
|
76
124
|
}));
|
|
77
125
|
}
|
|
78
126
|
catch (e) {
|
|
79
|
-
e.message = `[EventBus] process event ${event} failed: ${e.message}`;
|
|
127
|
+
e.message = `[EventBus] process event ${String(event)} failed: ${e.message}`;
|
|
80
128
|
this.logger.error(e);
|
|
81
129
|
}
|
|
82
130
|
finally {
|
|
@@ -111,4 +159,4 @@ SingletonEventBus = __decorate([
|
|
|
111
159
|
})
|
|
112
160
|
], SingletonEventBus);
|
|
113
161
|
exports.SingletonEventBus = SingletonEventBus;
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uRXZlbnRCdXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2luZ2xldG9uRXZlbnRCdXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMERBQTRFO0FBQzVFLGtFQUE4RjtBQUc5RiwrREFBNEQ7QUFDNUQsK0RBQTREO0FBQzVELG1DQUFzQztBQUN0Qyw4REFBcUM7QUFDckMsOERBQXFDO0FBd0I5QixJQUFNLGlCQUFpQixHQUF2QixNQUFNLGlCQUFpQjtJQUF2QjtRQUNZLFlBQU8sR0FBRyxJQUFJLHFCQUFZLEVBQUUsQ0FBQztRQVd0QyxtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUVWLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7SUF3SDdFLENBQUM7SUF0SEM7O09BRUc7SUFDSCxJQUFJLENBQXlCLEtBQVEsRUFBRSxRQUFtQjtRQUN4RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBeUIsS0FBUTtRQUMxQyxPQUFPLElBQUEscUJBQVUsRUFBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxVQUFVLENBQXlCLEdBQUcsQ0FBVztRQUMvQyxPQUFPLElBQUEscUJBQVUsRUFBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLENBQXlCLEtBQVEsRUFBRSxHQUFHLElBQXNCO1FBQzlELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUks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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/tegg-eventbus-runtime",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.1",
|
|
4
4
|
"description": "tegg eventbus runtime",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"egg",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"directory": "core/eventbus-runtime"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@eggjs/core-decorator": "^1.4.
|
|
42
|
-
"@eggjs/eventbus-decorator": "^1.
|
|
41
|
+
"@eggjs/core-decorator": "^1.4.2",
|
|
42
|
+
"@eggjs/eventbus-decorator": "^1.5.1",
|
|
43
43
|
"await-event": "^2.1.0",
|
|
44
44
|
"await-first": "^1.0.0",
|
|
45
45
|
"typed-emitter": "^1.3.1"
|
|
@@ -48,16 +48,17 @@
|
|
|
48
48
|
"node": ">=14.0.0"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@eggjs/tegg-common-util": "^1.2.
|
|
52
|
-
"@eggjs/tegg-loader": "^1.4.
|
|
53
|
-
"@eggjs/tegg-metadata": "^1.4.
|
|
54
|
-
"@eggjs/tegg-runtime": "^1.4.
|
|
51
|
+
"@eggjs/tegg-common-util": "^1.2.2",
|
|
52
|
+
"@eggjs/tegg-loader": "^1.4.2",
|
|
53
|
+
"@eggjs/tegg-metadata": "^1.4.2",
|
|
54
|
+
"@eggjs/tegg-runtime": "^1.4.2",
|
|
55
55
|
"coffee": "^5.4.0",
|
|
56
56
|
"egg": "^2.29.3",
|
|
57
|
-
"mm": "^3.2.0"
|
|
57
|
+
"mm": "^3.2.0",
|
|
58
|
+
"mz-modules": "^2.1.0"
|
|
58
59
|
},
|
|
59
60
|
"publishConfig": {
|
|
60
61
|
"access": "public"
|
|
61
62
|
},
|
|
62
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "de0d2cd055cc6deca938b74aabb90ef5f9fc0dd7"
|
|
63
64
|
}
|