@eggjs/eventbus-decorator 3.28.2 → 3.30.0
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 +26 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -1
- package/dist/src/Event.d.ts +1 -1
- package/dist/src/Event.js +1 -1
- package/dist/src/EventBus.d.ts +10 -4
- package/dist/src/EventBus.js +1 -1
- package/dist/src/EventContext.d.ts +6 -0
- package/dist/src/EventContext.js +18 -0
- package/dist/src/EventInfoUtil.d.ts +12 -0
- package/dist/src/EventInfoUtil.js +30 -4
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -56,3 +56,29 @@ export class Foo {
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
```
|
|
59
|
+
|
|
60
|
+
### handle multiple event
|
|
61
|
+
```ts
|
|
62
|
+
@Event('hello')
|
|
63
|
+
@Event('hi')
|
|
64
|
+
export class Foo {
|
|
65
|
+
async handle(msg: string): Promise<void> {
|
|
66
|
+
console.log('msg: ', msg);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### inject event context
|
|
72
|
+
inject event context if you want to know which event is being handled.
|
|
73
|
+
The context param must be the first param
|
|
74
|
+
|
|
75
|
+
```ts
|
|
76
|
+
@Event('hello')
|
|
77
|
+
@Event('hi')
|
|
78
|
+
export class Foo {
|
|
79
|
+
async handle(@EventContext() ctx: IEventContext, msg: string):Promise<void> {
|
|
80
|
+
console.log('eventName: ', ctx.eventName);
|
|
81
|
+
console.log('msg: ', msg);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
```
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./src/EventBus"), exports);
|
|
18
18
|
__exportStar(require("./src/Event"), exports);
|
|
19
19
|
__exportStar(require("./src/EventInfoUtil"), exports);
|
|
20
|
-
|
|
20
|
+
__exportStar(require("./src/EventContext"), exports);
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQStCO0FBQy9CLDhDQUE0QjtBQUM1QixzREFBb0M7QUFDcEMscURBQW1DIn0=
|
package/dist/src/Event.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="src/type" />
|
|
2
2
|
import { EventHandler } from '../index';
|
|
3
|
-
import { Events } from '@eggjs/tegg';
|
|
3
|
+
import type { Events } from '@eggjs/tegg';
|
|
4
4
|
export declare function Event<E extends keyof Events>(eventName: E): (clazz: new () => EventHandler<E>) => void;
|
package/dist/src/Event.js
CHANGED
|
@@ -6,7 +6,7 @@ const tegg_common_util_1 = require("@eggjs/tegg-common-util");
|
|
|
6
6
|
const EventInfoUtil_1 = require("./EventInfoUtil");
|
|
7
7
|
function Event(eventName) {
|
|
8
8
|
return function (clazz) {
|
|
9
|
-
EventInfoUtil_1.EventInfoUtil.
|
|
9
|
+
EventInfoUtil_1.EventInfoUtil.addEventName(eventName, clazz);
|
|
10
10
|
const func = (0, core_decorator_1.SingletonProto)({
|
|
11
11
|
accessLevel: core_decorator_1.AccessLevel.PUBLIC,
|
|
12
12
|
});
|
package/dist/src/EventBus.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/// <reference types="src/type" />
|
|
2
|
-
import TypedEventEmitter
|
|
3
|
-
import {
|
|
2
|
+
import TypedEventEmitter from 'typed-emitter';
|
|
3
|
+
import type { Arguments } from 'typed-emitter';
|
|
4
|
+
import type { Events } from '@eggjs/tegg';
|
|
5
|
+
import { IEventContext } from './EventContext';
|
|
4
6
|
export type EventName = string | symbol;
|
|
7
|
+
export type { Arguments } from 'typed-emitter';
|
|
5
8
|
/**
|
|
6
9
|
* use `emit` to emit a event
|
|
7
10
|
*/
|
|
@@ -37,6 +40,9 @@ export interface EventWaiter {
|
|
|
37
40
|
args: Arguments<Events[E1] | Events[E2] | Events[E3] | Events[E4]>;
|
|
38
41
|
}>;
|
|
39
42
|
}
|
|
40
|
-
|
|
43
|
+
type EventHandlerWithContext<E extends keyof Events> = {
|
|
44
|
+
handle: (ctx: IEventContext, ...args: Arguments<Events[E]>) => ReturnType<Events[E]>;
|
|
45
|
+
};
|
|
46
|
+
export type EventHandler<E extends keyof Events> = {
|
|
41
47
|
handle: Events[E];
|
|
42
|
-
}
|
|
48
|
+
} | EventHandlerWithContext<E>;
|
package/dist/src/EventBus.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CORK_ID = void 0;
|
|
4
4
|
exports.CORK_ID = Symbol.for('eventBus#corkId');
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRCdXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRXZlbnRCdXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBc0JhLFFBQUEsT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.EventContext = void 0;
|
|
7
|
+
const assert_1 = __importDefault(require("assert"));
|
|
8
|
+
const EventInfoUtil_1 = require("./EventInfoUtil");
|
|
9
|
+
function EventContext() {
|
|
10
|
+
return function (target, propertyKey, parameterIndex) {
|
|
11
|
+
(0, assert_1.default)(propertyKey === 'handle', `[eventHandler ${target.name}] expect method name be handle, but now is ${String(propertyKey)}`);
|
|
12
|
+
(0, assert_1.default)(parameterIndex === 0, `[eventHandler ${target.name}] expect param EventContext be the first param`);
|
|
13
|
+
const clazz = target.constructor;
|
|
14
|
+
EventInfoUtil_1.EventInfoUtil.setEventHandlerContextInject(true, clazz);
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
exports.EventContext = EventContext;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRDb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V2ZW50Q29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFJQSxvREFBNEI7QUFDNUIsbURBQWdEO0FBTWhELFNBQWdCLFlBQVk7SUFDMUIsT0FBTyxVQUFTLE1BQVcsRUFBRSxXQUF3QixFQUFFLGNBQXNCO1FBQzNFLElBQUEsZ0JBQU0sRUFBQyxXQUFXLEtBQUssUUFBUSxFQUM3QixpQkFBaUIsTUFBTSxDQUFDLElBQUksOENBQThDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkcsSUFBQSxnQkFBTSxFQUFDLGNBQWMsS0FBSyxDQUFDLEVBQ3pCLGlCQUFpQixNQUFNLENBQUMsSUFBSSxnREFBZ0QsQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxXQUFnQyxDQUFDO1FBQ3RELDZCQUFhLENBQUMsNEJBQTRCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzFELENBQUMsQ0FBQztBQUNKLENBQUM7QUFURCxvQ0FTQyJ9
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
import { EggProtoImplClass } from '@eggjs/core-decorator';
|
|
2
2
|
import { EventName } from './EventBus';
|
|
3
3
|
export declare const EVENT_NAME: unique symbol;
|
|
4
|
+
export declare const EVENT_CONTEXT_INJECT: unique symbol;
|
|
4
5
|
export declare class EventInfoUtil {
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated
|
|
8
|
+
*/
|
|
5
9
|
static setEventName(eventName: EventName, clazz: EggProtoImplClass): void;
|
|
10
|
+
static addEventName(eventName: EventName, clazz: EggProtoImplClass): void;
|
|
11
|
+
static getEventNameList(clazz: EggProtoImplClass): EventName[];
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated
|
|
14
|
+
* return the last eventName which is subscribed firstly by Event decorator
|
|
15
|
+
*/
|
|
6
16
|
static getEventName(clazz: EggProtoImplClass): EventName | undefined;
|
|
17
|
+
static setEventHandlerContextInject(enable: boolean, clazz: EggProtoImplClass): void;
|
|
18
|
+
static getEventHandlerContextInject(clazz: EggProtoImplClass): boolean;
|
|
7
19
|
}
|
|
@@ -1,15 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EventInfoUtil = exports.EVENT_NAME = void 0;
|
|
3
|
+
exports.EventInfoUtil = exports.EVENT_CONTEXT_INJECT = exports.EVENT_NAME = void 0;
|
|
4
4
|
const core_decorator_1 = require("@eggjs/core-decorator");
|
|
5
5
|
exports.EVENT_NAME = Symbol.for('EggPrototype#eventName');
|
|
6
|
+
exports.EVENT_CONTEXT_INJECT = Symbol.for('EggPrototype#event#handler#context#inject');
|
|
6
7
|
class EventInfoUtil {
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated
|
|
10
|
+
*/
|
|
7
11
|
static setEventName(eventName, clazz) {
|
|
8
|
-
|
|
12
|
+
EventInfoUtil.addEventName(eventName, clazz);
|
|
9
13
|
}
|
|
14
|
+
static addEventName(eventName, clazz) {
|
|
15
|
+
const eventNameList = core_decorator_1.MetadataUtil.initOwnArrayMetaData(exports.EVENT_NAME, clazz, []);
|
|
16
|
+
eventNameList.push(eventName);
|
|
17
|
+
}
|
|
18
|
+
static getEventNameList(clazz) {
|
|
19
|
+
return core_decorator_1.MetadataUtil.getArrayMetaData(exports.EVENT_NAME, clazz);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @deprecated
|
|
23
|
+
* return the last eventName which is subscribed firstly by Event decorator
|
|
24
|
+
*/
|
|
10
25
|
static getEventName(clazz) {
|
|
11
|
-
|
|
26
|
+
const eventNameList = core_decorator_1.MetadataUtil.initOwnArrayMetaData(exports.EVENT_NAME, clazz, []);
|
|
27
|
+
if (eventNameList.length !== 0) {
|
|
28
|
+
return eventNameList[eventNameList.length - 1];
|
|
29
|
+
}
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
static setEventHandlerContextInject(enable, clazz) {
|
|
33
|
+
core_decorator_1.MetadataUtil.defineMetaData(exports.EVENT_CONTEXT_INJECT, enable, clazz);
|
|
34
|
+
}
|
|
35
|
+
static getEventHandlerContextInject(clazz) {
|
|
36
|
+
var _a;
|
|
37
|
+
return (_a = core_decorator_1.MetadataUtil.getMetaData(exports.EVENT_CONTEXT_INJECT, clazz)) !== null && _a !== void 0 ? _a : false;
|
|
12
38
|
}
|
|
13
39
|
}
|
|
14
40
|
exports.EventInfoUtil = EventInfoUtil;
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRJbmZvVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9FdmVudEluZm9VdGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDBEQUF3RTtBQUczRCxRQUFBLFVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFDbEQsUUFBQSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7QUFFNUYsTUFBYSxhQUFhO0lBQ3hCOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFvQixFQUFFLEtBQXdCO1FBQ2hFLGFBQWEsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQW9CLEVBQUUsS0FBd0I7UUFDaEUsTUFBTSxhQUFhLEdBQUcsNkJBQVksQ0FBQyxvQkFBb0IsQ0FBWSxrQkFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxRixhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBd0I7UUFDOUMsT0FBTyw2QkFBWSxDQUFDLGdCQUFnQixDQUFDLGtCQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBd0I7UUFDMUMsTUFBTSxhQUFhLEdBQUcsNkJBQVksQ0FBQyxvQkFBb0IsQ0FBWSxrQkFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxRixJQUFJLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0IsT0FBTyxhQUFhLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxNQUFlLEVBQUUsS0FBd0I7UUFDM0UsNkJBQVksQ0FBQyxjQUFjLENBQUMsNEJBQW9CLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxNQUFNLENBQUMsNEJBQTRCLENBQUMsS0FBd0I7O1FBQzFELE9BQU8sTUFBQSw2QkFBWSxDQUFDLFdBQVcsQ0FBQyw0QkFBb0IsRUFBRSxLQUFLLENBQUMsbUNBQUksS0FBSyxDQUFDO0lBQ3hFLENBQUM7Q0FDRjtBQXBDRCxzQ0FvQ0MifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/eventbus-decorator",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.30.0",
|
|
4
4
|
"description": "tegg eventbus decorator",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"egg",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"directory": "core/eventbus-decorator"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@eggjs/core-decorator": "^3.
|
|
38
|
-
"@eggjs/tegg-common-util": "^3.
|
|
37
|
+
"@eggjs/core-decorator": "^3.30.0",
|
|
38
|
+
"@eggjs/tegg-common-util": "^3.30.0",
|
|
39
39
|
"typed-emitter": "^1.3.1"
|
|
40
40
|
},
|
|
41
41
|
"engines": {
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"publishConfig": {
|
|
54
54
|
"access": "public"
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "7ac47ca5919b706c6e65a004bef9ad48a33ee106"
|
|
57
57
|
}
|