@eggjs/eventbus-decorator 4.0.0-beta.34 → 4.0.0-beta.36

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/dist/Event.d.ts CHANGED
@@ -1,4 +1,7 @@
1
- import type { EventHandler } from './EventBus.ts';
2
- export interface Events {
3
- }
4
- export declare function Event<E extends keyof Events>(eventName: E): (clazz: new () => EventHandler<E>) => void;
1
+ import { EventHandler } from "./EventBus.js";
2
+
3
+ //#region src/Event.d.ts
4
+ interface Events {}
5
+ declare function Event<E extends keyof Events>(eventName: E): (clazz: new () => EventHandler<E>) => void;
6
+ //#endregion
7
+ export { Event, Events };
package/dist/Event.js CHANGED
@@ -1,14 +1,15 @@
1
- import { AccessLevel, PrototypeUtil, SingletonProto } from '@eggjs/core-decorator';
2
- import { StackUtil } from '@eggjs/tegg-common-util';
3
1
  import { EventInfoUtil } from "./EventInfoUtil.js";
4
- export function Event(eventName) {
5
- return function (clazz) {
6
- EventInfoUtil.addEventName(eventName, clazz);
7
- const func = SingletonProto({
8
- accessLevel: AccessLevel.PUBLIC,
9
- });
10
- func(clazz);
11
- PrototypeUtil.setFilePath(clazz, StackUtil.getCalleeFromStack(false, 5));
12
- };
2
+ import { AccessLevel, PrototypeUtil, SingletonProto } from "@eggjs/core-decorator";
3
+ import { StackUtil } from "@eggjs/tegg-common-util";
4
+
5
+ //#region src/Event.ts
6
+ function Event(eventName) {
7
+ return function(clazz) {
8
+ EventInfoUtil.addEventName(eventName, clazz);
9
+ SingletonProto({ accessLevel: AccessLevel.PUBLIC })(clazz);
10
+ PrototypeUtil.setFilePath(clazz, StackUtil.getCalleeFromStack(false, 5));
11
+ };
13
12
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvRXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUluRCxNQUFNLFVBQVUsS0FBSyxDQUF5QixTQUFZO0lBQ3hELE9BQU8sVUFBVSxLQUFnQztRQUMvQyxhQUFhLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM3QyxNQUFNLElBQUksR0FBRyxjQUFjLENBQUM7WUFDMUIsV0FBVyxFQUFFLFdBQVcsQ0FBQyxNQUFNO1NBQ2hDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNaLGFBQWEsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDLENBQUM7QUFDSixDQUFDIn0=
13
+
14
+ //#endregion
15
+ export { Event };
@@ -1,46 +1,49 @@
1
- import type { Events } from './Event.ts';
2
- import type { IEventContext } from './EventContext.ts';
3
- import type { Arguments, TypedEventEmitter } from './typed-emitter.ts';
4
- export type EventName = string | symbol;
5
- export type { Arguments };
1
+ import { Events } from "./Event.js";
2
+ import { IEventContext } from "./EventContext.js";
3
+ import { Arguments, TypedEventEmitter } from "./typed-emitter.js";
4
+
5
+ //#region src/EventBus.d.ts
6
+ type EventName = string | symbol;
6
7
  /**
7
- * use `emit` to emit a event
8
- */
9
- export interface EventBus extends Pick<TypedEventEmitter<Events>, 'emit'> {
10
- cork(corkId: string): void;
11
- /**
12
- * @return true if uncorked
13
- */
14
- uncork(corkId: string): boolean;
8
+ * use `emit` to emit a event
9
+ */
10
+ interface EventBus extends Pick<TypedEventEmitter<Events>, "emit"> {
11
+ cork(corkId: string): void;
12
+ /**
13
+ * @return true if uncorked
14
+ */
15
+ uncork(corkId: string): boolean;
15
16
  }
16
- export declare const CORK_ID: symbol;
17
- export interface ContextEventBus extends EventBus {
18
- cork(): void;
19
- uncork(): boolean;
17
+ declare const CORK_ID: symbol;
18
+ interface ContextEventBus extends EventBus {
19
+ cork(): void;
20
+ uncork(): boolean;
20
21
  }
21
- export type EventKeys = keyof Events;
22
+ type EventKeys = keyof Events;
22
23
  /**
23
- * use to ensure event will happen
24
- * Can not inject for now, only use for unittest
25
- */
26
- export interface EventWaiter {
27
- await<E extends keyof Events>(event: E): Promise<Arguments<Events[E]>>;
28
- awaitFirst<E1 extends EventKeys, E2 extends EventKeys>(e1: E1, e2: E2): Promise<{
29
- event: E1 | E2;
30
- args: Arguments<Events[E1] | Events[E2]>;
31
- }>;
32
- awaitFirst<E1 extends EventKeys, E2 extends EventKeys, E3 extends EventKeys>(e1: E1, e2: E2, e3: E3): Promise<{
33
- event: E1 | E2 | E3;
34
- args: Arguments<Events[E1] | Events[E2] | Events[E3]>;
35
- }>;
36
- awaitFirst<E1 extends EventKeys, E2 extends EventKeys, E3 extends EventKeys, E4 extends EventKeys>(e1: E1, e2: E2, e3: E3, e4: E4): Promise<{
37
- event: E1 | E2 | E3 | E4;
38
- args: Arguments<Events[E1] | Events[E2] | Events[E3] | Events[E4]>;
39
- }>;
24
+ * use to ensure event will happen
25
+ * Can not inject for now, only use for unittest
26
+ */
27
+ interface EventWaiter {
28
+ await<E extends keyof Events>(event: E): Promise<Arguments<Events[E]>>;
29
+ awaitFirst<E1 extends EventKeys, E2 extends EventKeys>(e1: E1, e2: E2): Promise<{
30
+ event: E1 | E2;
31
+ args: Arguments<Events[E1] | Events[E2]>;
32
+ }>;
33
+ awaitFirst<E1 extends EventKeys, E2 extends EventKeys, E3 extends EventKeys>(e1: E1, e2: E2, e3: E3): Promise<{
34
+ event: E1 | E2 | E3;
35
+ args: Arguments<Events[E1] | Events[E2] | Events[E3]>;
36
+ }>;
37
+ awaitFirst<E1 extends EventKeys, E2 extends EventKeys, E3 extends EventKeys, E4 extends EventKeys>(e1: E1, e2: E2, e3: E3, e4: E4): Promise<{
38
+ event: E1 | E2 | E3 | E4;
39
+ args: Arguments<Events[E1] | Events[E2] | Events[E3] | Events[E4]>;
40
+ }>;
40
41
  }
41
42
  type EventHandlerWithContext<E extends keyof Events> = {
42
- handle: (ctx: IEventContext, ...args: Arguments<Events[E]>) => ReturnType<Events[E]>;
43
+ handle: (ctx: IEventContext, ...args: Arguments<Events[E]>) => ReturnType<Events[E]>;
43
44
  };
44
- export type EventHandler<E extends keyof Events> = {
45
- handle: Events[E];
45
+ type EventHandler<E extends keyof Events> = {
46
+ handle: Events[E];
46
47
  } | EventHandlerWithContext<E>;
48
+ //#endregion
49
+ export { CORK_ID, ContextEventBus, EventBus, EventHandler, EventKeys, EventName, EventWaiter };
package/dist/EventBus.js CHANGED
@@ -1,2 +1,5 @@
1
- export const CORK_ID = Symbol.for('eventBus#corkId');
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRCdXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvRXZlbnRCdXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUJBLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBVyxNQUFNLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMifQ==
1
+ //#region src/EventBus.ts
2
+ const CORK_ID = Symbol.for("eventBus#corkId");
3
+
4
+ //#endregion
5
+ export { CORK_ID };
@@ -1,5 +1,9 @@
1
- import type { Events } from './Event.ts';
2
- export interface IEventContext {
3
- eventName: keyof Events;
1
+ import { Events } from "./Event.js";
2
+
3
+ //#region src/EventContext.d.ts
4
+ interface IEventContext {
5
+ eventName: keyof Events;
4
6
  }
5
- export declare function EventContext(): (target: any, propertyKey: PropertyKey, parameterIndex: number) => void;
7
+ declare function EventContext(): (target: any, propertyKey: PropertyKey, parameterIndex: number) => void;
8
+ //#endregion
9
+ export { EventContext, IEventContext };
@@ -1,11 +1,15 @@
1
- import assert from 'node:assert';
2
1
  import { EventInfoUtil } from "./EventInfoUtil.js";
3
- export function EventContext() {
4
- return function (target, propertyKey, parameterIndex) {
5
- assert(propertyKey === 'handle', `[eventHandler ${target.name}] expect method name be handle, but now is ${String(propertyKey)}`);
6
- assert(parameterIndex === 0, `[eventHandler ${target.name}] expect param EventContext be the first param`);
7
- const clazz = target.constructor;
8
- EventInfoUtil.setEventHandlerContextInject(true, clazz);
9
- };
2
+ import assert from "node:assert";
3
+
4
+ //#region src/EventContext.ts
5
+ function EventContext() {
6
+ return function(target, propertyKey, parameterIndex) {
7
+ assert(propertyKey === "handle", `[eventHandler ${target.name}] expect method name be handle, but now is ${String(propertyKey)}`);
8
+ assert(parameterIndex === 0, `[eventHandler ${target.name}] expect param EventContext be the first param`);
9
+ const clazz = target.constructor;
10
+ EventInfoUtil.setEventHandlerContextInject(true, clazz);
11
+ };
10
12
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRDb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0V2ZW50Q29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFJakMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBT25ELE1BQU0sVUFBVSxZQUFZO0lBQzFCLE9BQU8sVUFBVSxNQUFXLEVBQUUsV0FBd0IsRUFBRSxjQUFzQjtRQUM1RSxNQUFNLENBQ0osV0FBVyxLQUFLLFFBQVEsRUFDeEIsaUJBQWlCLE1BQU0sQ0FBQyxJQUFJLDhDQUE4QyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FDaEcsQ0FBQztRQUNGLE1BQU0sQ0FBQyxjQUFjLEtBQUssQ0FBQyxFQUFFLGlCQUFpQixNQUFNLENBQUMsSUFBSSxnREFBZ0QsQ0FBQyxDQUFDO1FBQzNHLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxXQUFnQyxDQUFDO1FBQ3RELGFBQWEsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
13
+
14
+ //#endregion
15
+ export { EventContext };
@@ -1,19 +1,23 @@
1
- import type { EggProtoImplClass } from '@eggjs/tegg-types';
2
- import type { EventName } from './EventBus.ts';
3
- export declare const EVENT_NAME: symbol;
4
- export declare const EVENT_CONTEXT_INJECT: symbol;
5
- export declare class EventInfoUtil {
6
- /**
7
- * @deprecated
8
- */
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
- */
16
- static getEventName(clazz: EggProtoImplClass): EventName | undefined;
17
- static setEventHandlerContextInject(enable: boolean, clazz: EggProtoImplClass): void;
18
- static getEventHandlerContextInject(clazz: EggProtoImplClass): boolean;
1
+ import { EventName } from "./EventBus.js";
2
+ import { EggProtoImplClass } from "@eggjs/tegg-types";
3
+
4
+ //#region src/EventInfoUtil.d.ts
5
+ declare const EVENT_NAME: symbol;
6
+ declare const EVENT_CONTEXT_INJECT: symbol;
7
+ declare class EventInfoUtil {
8
+ /**
9
+ * @deprecated
10
+ */
11
+ static setEventName(eventName: EventName, clazz: EggProtoImplClass): void;
12
+ static addEventName(eventName: EventName, clazz: EggProtoImplClass): void;
13
+ static getEventNameList(clazz: EggProtoImplClass): EventName[];
14
+ /**
15
+ * @deprecated
16
+ * return the last eventName which is subscribed firstly by Event decorator
17
+ */
18
+ static getEventName(clazz: EggProtoImplClass): EventName | undefined;
19
+ static setEventHandlerContextInject(enable: boolean, clazz: EggProtoImplClass): void;
20
+ static getEventHandlerContextInject(clazz: EggProtoImplClass): boolean;
19
21
  }
22
+ //#endregion
23
+ export { EVENT_CONTEXT_INJECT, EVENT_NAME, EventInfoUtil };
@@ -1,36 +1,36 @@
1
- import { MetadataUtil } from '@eggjs/core-decorator';
2
- export const EVENT_NAME = Symbol.for('EggPrototype#eventName');
3
- export const EVENT_CONTEXT_INJECT = Symbol.for('EggPrototype#event#handler#context#inject');
4
- export class EventInfoUtil {
5
- /**
6
- * @deprecated
7
- */
8
- static setEventName(eventName, clazz) {
9
- EventInfoUtil.addEventName(eventName, clazz);
10
- }
11
- static addEventName(eventName, clazz) {
12
- const eventNameList = MetadataUtil.initOwnArrayMetaData(EVENT_NAME, clazz, []);
13
- eventNameList.push(eventName);
14
- }
15
- static getEventNameList(clazz) {
16
- return MetadataUtil.getArrayMetaData(EVENT_NAME, clazz);
17
- }
18
- /**
19
- * @deprecated
20
- * return the last eventName which is subscribed firstly by Event decorator
21
- */
22
- static getEventName(clazz) {
23
- const eventNameList = MetadataUtil.initOwnArrayMetaData(EVENT_NAME, clazz, []);
24
- if (eventNameList.length !== 0) {
25
- return eventNameList[eventNameList.length - 1];
26
- }
27
- return undefined;
28
- }
29
- static setEventHandlerContextInject(enable, clazz) {
30
- MetadataUtil.defineMetaData(EVENT_CONTEXT_INJECT, enable, clazz);
31
- }
32
- static getEventHandlerContextInject(clazz) {
33
- return MetadataUtil.getMetaData(EVENT_CONTEXT_INJECT, clazz) ?? false;
34
- }
35
- }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRJbmZvVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9FdmVudEluZm9VdGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUtyRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQVcsTUFBTSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBQ3ZFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFXLE1BQU0sQ0FBQyxHQUFHLENBQUMsMkNBQTJDLENBQUMsQ0FBQztBQUVwRyxNQUFNLE9BQU8sYUFBYTtJQUN4Qjs7T0FFRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsU0FBb0IsRUFBRSxLQUF3QjtRQUNoRSxhQUFhLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFvQixFQUFFLEtBQXdCO1FBQ2hFLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxvQkFBb0IsQ0FBWSxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFGLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUF3QjtRQUM5QyxPQUFPLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBd0I7UUFDMUMsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLG9CQUFvQixDQUFZLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUYsSUFBSSxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLE9BQU8sYUFBYSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLENBQUMsNEJBQTRCLENBQUMsTUFBZSxFQUFFLEtBQXdCO1FBQzNFLFlBQVksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxNQUFNLENBQUMsNEJBQTRCLENBQUMsS0FBd0I7UUFDMUQsT0FBTyxZQUFZLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUN4RSxDQUFDO0NBQ0YifQ==
1
+ import { MetadataUtil } from "@eggjs/core-decorator";
2
+
3
+ //#region src/EventInfoUtil.ts
4
+ const EVENT_NAME = Symbol.for("EggPrototype#eventName");
5
+ const EVENT_CONTEXT_INJECT = Symbol.for("EggPrototype#event#handler#context#inject");
6
+ var EventInfoUtil = class EventInfoUtil {
7
+ /**
8
+ * @deprecated
9
+ */
10
+ static setEventName(eventName, clazz) {
11
+ EventInfoUtil.addEventName(eventName, clazz);
12
+ }
13
+ static addEventName(eventName, clazz) {
14
+ MetadataUtil.initOwnArrayMetaData(EVENT_NAME, clazz, []).push(eventName);
15
+ }
16
+ static getEventNameList(clazz) {
17
+ return MetadataUtil.getArrayMetaData(EVENT_NAME, clazz);
18
+ }
19
+ /**
20
+ * @deprecated
21
+ * return the last eventName which is subscribed firstly by Event decorator
22
+ */
23
+ static getEventName(clazz) {
24
+ const eventNameList = MetadataUtil.initOwnArrayMetaData(EVENT_NAME, clazz, []);
25
+ if (eventNameList.length !== 0) return eventNameList[eventNameList.length - 1];
26
+ }
27
+ static setEventHandlerContextInject(enable, clazz) {
28
+ MetadataUtil.defineMetaData(EVENT_CONTEXT_INJECT, enable, clazz);
29
+ }
30
+ static getEventHandlerContextInject(clazz) {
31
+ return MetadataUtil.getMetaData(EVENT_CONTEXT_INJECT, clazz) ?? false;
32
+ }
33
+ };
34
+
35
+ //#endregion
36
+ export { EVENT_CONTEXT_INJECT, EVENT_NAME, EventInfoUtil };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
- export * from './EventBus.ts';
2
- export * from './Event.ts';
3
- export * from './EventInfoUtil.ts';
4
- export * from './EventContext.ts';
1
+ import { Event, Events } from "./Event.js";
2
+ import { EventContext, IEventContext } from "./EventContext.js";
3
+ import { Arguments } from "./typed-emitter.js";
4
+ import { CORK_ID, ContextEventBus, EventBus, EventHandler, EventKeys, EventName, EventWaiter } from "./EventBus.js";
5
+ import { EVENT_CONTEXT_INJECT, EVENT_NAME, EventInfoUtil } from "./EventInfoUtil.js";
6
+ export { Arguments, CORK_ID, ContextEventBus, EVENT_CONTEXT_INJECT, EVENT_NAME, Event, EventBus, EventContext, EventHandler, EventInfoUtil, EventKeys, EventName, EventWaiter, Events, IEventContext };
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
- export * from "./EventBus.js";
2
- export * from "./Event.js";
3
- export * from "./EventInfoUtil.js";
4
- export * from "./EventContext.js";
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG1CQUFtQixDQUFDIn0=
1
+ import { CORK_ID } from "./EventBus.js";
2
+ import { EVENT_CONTEXT_INJECT, EVENT_NAME, EventInfoUtil } from "./EventInfoUtil.js";
3
+ import { Event } from "./Event.js";
4
+ import { EventContext } from "./EventContext.js";
5
+
6
+ export { CORK_ID, EVENT_CONTEXT_INJECT, EVENT_NAME, Event, EventContext, EventInfoUtil };
@@ -1,36 +1,39 @@
1
- export type Arguments<T> = [T] extends [(...args: infer U) => any] ? U : [T] extends [void] ? [] : [T];
1
+ //#region src/typed-emitter.d.ts
2
+ type Arguments<T> = [T] extends [(...args: infer U) => any] ? U : [T] extends [void] ? [] : [T];
2
3
  /**
3
- * Type-safe event emitter.
4
- *
5
- * Use it like this:
6
- *
7
- * interface MyEvents {
8
- * error: (error: Error) => void
9
- * message: (from: string, content: string) => void
10
- * }
11
- *
12
- * const myEmitter = new EventEmitter() as TypedEmitter<MyEvents>
13
- *
14
- * myEmitter.on("message", (from, content) => {
15
- * // ...
16
- * })
17
- *
18
- * myEmitter.emit("error", "x") // <- Will catch this type error
19
- */
20
- export interface TypedEventEmitter<Events> {
21
- addListener<E extends keyof Events>(event: E, listener: Events[E]): this;
22
- on<E extends keyof Events>(event: E, listener: Events[E]): this;
23
- once<E extends keyof Events>(event: E, listener: Events[E]): this;
24
- prependListener<E extends keyof Events>(event: E, listener: Events[E]): this;
25
- prependOnceListener<E extends keyof Events>(event: E, listener: Events[E]): this;
26
- off<E extends keyof Events>(event: E, listener: Events[E]): this;
27
- removeAllListeners<E extends keyof Events>(event?: E): this;
28
- removeListener<E extends keyof Events>(event: E, listener: Events[E]): this;
29
- emit<E extends keyof Events>(event: E, ...args: Arguments<Events[E]>): boolean;
30
- eventNames(): (keyof Events | string | symbol)[];
31
- rawListeners<E extends keyof Events>(event: E): Function[];
32
- listeners<E extends keyof Events>(event: E): Function[];
33
- listenerCount<E extends keyof Events>(event: E): number;
34
- getMaxListeners(): number;
35
- setMaxListeners(maxListeners: number): this;
4
+ * Type-safe event emitter.
5
+ *
6
+ * Use it like this:
7
+ *
8
+ * interface MyEvents {
9
+ * error: (error: Error) => void
10
+ * message: (from: string, content: string) => void
11
+ * }
12
+ *
13
+ * const myEmitter = new EventEmitter() as TypedEmitter<MyEvents>
14
+ *
15
+ * myEmitter.on("message", (from, content) => {
16
+ * // ...
17
+ * })
18
+ *
19
+ * myEmitter.emit("error", "x") // <- Will catch this type error
20
+ */
21
+ interface TypedEventEmitter<Events> {
22
+ addListener<E extends keyof Events>(event: E, listener: Events[E]): this;
23
+ on<E extends keyof Events>(event: E, listener: Events[E]): this;
24
+ once<E extends keyof Events>(event: E, listener: Events[E]): this;
25
+ prependListener<E extends keyof Events>(event: E, listener: Events[E]): this;
26
+ prependOnceListener<E extends keyof Events>(event: E, listener: Events[E]): this;
27
+ off<E extends keyof Events>(event: E, listener: Events[E]): this;
28
+ removeAllListeners<E extends keyof Events>(event?: E): this;
29
+ removeListener<E extends keyof Events>(event: E, listener: Events[E]): this;
30
+ emit<E extends keyof Events>(event: E, ...args: Arguments<Events[E]>): boolean;
31
+ eventNames(): (keyof Events | string | symbol)[];
32
+ rawListeners<E extends keyof Events>(event: E): Function[];
33
+ listeners<E extends keyof Events>(event: E): Function[];
34
+ listenerCount<E extends keyof Events>(event: E): number;
35
+ getMaxListeners(): number;
36
+ setMaxListeners(maxListeners: number): this;
36
37
  }
38
+ //#endregion
39
+ export { Arguments, TypedEventEmitter };
package/package.json CHANGED
@@ -1,57 +1,53 @@
1
1
  {
2
2
  "name": "@eggjs/eventbus-decorator",
3
- "version": "4.0.0-beta.34",
3
+ "version": "4.0.0-beta.36",
4
4
  "description": "tegg eventbus decorator",
5
5
  "keywords": [
6
6
  "egg",
7
- "typescript",
8
7
  "eventbus",
9
8
  "eventemitter",
10
- "tegg"
9
+ "tegg",
10
+ "typescript"
11
11
  ],
12
- "type": "module",
13
- "exports": {
14
- ".": "./dist/index.js",
15
- "./package.json": "./package.json"
16
- },
17
- "files": [
18
- "dist"
19
- ],
20
- "author": "killagu <killa123@126.com>",
21
- "license": "MIT",
22
12
  "homepage": "https://github.com/eggjs/egg/tree/next/tegg/core/eventbus-decorator",
23
13
  "bugs": {
24
14
  "url": "https://github.com/eggjs/egg/issues"
25
15
  },
16
+ "license": "MIT",
17
+ "author": "killagu <killa123@126.com>",
26
18
  "repository": {
27
19
  "type": "git",
28
- "url": "git@github.com:eggjs/egg.git",
20
+ "url": "git+https://github.com/eggjs/egg.git",
29
21
  "directory": "tegg/core/eventbus-decorator"
30
22
  },
23
+ "files": [
24
+ "dist"
25
+ ],
26
+ "type": "module",
27
+ "main": "./dist/index.js",
28
+ "module": "./dist/index.js",
29
+ "types": "./dist/index.d.ts",
30
+ "exports": {
31
+ ".": "./dist/index.js",
32
+ "./package.json": "./package.json"
33
+ },
34
+ "publishConfig": {
35
+ "access": "public"
36
+ },
31
37
  "dependencies": {
32
- "@eggjs/core-decorator": "4.0.0-beta.34",
33
- "@eggjs/tegg-common-util": "4.0.0-beta.34",
34
- "@eggjs/tegg-types": "4.0.0-beta.34"
38
+ "@eggjs/core-decorator": "4.0.0-beta.36",
39
+ "@eggjs/tegg-common-util": "4.0.0-beta.36",
40
+ "@eggjs/tegg-types": "4.0.0-beta.36"
35
41
  },
36
42
  "devDependencies": {
37
- "@types/node": "^24.9.1",
43
+ "@types/node": "^24.10.2",
38
44
  "coffee": "5",
39
- "typescript": "^5.9.3",
40
- "tsdown": "0.15.11",
41
- "unplugin-unused": "^0.5.4"
45
+ "typescript": "^5.9.3"
42
46
  },
43
47
  "engines": {
44
48
  "node": ">=22.18.0"
45
49
  },
46
- "publishConfig": {
47
- "access": "public"
48
- },
49
- "main": "./dist/index.js",
50
- "module": "./dist/index.js",
51
- "types": "./dist/index.d.ts",
52
50
  "scripts": {
53
- "clean": "rimraf dist *.tsbuildinfo",
54
- "build": "tsdown && npm run clean && tsc -p tsconfig.build.json",
55
- "typecheck": "tsc --noEmit"
51
+ "typecheck": "tsgo --noEmit"
56
52
  }
57
53
  }
@@ -1,4 +0,0 @@
1
- // forked from https://github.com/andywer/typed-emitter
2
- // export TypedEventEmitter from 'typed-emitter'
3
- export {};
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtZW1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlZC1lbWl0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxnREFBZ0QifQ==