@eggjs/tegg-eventbus-runtime 4.0.0-beta.1 → 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 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
+ [![Node.js Version](https://img.shields.io/node/v/@eggjs/tegg-eventbus-runtime.svg?style=flat)](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
 
@@ -21,4 +21,4 @@ EventContextFactory = __decorate([
21
21
  })
22
22
  ], EventContextFactory);
23
23
  export { EventContextFactory };
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRDb250ZXh0RmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkV2ZW50Q29udGV4dEZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVF6QyxJQUFNLG1CQUFtQixHQUF6QixNQUFNLG1CQUFtQjtJQUN0QixPQUFPLENBQWlCO0lBRWhDLGFBQWEsQ0FBQyxhQUFpQztRQUM3QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELHNCQUFzQixDQUFDLE9BQXVCO1FBQzVDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7Q0FDRixDQUFBO0FBVlksbUJBQW1CO0lBSC9CLGNBQWMsQ0FBQztRQUNkLFdBQVcsRUFBRSxXQUFXLENBQUMsTUFBTTtLQUNoQyxDQUFDO0dBQ1csbUJBQW1CLENBVS9CIn0=
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;
@@ -52,4 +52,4 @@ EventHandlerFactory = __decorate([
52
52
  })
53
53
  ], EventHandlerFactory);
54
54
  export { EventHandlerFactory };
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRIYW5kbGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkV2ZW50SGFuZGxlckZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUE4QyxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBS2hELElBQU0sbUJBQW1CLEdBQXpCLE1BQU0sbUJBQW1CO0lBQ3RCLGVBQWUsR0FBd0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUV6RSxlQUFlLENBQUMsS0FBZ0IsRUFBRSxLQUFtQjtRQUNuRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFnQjtRQUMzQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFnQjtRQUMvQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUQsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBbUI7UUFDbEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sTUFBTSxDQUFDLEdBQWlDLENBQUM7SUFDbEQsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBZ0I7UUFDaEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELE9BQU8sTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFvQixFQUFFLEtBQW1CLEVBQUUsSUFBb0I7UUFDMUUsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQVUsb0JBQW9CLENBQUMsSUFBSSxLQUFLLENBQUM7UUFDbEYsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixNQUFNLEdBQUcsR0FBRztnQkFDVixTQUFTO2FBQ1YsQ0FBQztZQUNGLE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBRSxDQUFDLENBQUM7UUFDakUsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckQsQ0FBQztJQUNILENBQUM7Q0FDRixDQUFBO0FBekNZLG1CQUFtQjtJQUgvQixjQUFjLENBQUM7UUFDZCxXQUFXLEVBQUUsV0FBVyxDQUFDLE1BQU07S0FDaEMsQ0FBQztHQUNXLG1CQUFtQixDQXlDL0IifQ==
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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
@@ -0,0 +1,3 @@
1
+ export * from './SingletonEventBus.ts';
2
+ export * from './EventHandlerFactory.ts';
3
+ export * from './EventContextFactory.ts';
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
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": "4.0.0-beta.1",
3
+ "version": "4.0.0-beta.10",
4
4
  "description": "tegg eventbus runtime",
5
5
  "keywords": [
6
6
  "egg",
@@ -14,24 +14,15 @@
14
14
  },
15
15
  "type": "module",
16
16
  "exports": {
17
- ".": {
18
- "types": "./src/index.d.ts",
19
- "default": "./src/index.js"
20
- }
17
+ ".": "./dist/index.js",
18
+ "./package.json": "./package.json"
21
19
  },
22
20
  "files": [
23
- "src/**/*.js",
24
- "src/**/*.d.ts"
21
+ "dist"
25
22
  ],
26
- "scripts": {
27
- "clean": "tsc -b --clean",
28
- "tsc": "npm run clean && tsc -p ./tsconfig.json",
29
- "tsc:pub": "npm run tsc",
30
- "prepublishOnly": "npm run tsc"
31
- },
32
23
  "author": "killagu <killa123@126.com>",
