@eggjs/tegg-eventbus-runtime 3.62.0 → 4.0.0-beta.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/README.md +13 -1
- package/dist/EventContextFactory.js +24 -0
- package/dist/{src/EventHandlerFactory.d.ts → EventHandlerFactory.d.ts} +1 -1
- package/dist/EventHandlerFactory.js +55 -0
- package/dist/{src/SingletonEventBus.d.ts → SingletonEventBus.d.ts} +1 -1
- package/dist/SingletonEventBus.js +166 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +4 -20
- package/package.json +33 -33
- package/dist/src/EventContextFactory.js +0 -26
- package/dist/src/EventHandlerFactory.js +0 -61
- package/dist/src/SingletonEventBus.js +0 -169
- /package/dist/{src/EventContextFactory.d.ts → EventContextFactory.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
# `@eggjs/eventbus-runtime`
|
|
1
|
+
# `@eggjs/tegg-eventbus-runtime`
|
|
2
|
+
|
|
3
|
+
[![NPM version][npm-image]][npm-url]
|
|
4
|
+
[![Known Vulnerabilities][snyk-image]][snyk-url]
|
|
5
|
+
[![npm download][download-image]][download-url]
|
|
6
|
+
[](https://nodejs.org/en/download/)
|
|
7
|
+
|
|
8
|
+
[npm-image]: https://img.shields.io/npm/v/@eggjs/tegg-eventbus-runtime.svg?style=flat-square
|
|
9
|
+
[npm-url]: https://npmjs.org/package/@eggjs/tegg-eventbus-runtime
|
|
10
|
+
[snyk-image]: https://snyk.io/test/npm/@eggjs/tegg-eventbus-runtime/badge.svg?style=flat-square
|
|
11
|
+
[snyk-url]: https://snyk.io/test/npm/@eggjs/tegg-eventbus-runtime
|
|
12
|
+
[download-image]: https://img.shields.io/npm/dm/@eggjs/tegg-eventbus-runtime.svg?style=flat-square
|
|
13
|
+
[download-url]: https://npmjs.org/package/@eggjs/tegg-eventbus-runtime
|
|
2
14
|
|
|
3
15
|
# Usage
|
|
4
16
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { SingletonProto } from '@eggjs/core-decorator';
|
|
8
|
+
import { AccessLevel } from '@eggjs/tegg-types';
|
|
9
|
+
let EventContextFactory = class EventContextFactory {
|
|
10
|
+
creator;
|
|
11
|
+
createContext(parentContext) {
|
|
12
|
+
return this.creator(parentContext);
|
|
13
|
+
}
|
|
14
|
+
registerContextCreator(creator) {
|
|
15
|
+
this.creator = creator;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
EventContextFactory = __decorate([
|
|
19
|
+
SingletonProto({
|
|
20
|
+
accessLevel: AccessLevel.PUBLIC,
|
|
21
|
+
})
|
|
22
|
+
], EventContextFactory);
|
|
23
|
+
export { EventContextFactory };
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRDb250ZXh0RmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9FdmVudENvbnRleHRGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFRekMsSUFBTSxtQkFBbUIsR0FBekIsTUFBTSxtQkFBbUI7SUFDdEIsT0FBTyxDQUFpQjtJQUVoQyxhQUFhLENBQUMsYUFBaUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxPQUF1QjtRQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0NBQ0YsQ0FBQTtBQVZZLG1CQUFtQjtJQUgvQixjQUFjLENBQUM7UUFDZCxXQUFXLEVBQUUsV0FBVyxDQUFDLE1BQU07S0FDaEMsQ0FBQztHQUNXLG1CQUFtQixDQVUvQiJ9
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventHandler, EventName, Events, Arguments } from '@eggjs/eventbus-decorator';
|
|
1
|
+
import { type EventHandler, type EventName, type Events, type Arguments } from '@eggjs/eventbus-decorator';
|
|
2
2
|
import type { EggPrototype } from '@eggjs/tegg-types';
|
|
3
3
|
export declare class EventHandlerFactory {
|
|
4
4
|
private handlerProtoMap;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { EVENT_CONTEXT_INJECT } from '@eggjs/eventbus-decorator';
|
|
8
|
+
import { EggContainerFactory } from '@eggjs/tegg-runtime';
|
|
9
|
+
import { AccessLevel } from '@eggjs/tegg-types';
|
|
10
|
+
import { MapUtil } from '@eggjs/tegg-common-util';
|
|
11
|
+
import { SingletonProto } from '@eggjs/core-decorator';
|
|
12
|
+
let EventHandlerFactory = class EventHandlerFactory {
|
|
13
|
+
handlerProtoMap = new Map();
|
|
14
|
+
registerHandler(event, proto) {
|
|
15
|
+
const protos = MapUtil.getOrStore(this.handlerProtoMap, event, []);
|
|
16
|
+
protos.push(proto);
|
|
17
|
+
}
|
|
18
|
+
hasListeners(event) {
|
|
19
|
+
return this.handlerProtoMap.has(event);
|
|
20
|
+
}
|
|
21
|
+
getHandlerProtos(event) {
|
|
22
|
+
const handlerProtos = this.handlerProtoMap.get(event) || [];
|
|
23
|
+
return handlerProtos;
|
|
24
|
+
}
|
|
25
|
+
async getHandler(proto) {
|
|
26
|
+
const eggObj = await EggContainerFactory.getOrCreateEggObject(proto, proto.name);
|
|
27
|
+
return eggObj.obj;
|
|
28
|
+
}
|
|
29
|
+
async getHandlers(event) {
|
|
30
|
+
const handlerProtos = this.getHandlerProtos(event);
|
|
31
|
+
return await Promise.all(handlerProtos.map(proto => {
|
|
32
|
+
return this.getHandler(proto);
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
async handle(eventName, proto, args) {
|
|
36
|
+
const handler = await this.getHandler(proto);
|
|
37
|
+
const enableInjectCtx = proto.getMetaData(EVENT_CONTEXT_INJECT) ?? false;
|
|
38
|
+
if (enableInjectCtx) {
|
|
39
|
+
const ctx = {
|
|
40
|
+
eventName,
|
|
41
|
+
};
|
|
42
|
+
await Reflect.apply(handler.handle, handler, [ctx, ...args]);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
await Reflect.apply(handler.handle, handler, args);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
EventHandlerFactory = __decorate([
|
|
50
|
+
SingletonProto({
|
|
51
|
+
accessLevel: AccessLevel.PUBLIC,
|
|
52
|
+
})
|
|
53
|
+
], EventHandlerFactory);
|
|
54
|
+
export { EventHandlerFactory };
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRIYW5kbGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9FdmVudEhhbmRsZXJGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBa0Usb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqSSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUtoRCxJQUFNLG1CQUFtQixHQUF6QixNQUFNLG1CQUFtQjtJQUN0QixlQUFlLEdBQXdDLElBQUksR0FBRyxFQUFFLENBQUM7SUFFekUsZUFBZSxDQUFDLEtBQWdCLEVBQUUsS0FBbUI7UUFDbkQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBZ0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBZ0I7UUFDL0IsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQW1CO1FBQ2xDLE1BQU0sTUFBTSxHQUFHLE1BQU0sbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRixPQUFPLE1BQU0sQ0FBQyxHQUFpQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQWdCO1FBQ2hDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxPQUFPLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBb0IsRUFBRSxLQUFtQixFQUFFLElBQW9CO1FBQzFFLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFVLG9CQUFvQixDQUFDLElBQUksS0FBSyxDQUFDO1FBQ2xGLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsTUFBTSxHQUFHLEdBQUc7Z0JBQ1YsU0FBUzthQUNWLENBQUM7WUFDRixNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUUsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JELENBQUM7SUFDSCxDQUFDO0NBQ0YsQ0FBQTtBQXpDWSxtQkFBbUI7SUFIL0IsY0FBYyxDQUFDO1FBQ2QsV0FBVyxFQUFFLFdBQVcsQ0FBQyxNQUFNO0tBQ2hDLENBQUM7R0FDVyxtQkFBbUIsQ0F5Qy9CIn0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventBus, Events, EventWaiter, EventName } from '@eggjs/eventbus-decorator';
|
|
1
|
+
import { type EventBus, type Events, type EventWaiter, type EventName } from '@eggjs/eventbus-decorator';
|
|
2
2
|
import type { Arguments } from '@eggjs/eventbus-decorator';
|
|
3
3
|
import type { EggRuntimeContext } from '@eggjs/tegg-types';
|
|
4
4
|
export interface Event {
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import EventEmitter from 'node:events';
|
|
11
|
+
import { Inject, SingletonProto } from '@eggjs/core-decorator';
|
|
12
|
+
import { CORK_ID } from '@eggjs/eventbus-decorator';
|
|
13
|
+
import { ContextHandler } from '@eggjs/tegg-runtime';
|
|
14
|
+
import { AccessLevel } from '@eggjs/tegg-types';
|
|
15
|
+
// @ts-expect-error await-event is not typed
|
|
16
|
+
import awaitEvent from 'await-event';
|
|
17
|
+
// @ts-expect-error await-first is not typed
|
|
18
|
+
import awaitFirst from 'await-first';
|
|
19
|
+
import { EventContextFactory } from "./EventContextFactory.js";
|
|
20
|
+
import { EventHandlerFactory } from "./EventHandlerFactory.js";
|
|
21
|
+
let SingletonEventBus = class SingletonEventBus {
|
|
22
|
+
emitter = new EventEmitter();
|
|
23
|
+
eventContextFactory;
|
|
24
|
+
eventHandlerFactory;
|
|
25
|
+
logger;
|
|
26
|
+
corkIdSequence = 0;
|
|
27
|
+
corkedEvents = new Map();
|
|
28
|
+
/**
|
|
29
|
+
* only use for ensure event will happen
|
|
30
|
+
*/
|
|
31
|
+
once(event, listener) {
|
|
32
|
+
this.emitter.once(event, listener);
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
async await(event) {
|
|
36
|
+
return awaitEvent(this.emitter, event);
|
|
37
|
+
}
|
|
38
|
+
awaitFirst(...e) {
|
|
39
|
+
return awaitFirst(this.emitter, e);
|
|
40
|
+
}
|
|
41
|
+
emit(event, ...args) {
|
|
42
|
+
const ctx = this.eventContextFactory.createContext();
|
|
43
|
+
const hasListener = this.eventHandlerFactory.hasListeners(event);
|
|
44
|
+
this.doEmit(ctx, event, args);
|
|
45
|
+
return hasListener;
|
|
46
|
+
}
|
|
47
|
+
generateCorkId() {
|
|
48
|
+
return String(++this.corkIdSequence);
|
|
49
|
+
}
|
|
50
|
+
cork(corkId) {
|
|
51
|
+
let corkEvents = this.corkedEvents.get(corkId);
|
|
52
|
+
if (!corkEvents) {
|
|
53
|
+
corkEvents = {
|
|
54
|
+
times: 0,
|
|
55
|
+
events: [],
|
|
56
|
+
};
|
|
57
|
+
this.corkedEvents.set(corkId, corkEvents);
|
|
58
|
+
}
|
|
59
|
+
corkEvents.times++;
|
|
60
|
+
}
|
|
61
|
+
uncork(corkId) {
|
|
62
|
+
const corkEvents = this.corkedEvents.get(corkId);
|
|
63
|
+
if (!corkEvents) {
|
|
64
|
+
throw new Error(`eventbus corkId ${corkId} not found`);
|
|
65
|
+
}
|
|
66
|
+
if (--corkEvents.times !== 0) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
this.corkedEvents.delete(corkId);
|
|
70
|
+
for (const event of corkEvents.events) {
|
|
71
|
+
if (event.context) {
|
|
72
|
+
this.doEmitWithContext(event.context, event.name, event.args);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
queueEvent(corkId, event) {
|
|
78
|
+
const corkedEvents = this.corkedEvents.get(corkId);
|
|
79
|
+
if (!corkedEvents) {
|
|
80
|
+
throw new Error(`eventbus corkId ${corkId} not found`);
|
|
81
|
+
}
|
|
82
|
+
corkedEvents.events.push(event);
|
|
83
|
+
}
|
|
84
|
+
emitWithContext(parentContext, event, args) {
|
|
85
|
+
const corkId = parentContext.get(CORK_ID);
|
|
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);
|
|
96
|
+
this.doEmit(ctx, event, args);
|
|
97
|
+
return hasListener;
|
|
98
|
+
}
|
|
99
|
+
doOnceEmit(event, args) {
|
|
100
|
+
try {
|
|
101
|
+
this.emitter.emit(event, ...args);
|
|
102
|
+
}
|
|
103
|
+
catch (e) {
|
|
104
|
+
e.message = `[EventBus] process once event ${String(event)} failed: ${e.message}`;
|
|
105
|
+
this.logger.error(e);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async doEmit(ctx, event, args) {
|
|
109
|
+
await ContextHandler.run(ctx, async () => {
|
|
110
|
+
const lifecycle = {};
|
|
111
|
+
if (ctx.init) {
|
|
112
|
+
await ctx.init(lifecycle);
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
const handlerProtos = this.eventHandlerFactory.getHandlerProtos(event);
|
|
116
|
+
await Promise.all(handlerProtos.map(async (proto) => {
|
|
117
|
+
try {
|
|
118
|
+
await this.eventHandlerFactory.handle(event, proto, args);
|
|
119
|
+
}
|
|
120
|
+
catch (e) {
|
|
121
|
+
// should wait all handlers done then destroy ctx
|
|
122
|
+
e.message = `[EventBus] process event ${String(event)} for handler ${String(proto.name)} failed: ${e.message}`;
|
|
123
|
+
this.logger.error(e);
|
|
124
|
+
}
|
|
125
|
+
}));
|
|
126
|
+
}
|
|
127
|
+
catch (e) {
|
|
128
|
+
e.message = `[EventBus] process event ${String(event)} failed: ${e.message}`;
|
|
129
|
+
this.logger.error(e);
|
|
130
|
+
}
|
|
131
|
+
finally {
|
|
132
|
+
if (ctx.destroy) {
|
|
133
|
+
ctx.destroy(lifecycle).catch(e => {
|
|
134
|
+
e.message = '[tegg/SingletonEventBus] destroy tegg ctx failed:' + e.message;
|
|
135
|
+
this.logger.error(e);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
this.doOnceEmit(event, args);
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
__decorate([
|
|
144
|
+
Inject(),
|
|
145
|
+
__metadata("design:type", EventContextFactory)
|
|
146
|
+
], SingletonEventBus.prototype, "eventContextFactory", void 0);
|
|
147
|
+
__decorate([
|
|
148
|
+
Inject(),
|
|
149
|
+
__metadata("design:type", EventHandlerFactory)
|
|
150
|
+
], SingletonEventBus.prototype, "eventHandlerFactory", void 0);
|
|
151
|
+
__decorate([
|
|
152
|
+
Inject({
|
|
153
|
+
name: 'logger',
|
|
154
|
+
}),
|
|
155
|
+
__metadata("design:type", Function)
|
|
156
|
+
], SingletonEventBus.prototype, "logger", void 0);
|
|
157
|
+
SingletonEventBus = __decorate([
|
|
158
|
+
SingletonProto({
|
|
159
|
+
// TODO 需要考虑支持别名
|
|
160
|
+
// SingletonEventBus 同时实现了两个接口
|
|
161
|
+
name: 'eventBus',
|
|
162
|
+
accessLevel: AccessLevel.PUBLIC,
|
|
163
|
+
})
|
|
164
|
+
], SingletonEventBus);
|
|
165
|
+
export { SingletonEventBus };
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uRXZlbnRCdXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvU2luZ2xldG9uRXZlbnRCdXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxZQUFZLE1BQU0sYUFBYSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUFnRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVsSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWhELDRDQUE0QztBQUM1QyxPQUFPLFVBQVUsTUFBTSxhQUFhLENBQUM7QUFDckMsNENBQTRDO0FBQzVDLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQztBQUVyQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQWtCeEQsSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBaUI7SUFDWCxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUc3QixtQkFBbUIsQ0FBc0I7SUFHekMsbUJBQW1CLENBQXNCO0lBS3pDLE1BQU0sQ0FBWTtJQUUzQixjQUFjLEdBQUcsQ0FBQyxDQUFDO0lBRVYsWUFBWSxHQUFHLElBQUksR0FBRyxFQUFtQyxDQUFDO0lBRTNFOztPQUVHO0lBQ0gsSUFBSSxDQUF5QixLQUFRLEVBQUUsUUFBbUI7UUFDeEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLLENBQXlCLEtBQVE7UUFDMUMsT0FBTyxVQUFVLENBQUMs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
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './
|
|
3
|
-
export * from './
|
|
1
|
+
export * from './SingletonEventBus.ts';
|
|
2
|
+
export * from './EventHandlerFactory.ts';
|
|
3
|
+
export * from './EventContextFactory.ts';
|
package/dist/index.js
CHANGED
|
@@ -1,20 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./src/SingletonEventBus"), exports);
|
|
18
|
-
__exportStar(require("./src/EventHandlerFactory"), exports);
|
|
19
|
-
__exportStar(require("./src/EventContextFactory"), exports);
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMERBQXdDO0FBQ3hDLDREQUEwQztBQUMxQyw0REFBMEMifQ==
|
|
1
|
+
export * from "./SingletonEventBus.js";
|
|
2
|
+
export * from "./EventHandlerFactory.js";
|
|
3
|
+
export * from "./EventContextFactory.js";
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMEJBQTBCLENBQUMifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/tegg-eventbus-runtime",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0-beta.10",
|
|
4
4
|
"description": "tegg eventbus runtime",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"egg",
|
|
@@ -12,22 +12,17 @@
|
|
|
12
12
|
"eggModule": {
|
|
13
13
|
"name": "eventbusRuntime"
|
|
14
14
|
},
|
|
15
|
-
"
|
|
15
|
+
"type": "module",
|
|
16
|
+
"exports": {
|
|
17
|
+
".": "./dist/index.js",
|
|
18
|
+
"./package.json": "./package.json"
|
|
19
|
+
},
|
|
16
20
|
"files": [
|
|
17
|
-
"dist
|
|
18
|
-
"dist/**/*.d.ts"
|
|
21
|
+
"dist"
|
|
19
22
|
],
|
|
20
|
-
"typings": "dist/index.d.ts",
|
|
21
|
-
"scripts": {
|
|
22
|
-
"test": "cross-env NODE_ENV=test NODE_OPTIONS='--no-deprecation' mocha",
|
|
23
|
-
"clean": "tsc -b --clean && rm -rf dist",
|
|
24
|
-
"tsc": "npm run clean && tsc -p ./tsconfig.json",
|
|
25
|
-
"tsc:pub": "npm run clean && tsc -p ./tsconfig.pub.json",
|
|
26
|
-
"prepublishOnly": "npm run tsc:pub"
|
|
27
|
-
},
|
|
28
23
|
"author": "killagu <killa123@126.com>",
|
|
29
24
|
"license": "MIT",
|
|
30
|
-
"homepage": "https://github.com/eggjs/tegg",
|
|
25
|
+
"homepage": "https://github.com/eggjs/tegg/tree/next/core/eventbus-runtime",
|
|
31
26
|
"bugs": {
|
|
32
27
|
"url": "https://github.com/eggjs/tegg/issues"
|
|
33
28
|
},
|
|
@@ -37,32 +32,37 @@
|
|
|
37
32
|
"directory": "core/eventbus-runtime"
|
|
38
33
|
},
|
|
39
34
|
"dependencies": {
|
|
40
|
-
"@eggjs/core-decorator": "^3.62.0",
|
|
41
|
-
"@eggjs/eventbus-decorator": "^3.62.0",
|
|
42
|
-
"@eggjs/tegg-common-util": "^3.62.0",
|
|
43
|
-
"@eggjs/tegg-runtime": "^3.62.0",
|
|
44
|
-
"@eggjs/tegg-types": "^3.62.0",
|
|
45
35
|
"await-event": "^2.1.0",
|
|
46
|
-
"await-first": "^1.0.0"
|
|
36
|
+
"await-first": "^1.0.0",
|
|
37
|
+
"@eggjs/core-decorator": "4.0.0-beta.10",
|
|
38
|
+
"@eggjs/tegg-runtime": "4.0.0-beta.10",
|
|
39
|
+
"@eggjs/eventbus-decorator": "4.0.0-beta.10",
|
|
40
|
+
"@eggjs/tegg-common-util": "4.0.0-beta.10",
|
|
41
|
+
"@eggjs/tegg-types": "4.0.0-beta.10"
|
|
47
42
|
},
|
|
48
43
|
"engines": {
|
|
49
|
-
"node": ">=
|
|
44
|
+
"node": ">=22.18.0"
|
|
50
45
|
},
|
|
51
46
|
"devDependencies": {
|
|
52
|
-
"@
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"ts-node": "^10.9.1",
|
|
62
|
-
"typescript": "^5.0.4"
|
|
47
|
+
"@types/node": "^22.10.5",
|
|
48
|
+
"coffee": "^5.1.0",
|
|
49
|
+
"egg": "beta",
|
|
50
|
+
"typescript": "^5.9.3",
|
|
51
|
+
"tsdown": "^0.15.6",
|
|
52
|
+
"unplugin-unused": "^0.5.3",
|
|
53
|
+
"@eggjs/tegg-loader": "4.0.0-beta.10",
|
|
54
|
+
"@eggjs/tegg-metadata": "4.0.0-beta.10",
|
|
55
|
+
"@eggjs/module-test-util": "4.0.0-beta.4"
|
|
63
56
|
},
|
|
64
57
|
"publishConfig": {
|
|
65
58
|
"access": "public"
|
|
66
59
|
},
|
|
67
|
-
"
|
|
68
|
-
|
|
60
|
+
"main": "./dist/index.js",
|
|
61
|
+
"module": "./dist/index.js",
|
|
62
|
+
"types": "./dist/index.d.ts",
|
|
63
|
+
"scripts": {
|
|
64
|
+
"clean": "rimraf dist",
|
|
65
|
+
"build": "tsdown && rimraf dist && tsc -b --clean && tsc",
|
|
66
|
+
"typecheck": "tsc --noEmit"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.EventContextFactory = void 0;
|
|
10
|
-
const core_decorator_1 = require("@eggjs/core-decorator");
|
|
11
|
-
const tegg_types_1 = require("@eggjs/tegg-types");
|
|
12
|
-
let EventContextFactory = class EventContextFactory {
|
|
13
|
-
createContext(parentContext) {
|
|
14
|
-
return this.creator(parentContext);
|
|
15
|
-
}
|
|
16
|
-
registerContextCreator(creator) {
|
|
17
|
-
this.creator = creator;
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
exports.EventContextFactory = EventContextFactory;
|
|
21
|
-
exports.EventContextFactory = EventContextFactory = __decorate([
|
|
22
|
-
(0, core_decorator_1.SingletonProto)({
|
|
23
|
-
accessLevel: tegg_types_1.AccessLevel.PUBLIC,
|
|
24
|
-
})
|
|
25
|
-
], EventContextFactory);
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRDb250ZXh0RmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9FdmVudENvbnRleHRGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLDBEQUF1RDtBQUN2RCxrREFBZ0Q7QUFRekMsSUFBTSxtQkFBbUIsR0FBekIsTUFBTSxtQkFBbUI7SUFHOUIsYUFBYSxDQUFDLGFBQWlDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsc0JBQXNCLENBQUMsT0FBdUI7UUFDNUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztDQUNGLENBQUE7QUFWWSxrREFBbUI7OEJBQW5CLG1CQUFtQjtJQUgvQixJQUFBLCtCQUFjLEVBQUM7UUFDZCxXQUFXLEVBQUUsd0JBQVcsQ0FBQyxNQUFNO0tBQ2hDLENBQUM7R0FDVyxtQkFBbUIsQ0FVL0IifQ==
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.EventHandlerFactory = void 0;
|
|
10
|
-
const eventbus_decorator_1 = require("@eggjs/eventbus-decorator");
|
|
11
|
-
const tegg_runtime_1 = require("@eggjs/tegg-runtime");
|
|
12
|
-
const tegg_types_1 = require("@eggjs/tegg-types");
|
|
13
|
-
const tegg_common_util_1 = require("@eggjs/tegg-common-util");
|
|
14
|
-
const core_decorator_1 = require("@eggjs/core-decorator");
|
|
15
|
-
let EventHandlerFactory = class EventHandlerFactory {
|
|
16
|
-
constructor() {
|
|
17
|
-
this.handlerProtoMap = new Map();
|
|
18
|
-
}
|
|
19
|
-
registerHandler(event, proto) {
|
|
20
|
-
const protos = tegg_common_util_1.MapUtil.getOrStore(this.handlerProtoMap, event, []);
|
|
21
|
-
protos.push(proto);
|
|
22
|
-
}
|
|
23
|
-
hasListeners(event) {
|
|
24
|
-
return this.handlerProtoMap.has(event);
|
|
25
|
-
}
|
|
26
|
-
getHandlerProtos(event) {
|
|
27
|
-
const handlerProtos = this.handlerProtoMap.get(event) || [];
|
|
28
|
-
return handlerProtos;
|
|
29
|
-
}
|
|
30
|
-
async getHandler(proto) {
|
|
31
|
-
const eggObj = await tegg_runtime_1.EggContainerFactory.getOrCreateEggObject(proto, proto.name);
|
|
32
|
-
return eggObj.obj;
|
|
33
|
-
}
|
|
34
|
-
async getHandlers(event) {
|
|
35
|
-
const handlerProtos = this.getHandlerProtos(event);
|
|
36
|
-
return await Promise.all(handlerProtos.map(proto => {
|
|
37
|
-
return this.getHandler(proto);
|
|
38
|
-
}));
|
|
39
|
-
}
|
|
40
|
-
async handle(eventName, proto, args) {
|
|
41
|
-
var _a;
|
|
42
|
-
const handler = await this.getHandler(proto);
|
|
43
|
-
const enableInjectCtx = (_a = proto.getMetaData(eventbus_decorator_1.EVENT_CONTEXT_INJECT)) !== null && _a !== void 0 ? _a : false;
|
|
44
|
-
if (enableInjectCtx) {
|
|
45
|
-
const ctx = {
|
|
46
|
-
eventName,
|
|
47
|
-
};
|
|
48
|
-
await Reflect.apply(handler.handle, handler, [ctx, ...args]);
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
await Reflect.apply(handler.handle, handler, args);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
exports.EventHandlerFactory = EventHandlerFactory;
|
|
56
|
-
exports.EventHandlerFactory = EventHandlerFactory = __decorate([
|
|
57
|
-
(0, core_decorator_1.SingletonProto)({
|
|
58
|
-
accessLevel: tegg_types_1.AccessLevel.PUBLIC,
|
|
59
|
-
})
|
|
60
|
-
], EventHandlerFactory);
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRIYW5kbGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9FdmVudEhhbmRsZXJGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLGtFQUE2RztBQUM3RyxzREFBMEQ7QUFDMUQsa0RBQWdEO0FBRWhELDhEQUFrRDtBQUNsRCwwREFBdUQ7QUFLaEQsSUFBTSxtQkFBbUIsR0FBekIsTUFBTSxtQkFBbUI7SUFBekI7UUFDRyxvQkFBZSxHQUF3QyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBd0MzRSxDQUFDO0lBdENDLGVBQWUsQ0FBQyxLQUFnQixFQUFFLEtBQW1CO1FBQ25ELE1BQU0sTUFBTSxHQUFHLDBCQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFnQjtRQUMzQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFnQjtRQUMvQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUQsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBbUI7UUFDbEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxrQ0FBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sTUFBTSxDQUFDLEdBQWlDLENBQUM7SUFDbEQsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBZ0I7UUFDaEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELE9BQU8sTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFvQixFQUFFLEtBQW1CLEVBQUUsSUFBb0I7O1FBQzFFLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxNQUFNLGVBQWUsR0FBRyxNQUFBLEtBQUssQ0FBQyxXQUFXLENBQVUseUNBQW9CLENBQUMsbUNBQUksS0FBSyxDQUFDO1FBQ2xGLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsTUFBTSxHQUFHLEdBQUc7Z0JBQ1YsU0FBUzthQUNWLENBQUM7WUFDRixNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUUsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JELENBQUM7SUFDSCxDQUFDO0NBQ0YsQ0FBQTtBQXpDWSxrREFBbUI7OEJBQW5CLG1CQUFtQjtJQUgvQixJQUFBLCtCQUFjLEVBQUM7UUFDZCxXQUFXLEVBQUUsd0JBQVcsQ0FBQyxNQUFNO0tBQ2hDLENBQUM7R0FDVyxtQkFBbUIsQ0F5Qy9CIn0=
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.SingletonEventBus = void 0;
|
|
16
|
-
const core_decorator_1 = require("@eggjs/core-decorator");
|
|
17
|
-
const eventbus_decorator_1 = require("@eggjs/eventbus-decorator");
|
|
18
|
-
const tegg_runtime_1 = require("@eggjs/tegg-runtime");
|
|
19
|
-
const tegg_types_1 = require("@eggjs/tegg-types");
|
|
20
|
-
const EventContextFactory_1 = require("./EventContextFactory");
|
|
21
|
-
const EventHandlerFactory_1 = require("./EventHandlerFactory");
|
|
22
|
-
const events_1 = require("events");
|
|
23
|
-
const await_event_1 = __importDefault(require("await-event"));
|
|
24
|
-
const await_first_1 = __importDefault(require("await-first"));
|
|
25
|
-
let SingletonEventBus = class SingletonEventBus {
|
|
26
|
-
constructor() {
|
|
27
|
-
this.emitter = new events_1.EventEmitter();
|
|
28
|
-
this.corkIdSequence = 0;
|
|
29
|
-
this.corkedEvents = new Map();
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* only use for ensure event will happen
|
|
33
|
-
*/
|
|
34
|
-
once(event, listener) {
|
|
35
|
-
this.emitter.once(event, listener);
|
|
36
|
-
return this;
|
|
37
|
-
}
|
|
38
|
-
async await(event) {
|
|
39
|
-
return (0, await_event_1.default)(this.emitter, event);
|
|
40
|
-
}
|
|
41
|
-
awaitFirst(...e) {
|
|
42
|
-
return (0, await_first_1.default)(this.emitter, e);
|
|
43
|
-
}
|
|
44
|
-
emit(event, ...args) {
|
|
45
|
-
const ctx = this.eventContextFactory.createContext();
|
|
46
|
-
const hasListener = this.eventHandlerFactory.hasListeners(event);
|
|
47
|
-
this.doEmit(ctx, event, args);
|
|
48
|
-
return hasListener;
|
|
49
|
-
}
|
|
50
|
-
generateCorkId() {
|
|
51
|
-
return String(++this.corkIdSequence);
|
|
52
|
-
}
|
|
53
|
-
cork(corkId) {
|
|
54
|
-
let corkEvents = this.corkedEvents.get(corkId);
|
|
55
|
-
if (!corkEvents) {
|
|
56
|
-
corkEvents = {
|
|
57
|
-
times: 0,
|
|
58
|
-
events: [],
|
|
59
|
-
};
|
|
60
|
-
this.corkedEvents.set(corkId, corkEvents);
|
|
61
|
-
}
|
|
62
|
-
corkEvents.times++;
|
|
63
|
-
}
|
|
64
|
-
uncork(corkId) {
|
|
65
|
-
const corkEvents = this.corkedEvents.get(corkId);
|
|
66
|
-
if (!corkEvents) {
|
|
67
|
-
throw new Error(`eventbus corkId ${corkId} not found`);
|
|
68
|
-
}
|
|
69
|
-
if (--corkEvents.times !== 0) {
|
|
70
|
-
return false;
|
|
71
|
-
}
|
|
72
|
-
this.corkedEvents.delete(corkId);
|
|
73
|
-
for (const event of corkEvents.events) {
|
|
74
|
-
if (event.context) {
|
|
75
|
-
this.doEmitWithContext(event.context, event.name, event.args);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
return true;
|
|
79
|
-
}
|
|
80
|
-
queueEvent(corkId, event) {
|
|
81
|
-
const corkdEvents = this.corkedEvents.get(corkId);
|
|
82
|
-
if (!corkdEvents) {
|
|
83
|
-
throw new Error(`eventbus corkId ${corkId} not found`);
|
|
84
|
-
}
|
|
85
|
-
corkdEvents.events.push(event);
|
|
86
|
-
}
|
|
87
|
-
emitWithContext(parentContext, event, args) {
|
|
88
|
-
const corkId = parentContext.get(eventbus_decorator_1.CORK_ID);
|
|
89
|
-
const hasListener = this.eventHandlerFactory.hasListeners(event);
|
|
90
|
-
if (corkId) {
|
|
91
|
-
this.queueEvent(corkId, { name: event, args, context: parentContext });
|
|
92
|
-
return hasListener;
|
|
93
|
-
}
|
|
94
|
-
return this.doEmitWithContext(parentContext, event, args);
|
|
95
|
-
}
|
|
96
|
-
doEmitWithContext(parentContext, event, args) {
|
|
97
|
-
const hasListener = this.eventHandlerFactory.hasListeners(event);
|
|
98
|
-
const ctx = this.eventContextFactory.createContext(parentContext);
|
|
99
|
-
this.doEmit(ctx, event, args);
|
|
100
|
-
return hasListener;
|
|
101
|
-
}
|
|
102
|
-
doOnceEmit(event, args) {
|
|
103
|
-
try {
|
|
104
|
-
this.emitter.emit(event, ...args);
|
|
105
|
-
}
|
|
106
|
-
catch (e) {
|
|
107
|
-
e.message = `[EventBus] process once event ${String(event)} failed: ${e.message}`;
|
|
108
|
-
this.logger.error(e);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
async doEmit(ctx, event, args) {
|
|
112
|
-
await tegg_runtime_1.ContextHandler.run(ctx, async () => {
|
|
113
|
-
const lifecycle = {};
|
|
114
|
-
if (ctx.init) {
|
|
115
|
-
await ctx.init(lifecycle);
|
|
116
|
-
}
|
|
117
|
-
try {
|
|
118
|
-
const handlerProtos = this.eventHandlerFactory.getHandlerProtos(event);
|
|
119
|
-
await Promise.all(handlerProtos.map(async (proto) => {
|
|
120
|
-
try {
|
|
121
|
-
await this.eventHandlerFactory.handle(event, proto, args);
|
|
122
|
-
}
|
|
123
|
-
catch (e) {
|
|
124
|
-
// should wait all handlers done then destroy ctx
|
|
125
|
-
e.message = `[EventBus] process event ${String(event)} for handler ${String(proto.name)} failed: ${e.message}`;
|
|
126
|
-
this.logger.error(e);
|
|
127
|
-
}
|
|
128
|
-
}));
|
|
129
|
-
}
|
|
130
|
-
catch (e) {
|
|
131
|
-
e.message = `[EventBus] process event ${String(event)} failed: ${e.message}`;
|
|
132
|
-
this.logger.error(e);
|
|
133
|
-
}
|
|
134
|
-
finally {
|
|
135
|
-
if (ctx.destroy) {
|
|
136
|
-
ctx.destroy(lifecycle).catch(e => {
|
|
137
|
-
e.message = '[tegg/SingletonEventBus] destroy tegg ctx failed:' + e.message;
|
|
138
|
-
this.logger.error(e);
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
this.doOnceEmit(event, args);
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
};
|
|
146
|
-
exports.SingletonEventBus = SingletonEventBus;
|
|
147
|
-
__decorate([
|
|
148
|
-
(0, core_decorator_1.Inject)(),
|
|
149
|
-
__metadata("design:type", EventContextFactory_1.EventContextFactory)
|
|
150
|
-
], SingletonEventBus.prototype, "eventContextFactory", void 0);
|
|
151
|
-
__decorate([
|
|
152
|
-
(0, core_decorator_1.Inject)(),
|
|
153
|
-
__metadata("design:type", EventHandlerFactory_1.EventHandlerFactory)
|
|
154
|
-
], SingletonEventBus.prototype, "eventHandlerFactory", void 0);
|
|
155
|
-
__decorate([
|
|
156
|
-
(0, core_decorator_1.Inject)({
|
|
157
|
-
name: 'logger',
|
|
158
|
-
}),
|
|
159
|
-
__metadata("design:type", Object)
|
|
160
|
-
], SingletonEventBus.prototype, "logger", void 0);
|
|
161
|
-
exports.SingletonEventBus = SingletonEventBus = __decorate([
|
|
162
|
-
(0, core_decorator_1.SingletonProto)({
|
|
163
|
-
// TODO 需要考虑支持别名
|
|
164
|
-
// SingletonEventBus 同时实现了两个接口
|
|
165
|
-
name: 'eventBus',
|
|
166
|
-
accessLevel: tegg_types_1.AccessLevel.PUBLIC,
|
|
167
|
-
})
|
|
168
|
-
], SingletonEventBus);
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uRXZlbnRCdXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2luZ2xldG9uRXZlbnRCdXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMERBQStEO0FBQy9ELGtFQUE4RjtBQUU5RixzREFBcUQ7QUFFckQsa0RBQWdEO0FBRWhELCtEQUE0RDtBQUM1RCwrREFBNEQ7QUFDNUQsbUNBQXNDO0FBQ3RDLDhEQUFxQztBQUNyQyw4REFBcUM7QUFtQjlCLElBQU0saUJBQWlCLEdBQXZCLE1BQU0saUJBQWlCO0lBQXZCO1FBQ1ksWUFBTyxHQUFHLElBQUkscUJBQVksRUFBRSxDQUFDO1FBYXRDLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBRVYsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQztJQTJIN0UsQ0FBQztJQXpIQzs7T0FFRztJQUNILElBQUksQ0FBeUIsS0FBUSxFQUFFLFFBQW1CO1FBQ3hELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUF5QixLQUFRO1FBQzFDLE9BQU8sSUFBQSxxQkFBVSxFQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFVBQVUsQ0FBeUIsR0FBRyxDQUFXO1FBQy9DLE9BQU8sSUFBQSxxQkFBVSxFQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksQ0FBeUIsS0FBUSxFQUFFLEdBQUcsSUFBMEI7UUFDbEUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMs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
|
|
File without changes
|