33
24
  "license": "MIT",
34
- "homepage": "https://github.com/eggjs/tegg",
25
+ "homepage": "https://github.com/eggjs/tegg/tree/next/core/eventbus-runtime",
35
26
  "bugs": {
36
27
  "url": "https://github.com/eggjs/tegg/issues"
37
28
  },
@@ -41,28 +32,37 @@
41
32
  "directory": "core/eventbus-runtime"
42
33
  },
43
34
  "dependencies": {
44
- "@eggjs/core-decorator": "^4.0.0-beta.1",
45
- "@eggjs/eventbus-decorator": "^4.0.0-beta.1",
46
- "@eggjs/tegg-common-util": "^4.0.0-beta.1",
47
- "@eggjs/tegg-runtime": "^4.0.0-beta.1",
48
- "@eggjs/tegg-types": "^4.0.0-beta.1",
49
35
  "await-event": "^2.1.0",
50
- "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"
51
42
  },
52
43
  "engines": {
53
- "node": ">=20.0.0"
44
+ "node": ">=22.18.0"
54
45
  },
55
46
  "devDependencies": {
56
- "@eggjs/tegg-loader": "^4.0.0-beta.1",
57
- "@eggjs/tegg-metadata": "^4.0.0-beta.1",
58
- "@types/node": "22",
59
- "coffee": "5",
60
- "egg": "4",
61
- "ts-node": "10",
62
- "typescript": "5"
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
- "gitHead": "79a22905272d6de7fe06152231dff65d213d9166"
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,166 +0,0 @@
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 { Inject, SingletonProto } from '@eggjs/core-decorator';
11
- import { CORK_ID } from '@eggjs/eventbus-decorator';
12
- import { ContextHandler } from '@eggjs/tegg-runtime';
13
- import { AccessLevel } from '@eggjs/tegg-types';
14
- import { EventContextFactory } from './EventContextFactory.js';
15
- import { EventHandlerFactory } from './EventHandlerFactory.js';
16
- import EventEmitter from 'node:events';
17
- // @ts-expect-error await-event is not typed
18
- import awaitEvent from 'await-event';
19
- // @ts-expect-error await-first is not typed
20
- import awaitFirst from 'await-first';
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 corkdEvents = this.corkedEvents.get(corkId);
79
- if (!corkdEvents) {
80
- throw new Error(`eventbus corkId ${corkId} not found`);
81
- }
82
- corkdEvents.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uRXZlbnRCdXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJTaW5nbGV0b25FdmVudEJ1cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9ELE9BQU8sRUFBNEMsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFOUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLFlBQVksTUFBTSxhQUFhLENBQUM7QUFDdkMsNENBQTRDO0FBQzVDLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQztBQUNyQyw0Q0FBNEM7QUFDNUMsT0FBTyxVQUFVLE1BQU0sYUFBYSxDQUFDO0FBbUI5QixJQUFNLGlCQUFpQixHQUF2QixNQUFNLGlCQUFpQjtJQUNYLE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRzdCLG1CQUFtQixDQUFzQjtJQUd6QyxtQkFBbUIsQ0FBc0I7SUFLekMsTUFBTSxDQUFZO0lBRTNCLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFFVixZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7SUFFM0U7O09BRUc7SUFDSCxJQUFJLENBQXlCLEtBQVEsRUFBRSxRQUFtQjtRQUN4RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBeUIsS0FBUTtRQUMxQyxPQUFPLFVBQVUsQ0FBQyxJQUFJLENB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
package/src/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export * from './SingletonEventBus.js';
2
- export * from './EventHandlerFactory.js';
3
- export * from './EventContextFactory.js';
package/src/index.js DELETED
@@ -1,4 +0,0 @@
1
- export * from './SingletonEventBus.js';
2
- export * from './EventHandlerFactory.js';
3
- export * from './EventContextFactory.js';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywwQkFBMEIsQ0FBQyJ9
File without changes