@xyo-network/module-events 2.51.10 → 2.52.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/dist/cjs/Events/Events.js +18 -62
- package/dist/cjs/Events/Events.js.map +1 -1
- package/dist/docs.json +539 -604
- package/dist/esm/Events/Events.js +14 -61
- package/dist/esm/Events/Events.js.map +1 -1
- package/dist/types/Events/Events.d.ts +9 -12
- package/dist/types/Events/Events.d.ts.map +1 -1
- package/dist/types/model/Event.d.ts +8 -8
- package/dist/types/model/Event.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/Events/Events.ts +25 -83
- package/src/model/Event.ts +8 -8
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/assert';
|
|
1
2
|
import { forget } from '@xylabs/forget';
|
|
2
|
-
const anyProducer = Symbol('anyProducer');
|
|
3
3
|
const resolvedPromise = Promise.resolve();
|
|
4
4
|
const listenerAdded = 'listenerAdded';
|
|
5
5
|
const listenerRemoved = 'listenerRemoved';
|
|
@@ -19,14 +19,11 @@ const isMetaEvent = (eventName) => eventName === listenerAdded || eventName ===
|
|
|
19
19
|
export class Events {
|
|
20
20
|
static anyMap = new WeakMap();
|
|
21
21
|
static eventsMap = new WeakMap();
|
|
22
|
-
static producersMap = new WeakMap();
|
|
23
22
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
24
23
|
debug;
|
|
25
24
|
constructor(options = {}) {
|
|
26
25
|
Events.anyMap.set(this, new Set());
|
|
27
26
|
Events.eventsMap.set(this, new Map());
|
|
28
|
-
Events.producersMap.set(this, new Map());
|
|
29
|
-
Events.producersMap.get(this).set(anyProducer, new Set());
|
|
30
27
|
this.debug = options.debug;
|
|
31
28
|
if (this.debug) {
|
|
32
29
|
this.debug.enabled = !!this.debug.enabled;
|
|
@@ -75,26 +72,12 @@ export class Events {
|
|
|
75
72
|
if (set) {
|
|
76
73
|
set.clear();
|
|
77
74
|
}
|
|
78
|
-
const producers = this.getEventProducers(eventName);
|
|
79
|
-
if (producers) {
|
|
80
|
-
for (const producer of producers) {
|
|
81
|
-
producer.finish();
|
|
82
|
-
}
|
|
83
|
-
producers.clear();
|
|
84
|
-
}
|
|
85
75
|
}
|
|
86
76
|
else {
|
|
87
|
-
Events.anyMap.get(this)
|
|
88
|
-
for (const [eventName, listeners] of Events.eventsMap.get(this).entries()) {
|
|
77
|
+
Events.anyMap.get(this)?.clear();
|
|
78
|
+
for (const [eventName, listeners] of assertEx(Events.eventsMap.get(this)).entries()) {
|
|
89
79
|
listeners.clear();
|
|
90
|
-
Events.eventsMap.get(this)
|
|
91
|
-
}
|
|
92
|
-
for (const [eventName, producers] of Events.producersMap.get(this).entries()) {
|
|
93
|
-
for (const producer of producers) {
|
|
94
|
-
producer.finish();
|
|
95
|
-
}
|
|
96
|
-
producers.clear();
|
|
97
|
-
Events.producersMap.get(this).delete(eventName);
|
|
80
|
+
Events.eventsMap.get(this)?.delete(eventName);
|
|
98
81
|
}
|
|
99
82
|
}
|
|
100
83
|
}
|
|
@@ -108,9 +91,8 @@ export class Events {
|
|
|
108
91
|
throw new TypeError('`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`');
|
|
109
92
|
}
|
|
110
93
|
this.logIfDebugEnabled('emit', eventName, eventArgs);
|
|
111
|
-
this.enqueueProducers(eventName, eventArgs);
|
|
112
94
|
const listeners = this.getListeners(eventName) ?? new Set();
|
|
113
|
-
const anyListeners = Events.anyMap.get(this);
|
|
95
|
+
const anyListeners = assertEx(Events.anyMap.get(this));
|
|
114
96
|
const staticListeners = [...listeners];
|
|
115
97
|
const staticAnyListeners = isMetaEvent(eventName) ? [] : [...anyListeners];
|
|
116
98
|
await resolvedPromise;
|
|
@@ -145,7 +127,7 @@ export class Events {
|
|
|
145
127
|
}
|
|
146
128
|
this.logIfDebugEnabled('emitSerial', eventName, eventData);
|
|
147
129
|
const listeners = this.getListeners(eventName) ?? new Set();
|
|
148
|
-
const anyListeners = Events.anyMap.get(this);
|
|
130
|
+
const anyListeners = assertEx(Events.anyMap.get(this));
|
|
149
131
|
const staticListeners = [...listeners];
|
|
150
132
|
const staticAnyListeners = [...anyListeners];
|
|
151
133
|
await resolvedPromise;
|
|
@@ -160,16 +142,8 @@ export class Events {
|
|
|
160
142
|
}
|
|
161
143
|
}
|
|
162
144
|
}
|
|
163
|
-
getEventProducers(eventName) {
|
|
164
|
-
const key = typeof eventName === 'string' || typeof eventName === 'symbol' || typeof eventName === 'number' ? eventName : anyProducer;
|
|
165
|
-
const producers = Events.producersMap.get(this);
|
|
166
|
-
if (!producers.has(key)) {
|
|
167
|
-
return;
|
|
168
|
-
}
|
|
169
|
-
return producers.get(key);
|
|
170
|
-
}
|
|
171
145
|
getListeners(eventName) {
|
|
172
|
-
const events = Events.eventsMap.get(this);
|
|
146
|
+
const events = assertEx(Events.eventsMap.get(this));
|
|
173
147
|
if (!events.has(eventName)) {
|
|
174
148
|
return;
|
|
175
149
|
}
|
|
@@ -180,21 +154,14 @@ export class Events {
|
|
|
180
154
|
let count = 0;
|
|
181
155
|
for (const eventName of eventNamesArray) {
|
|
182
156
|
if (typeof eventName === 'string') {
|
|
183
|
-
count +=
|
|
184
|
-
Events.anyMap.get(this).size +
|
|
185
|
-
(this.getListeners(eventName)?.size ?? 0) +
|
|
186
|
-
(this.getEventProducers(eventName)?.size ?? 0) +
|
|
187
|
-
(this.getEventProducers()?.size ?? 0);
|
|
157
|
+
count += assertEx(Events.anyMap.get(this)).size + (this.getListeners(eventName)?.size ?? 0);
|
|
188
158
|
continue;
|
|
189
159
|
}
|
|
190
160
|
if (typeof eventName !== 'undefined') {
|
|
191
161
|
assertEventName(eventName);
|
|
192
162
|
}
|
|
193
|
-
count += Events.anyMap.get(this).size;
|
|
194
|
-
for (const value of Events.eventsMap.get(this).values()) {
|
|
195
|
-
count += value.size;
|
|
196
|
-
}
|
|
197
|
-
for (const value of Events.producersMap.get(this).values()) {
|
|
163
|
+
count += assertEx(Events.anyMap.get(this)).size;
|
|
164
|
+
for (const value of assertEx(Events.eventsMap.get(this)).values()) {
|
|
198
165
|
count += value.size;
|
|
199
166
|
}
|
|
200
167
|
}
|
|
@@ -215,7 +182,7 @@ export class Events {
|
|
|
215
182
|
set.delete(listener);
|
|
216
183
|
if (set.size === 0) {
|
|
217
184
|
const events = Events.eventsMap.get(this);
|
|
218
|
-
events
|
|
185
|
+
events?.delete(eventName);
|
|
219
186
|
}
|
|
220
187
|
}
|
|
221
188
|
this.logIfDebugEnabled('unsubscribe', eventName, undefined);
|
|
@@ -227,7 +194,7 @@ export class Events {
|
|
|
227
194
|
offAny(listener) {
|
|
228
195
|
assertListener(listener);
|
|
229
196
|
this.logIfDebugEnabled('unsubscribeAny', undefined, undefined);
|
|
230
|
-
Events.anyMap.get(this)
|
|
197
|
+
Events.anyMap.get(this)?.delete(listener);
|
|
231
198
|
forget(this.emitMetaEvent(listenerRemoved, { listener }));
|
|
232
199
|
}
|
|
233
200
|
on(eventNames, listener) {
|
|
@@ -239,7 +206,7 @@ export class Events {
|
|
|
239
206
|
if (!set) {
|
|
240
207
|
set = new Set();
|
|
241
208
|
const events = Events.eventsMap.get(this);
|
|
242
|
-
events
|
|
209
|
+
events?.set(eventName, set);
|
|
243
210
|
}
|
|
244
211
|
set.add(listener);
|
|
245
212
|
this.logIfDebugEnabled('subscribe', eventName, undefined);
|
|
@@ -252,7 +219,7 @@ export class Events {
|
|
|
252
219
|
onAny(listener) {
|
|
253
220
|
assertListener(listener);
|
|
254
221
|
this.logIfDebugEnabled('subscribeAny', undefined, undefined);
|
|
255
|
-
Events.anyMap.get(this)
|
|
222
|
+
Events.anyMap.get(this)?.add(listener);
|
|
256
223
|
forget(this.emitMetaEvent(listenerAdded, { listener }));
|
|
257
224
|
return this.offAny.bind(this, listener);
|
|
258
225
|
}
|
|
@@ -264,19 +231,5 @@ export class Events {
|
|
|
264
231
|
this.on(eventNames, subListener);
|
|
265
232
|
return this.off.bind(this, eventNames, subListener);
|
|
266
233
|
}
|
|
267
|
-
enqueueProducers(eventName, eventData) {
|
|
268
|
-
const producers = Events.producersMap.get(this);
|
|
269
|
-
if (producers.has(eventName)) {
|
|
270
|
-
for (const producer of producers.get(eventName)) {
|
|
271
|
-
producer.enqueue(eventData);
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
if (producers.has(anyProducer)) {
|
|
275
|
-
const item = Promise.all([eventName, eventData]);
|
|
276
|
-
for (const producer of producers.get(anyProducer)) {
|
|
277
|
-
producer.enqueue(item);
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
234
|
}
|
|
282
235
|
//# sourceMappingURL=Events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.js","sourceRoot":"","sources":["../../../src/Events/Events.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Events.js","sourceRoot":"","sources":["../../../src/Events/Events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAkCvC,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,EAAE,CAAA;AAEzC,MAAM,aAAa,GAAG,eAAe,CAAA;AACrC,MAAM,eAAe,GAAG,iBAAiB,CAAA;AAOzC,IAAI,iBAAiB,GAAG,KAAK,CAAA;AAC7B,IAAI,oBAAoB,GAAG,KAAK,CAAA;AAEhC,SAAS,eAAe,CAAC,SAAoB;IAC3C,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;QACnG,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAA;KACvE;AACH,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;QAClC,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAA;KACnD;AACH,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,SAAoB,EAAE,EAAE,CAAC,SAAS,KAAK,aAAa,IAAI,SAAS,KAAK,eAAe,CAAA;AAE1G,MAAM,OAAO,MAAM;IACjB,MAAM,CAAC,MAAM,GAAG,IAAI,OAAO,EAAsC,CAAA;IACjE,MAAM,CAAC,SAAS,GAAG,IAAI,OAAO,EAAyD,CAAA;IAEvF,8DAA8D;IAC9D,KAAK,CAAoB;IAEzB,YAAY,UAA+B,EAAE;QAC3C,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAgC,CAAC,CAAA;QAChE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAoD,CAAC,CAAA;QAEvF,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1B,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAA;YAEzC,IAAI,CAAC,KAAK,CAAC,MAAM;gBACf,IAAI,CAAC,KAAK,CAAC,MAAM;oBACjB,CAAC,CAAC,IAAY,EAAE,SAAiB,EAAE,SAA4B,EAAE,SAAwC,EAAE,EAAE;wBAC3G,IAAI,eAAuB,CAAA;wBAC3B,IAAI,eAAmC,CAAA;wBACvC,IAAI;4BACF,sHAAsH;4BACtH,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;yBAC5C;wBAAC,MAAM;4BACN,eAAe,GAAG,uDAAuD,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;yBAClH;wBAED,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;4BAClE,eAAe,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAA;yBACvC;6BAAM;4BACL,eAAe,GAAG,SAAS,CAAA;yBAC5B;wBAED,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAA;wBAC9B,MAAM,OAAO,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,IAAI,WAAW,CAAC,UAAU,EAAE,IAAI,WAAW,CAAC,UAAU,EAAE,IAAI,WAAW,CAAC,eAAe,EAAE,EAAE,CAAA;wBACpI,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,YAAY,IAAI,KAAK,SAAS,iBAAiB,eAAe,aAAa,eAAe,EAAE,CAAC,CAAA;oBACtH,CAAC,CAAC,CAAA;SACL;IACH,CAAC;IAED,MAAM,KAAK,cAAc;QACvB,+GAA+G;QAC/G,oHAAoH;QAEpH,IAAI,OAAO,UAAU,CAAC,OAAO,EAAE,GAAG,KAAK,QAAQ,EAAE;YAC/C,OAAO,oBAAoB,CAAA;SAC5B;QAED,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAA;QACjD,OAAO,GAAG,CAAC,KAAK,KAAK,UAAU,IAAI,GAAG,CAAC,KAAK,KAAK,GAAG,IAAI,oBAAoB,CAAA;IAC9E,CAAC;IAED,MAAM,KAAK,cAAc,CAAC,QAAQ;QAChC,oBAAoB,GAAG,QAAQ,CAAA;IACjC,CAAC;IAED,cAAc,CAAC,UAAmD;QAChE,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;QAE7E,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE;YACvC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;YAErD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;gBACnG,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;gBACxC,IAAI,GAAG,EAAE;oBACP,GAAG,CAAC,KAAK,EAAE,CAAA;iBACZ;aACF;iBAAM;gBACL,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAA;gBAEhC,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE;oBACnF,SAAS,CAAC,KAAK,EAAE,CAAA;oBACjB,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;iBAC9C;aACF;SACF;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAA2B,EAAE,SAAwC;QAC9E,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAC/C,CAAC;IAED,KAAK,CAAC,YAAY,CAA6D,SAAqB,EAAE,SAAsB;QAC1H,eAAe,CAAC,SAAS,CAAC,CAAA;QAE1B,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAChD,MAAM,IAAI,SAAS,CAAC,uEAAuE,CAAC,CAAA;SAC7F;QAED,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;QAEpD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,IAAI,GAAG,EAAE,CAAA;QAC3D,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QACtD,MAAM,eAAe,GAAG,CAAC,GAAG,SAAS,CAAC,CAAA;QACtC,MAAM,kBAAkB,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAA;QAE1E,MAAM,eAAe,CAAA;QACrB,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACxC,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;oBAC3B,OAAO,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAA;iBACjC;YACH,CAAC,CAAC;YACF,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;gBAC3C,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;oBAC9B,OAAO,MAAM,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;iBAC5C;YACH,CAAC,CAAC;SACH,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAA6D,SAAqB,EAAE,SAAqB;QAC1H,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;YAC1B,IAAI;gBACF,iBAAiB,GAAG,IAAI,CAAA;gBACxB,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;aAC9C;oBAAS;gBACR,iBAAiB,GAAG,KAAK,CAAA;aAC1B;SACF;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAA2B,EAAE,SAAuC;QACnF,eAAe,CAAC,SAAS,CAAC,CAAA;QAE1B,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAChD,MAAM,IAAI,SAAS,CAAC,uEAAuE,CAAC,CAAA;SAC7F;QAED,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;QAE1D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,IAAI,GAAG,EAAE,CAAA;QAC3D,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QACtD,MAAM,eAAe,GAAG,CAAC,GAAG,SAAS,CAAC,CAAA;QACtC,MAAM,kBAAkB,GAAG,CAAC,GAAG,YAAY,CAAC,CAAA;QAE5C,MAAM,eAAe,CAAA;QAErB,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE;YACtC,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBAC3B,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAA;aAC1B;SACF;QAED,KAAK,MAAM,QAAQ,IAAI,kBAAkB,EAAE;YACzC,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBAC9B,MAAM,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;aACrC;SACF;IACH,CAAC;IAED,YAAY,CAAC,SAA2B;QACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QACnD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAC1B,OAAM;SACP;QAED,OAAO,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,CAAC;IAED,aAAa,CAAC,UAAmD;QAC/D,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;QAC7E,IAAI,KAAK,GAAG,CAAC,CAAA;QAEb,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE;YACvC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;gBACjC,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAA;gBAE3F,SAAQ;aACT;YAED,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;gBACpC,eAAe,CAAC,SAAS,CAAC,CAAA;aAC3B;YAED,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;YAE/C,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE;gBACjE,KAAK,IAAI,KAAK,CAAC,IAAI,CAAA;aACpB;SACF;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,iBAAiB,CAA6D,IAAY,EAAE,SAAsB,EAAE,SAAsB;QACxI,IAAI,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE;YAChD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;SAClE;IACH,CAAC;IAED,GAAG,CAAC,UAAmD,EAAE,QAAmC;QAC1F,cAAc,CAAC,QAAQ,CAAC,CAAA;QAExB,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;QAC7E,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE;YACvC,eAAe,CAAC,SAAS,CAAC,CAAA;YAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;YACxC,IAAI,GAAG,EAAE;gBACP,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;gBACpB,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE;oBAClB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;oBACzC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;iBAC1B;aACF;YAED,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;YAE3D,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;gBAC3B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;aACrE;SACF;IACH,CAAC;IAED,MAAM,CAAC,QAAsC;QAC3C,cAAc,CAAC,QAAQ,CAAC,CAAA;QAExB,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;QAE9D,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;QACzC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,EAAE,CAAC,UAAmD,EAAE,QAAmC;QACzF,cAAc,CAAC,QAAQ,CAAC,CAAA;QAExB,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;QAC7E,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE;YACvC,eAAe,CAAC,SAAS,CAAC,CAAA;YAC1B,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;YACtC,IAAI,CAAC,GAAG,EAAE;gBACR,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;gBACf,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBACzC,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;aAC5B;YAED,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAEjB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;YAEzD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;gBAC3B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;aACnE;SACF;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,QAAsC;QAC1C,cAAc,CAAC,QAAQ,CAAC,CAAA;QAExB,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;QAE5D,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;QACtC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QACvD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACzC,CAAC;IAED,IAAI,CAAC,UAAmD,EAAE,QAAmC;QAC3F,MAAM,WAAW,GAAG,KAAK,EAAE,IAAmC,EAAE,EAAE;YAChE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;YACjC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC,CAAA;QACD,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;QAChC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;IACrD,CAAC"}
|
|
@@ -32,27 +32,24 @@ export type MetaEventData<TEventData extends EventData> = {
|
|
|
32
32
|
};
|
|
33
33
|
};
|
|
34
34
|
export declare class Events<TEventData extends EventData> implements EventFunctions<TEventData> {
|
|
35
|
-
static anyMap: WeakMap<object, any
|
|
36
|
-
static eventsMap: WeakMap<object, any
|
|
37
|
-
static producersMap: WeakMap<object, any>;
|
|
35
|
+
static anyMap: WeakMap<object, Set<EventAnyListener<any>>>;
|
|
36
|
+
static eventsMap: WeakMap<object, Map<keyof EventData, Set<EventListener<any>>>>;
|
|
38
37
|
debug?: DebugOptions<any>;
|
|
39
38
|
constructor(options?: Options<TEventData>);
|
|
40
39
|
static get isDebugEnabled(): boolean;
|
|
41
40
|
static set isDebugEnabled(newValue: boolean);
|
|
42
|
-
clearListeners(eventNames: keyof TEventData | keyof TEventData[]): void;
|
|
41
|
+
clearListeners(eventNames: keyof TEventData | (keyof TEventData)[]): void;
|
|
43
42
|
emit(eventName: keyof TEventData, eventData?: TEventData[keyof TEventData]): Promise<void>;
|
|
44
43
|
emitInternal<TEventName extends EventName, TEventArgs extends EventArgs>(eventName: TEventName, eventArgs?: TEventArgs): Promise<void>;
|
|
45
44
|
emitMetaEvent<TEventName extends EventName, TEventArgs extends EventArgs>(eventName: TEventName, eventArgs: TEventArgs): Promise<void>;
|
|
46
45
|
emitSerial(eventName: keyof TEventData, eventData: TEventData[keyof TEventData]): Promise<void>;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
listenerCount(eventNames: keyof TEventData | keyof TEventData[]): number;
|
|
46
|
+
getListeners(eventName: keyof TEventData): Set<EventListener<any>> | undefined;
|
|
47
|
+
listenerCount(eventNames: keyof TEventData | (keyof TEventData)[]): number;
|
|
50
48
|
logIfDebugEnabled<TEventName extends EventName, TEventArgs extends EventArgs>(type: string, eventName?: TEventName, eventArgs?: TEventArgs): void;
|
|
51
|
-
off(eventNames: keyof TEventData | keyof TEventData[], listener:
|
|
52
|
-
offAny(listener:
|
|
53
|
-
on(eventNames: keyof TEventData | keyof TEventData[], listener:
|
|
49
|
+
off(eventNames: keyof TEventData | (keyof TEventData)[], listener: EventListener<TEventData>): void;
|
|
50
|
+
offAny(listener: EventAnyListener<TEventData>): void;
|
|
51
|
+
on(eventNames: keyof TEventData | (keyof TEventData)[], listener: EventListener<TEventData>): () => void;
|
|
54
52
|
onAny(listener: EventAnyListener<TEventData>): () => void;
|
|
55
|
-
once(eventNames: keyof TEventData | keyof TEventData[], listener: EventListener<TEventData>): () => void;
|
|
56
|
-
private enqueueProducers;
|
|
53
|
+
once(eventNames: keyof TEventData | (keyof TEventData)[], listener: EventListener<TEventData>): () => void;
|
|
57
54
|
}
|
|
58
55
|
//# sourceMappingURL=Events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../../src/Events/Events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../../src/Events/Events.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
+
import { BaseParams } from '@xyo-network/core';
|
|
1
2
|
import { Promisable } from '@xyo-network/promise';
|
|
2
|
-
import { BaseParams } from '@xyo-network/protocol';
|
|
3
3
|
export type EventName = PropertyKey;
|
|
4
4
|
export type EventArgs = string | number | object;
|
|
5
5
|
export type EventData = {
|
|
6
6
|
[key: EventName]: EventArgs;
|
|
7
7
|
};
|
|
8
8
|
export type EventUnsubscribeFunction = () => void;
|
|
9
|
-
export type EventAnyListener<TEventData extends EventData> = (eventName: keyof TEventData, eventData?: TEventData[keyof TEventData]) => Promisable<void>;
|
|
10
|
-
export type EventListener<TEventData extends EventData> = (eventData?: TEventData[keyof TEventData]) => Promisable<void>;
|
|
9
|
+
export type EventAnyListener<TEventData extends EventData = EventData> = (eventName: keyof TEventData, eventData?: TEventData[keyof TEventData]) => Promisable<void>;
|
|
10
|
+
export type EventListener<TEventData extends EventData = EventData> = (eventData?: TEventData[keyof TEventData]) => Promisable<void>;
|
|
11
11
|
export type OncePromise<T> = {
|
|
12
12
|
off(): void;
|
|
13
13
|
} & Promise<T>;
|
|
14
14
|
export interface EventFunctions<TEventData extends EventData> {
|
|
15
|
-
clearListeners(eventNames: keyof TEventData | keyof TEventData[]): void;
|
|
15
|
+
clearListeners(eventNames: keyof TEventData | (keyof TEventData)[]): void;
|
|
16
16
|
emit(eventName: keyof TEventData, eventData: TEventData[keyof TEventData]): Promise<void>;
|
|
17
17
|
emitSerial(eventName: keyof TEventData, eventData: TEventData[keyof TEventData]): Promise<void>;
|
|
18
|
-
listenerCount(eventNames: keyof TEventData | keyof TEventData[]): number;
|
|
19
|
-
off(eventName: keyof TEventData | keyof TEventData[], listener: EventListener<TEventData>): void;
|
|
18
|
+
listenerCount(eventNames: keyof TEventData | (keyof TEventData)[]): number;
|
|
19
|
+
off(eventName: keyof TEventData | (keyof TEventData)[], listener: EventListener<TEventData>): void;
|
|
20
20
|
offAny(listener: EventAnyListener<TEventData> | Promise<void>): void;
|
|
21
|
-
on(eventName: keyof TEventData | keyof TEventData[], listener: EventListener<TEventData>): EventUnsubscribeFunction;
|
|
21
|
+
on(eventName: keyof TEventData | (keyof TEventData)[], listener: EventListener<TEventData>): EventUnsubscribeFunction;
|
|
22
22
|
onAny(listener: EventAnyListener<TEventData>): EventUnsubscribeFunction;
|
|
23
|
-
once(eventName: keyof TEventData | keyof TEventData[], listener: EventListener<TEventData>): EventUnsubscribeFunction;
|
|
23
|
+
once(eventName: keyof TEventData | (keyof TEventData)[], listener: EventListener<TEventData>): EventUnsubscribeFunction;
|
|
24
24
|
}
|
|
25
25
|
export type EventDataParams<TEventData extends EventData | undefined = undefined, TParams extends BaseParams = BaseParams> = TParams & {
|
|
26
26
|
eventData?: TEventData extends EventData ? TEventData | any : any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Event.d.ts","sourceRoot":"","sources":["../../../src/model/Event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Event.d.ts","sourceRoot":"","sources":["../../../src/model/Event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,MAAM,MAAM,SAAS,GAAG,WAAW,CAAA;AACnC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAChD,MAAM,MAAM,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,CAAA;AACvD,MAAM,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAA;AACjD,MAAM,MAAM,gBAAgB,CAAC,UAAU,SAAS,SAAS,GAAG,SAAS,IAAI,CACvE,SAAS,EAAE,MAAM,UAAU,EAC3B,SAAS,CAAC,EAAE,UAAU,CAAC,MAAM,UAAU,CAAC,KACrC,UAAU,CAAC,IAAI,CAAC,CAAA;AACrB,MAAM,MAAM,aAAa,CAAC,UAAU,SAAS,SAAS,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,MAAM,UAAU,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,CAAA;AAEpI,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,GAAG,IAAI,IAAI,CAAA;CACZ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAEd,MAAM,WAAW,cAAc,CAAC,UAAU,SAAS,SAAS;IAC1D,cAAc,CAAC,UAAU,EAAE,MAAM,UAAU,GAAG,CAAC,MAAM,UAAU,CAAC,EAAE,GAAG,IAAI,CAAA;IACzE,IAAI,CAAC,SAAS,EAAE,MAAM,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzF,UAAU,CAAC,SAAS,EAAE,MAAM,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/F,aAAa,CAAC,UAAU,EAAE,MAAM,UAAU,GAAG,CAAC,MAAM,UAAU,CAAC,EAAE,GAAG,MAAM,CAAA;IAC1E,GAAG,CAAC,SAAS,EAAE,MAAM,UAAU,GAAG,CAAC,MAAM,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,CAAA;IAClG,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACpE,EAAE,CAAC,SAAS,EAAE,MAAM,UAAU,GAAG,CAAC,MAAM,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,wBAAwB,CAAA;IACrH,KAAK,CAAC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,wBAAwB,CAAA;IACvE,IAAI,CAAC,SAAS,EAAE,MAAM,UAAU,GAAG,CAAC,MAAM,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,wBAAwB,CAAA;CACxH;AAED,MAAM,MAAM,eAAe,CAAC,UAAU,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,EAAE,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI,OAAO,GAAG;IAErI,SAAS,CAAC,EAAE,UAAU,SAAS,SAAS,GAAG,UAAU,GAAG,GAAG,GAAG,GAAG,CAAA;CAClE,CAAA"}
|
package/package.json
CHANGED
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/forget": "^2.7.4",
|
|
14
|
-
"@xyo-network/promise": "^2.
|
|
15
|
-
"@xyo-network/protocol": "^2.
|
|
14
|
+
"@xyo-network/promise": "^2.52.0",
|
|
15
|
+
"@xyo-network/protocol": "^2.52.0"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"@xylabs/ts-scripts-yarn3": "^2.16.1",
|
|
@@ -52,5 +52,5 @@
|
|
|
52
52
|
},
|
|
53
53
|
"sideEffects": false,
|
|
54
54
|
"types": "dist/types/index.d.ts",
|
|
55
|
-
"version": "2.
|
|
55
|
+
"version": "2.52.0"
|
|
56
56
|
}
|
package/src/Events/Events.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/assert'
|
|
1
2
|
import { forget } from '@xylabs/forget'
|
|
2
3
|
|
|
3
4
|
import { EventAnyListener, EventArgs, EventData, EventFunctions, EventListener, EventName } from '../model'
|
|
@@ -32,7 +33,6 @@ export type Options<TEventData extends EventData> = {
|
|
|
32
33
|
readonly debug?: DebugOptions<TEventData>
|
|
33
34
|
}
|
|
34
35
|
|
|
35
|
-
const anyProducer = Symbol('anyProducer')
|
|
36
36
|
const resolvedPromise = Promise.resolve()
|
|
37
37
|
|
|
38
38
|
const listenerAdded = 'listenerAdded'
|
|
@@ -61,19 +61,15 @@ function assertListener(listener: object) {
|
|
|
61
61
|
const isMetaEvent = (eventName: EventName) => eventName === listenerAdded || eventName === listenerRemoved
|
|
62
62
|
|
|
63
63
|
export class Events<TEventData extends EventData> implements EventFunctions<TEventData> {
|
|
64
|
-
static anyMap = new WeakMap()
|
|
65
|
-
static eventsMap = new WeakMap()
|
|
66
|
-
static producersMap = new WeakMap()
|
|
64
|
+
static anyMap = new WeakMap<object, Set<EventAnyListener<any>>>()
|
|
65
|
+
static eventsMap = new WeakMap<object, Map<keyof EventData, Set<EventListener<any>>>>()
|
|
67
66
|
|
|
68
67
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
69
68
|
debug?: DebugOptions<any>
|
|
70
69
|
|
|
71
70
|
constructor(options: Options<TEventData> = {}) {
|
|
72
|
-
Events.anyMap.set(this, new Set())
|
|
73
|
-
Events.eventsMap.set(this, new Map())
|
|
74
|
-
Events.producersMap.set(this, new Map())
|
|
75
|
-
|
|
76
|
-
Events.producersMap.get(this).set(anyProducer, new Set())
|
|
71
|
+
Events.anyMap.set(this, new Set<EventAnyListener<TEventData>>())
|
|
72
|
+
Events.eventsMap.set(this, new Map<keyof TEventData, Set<EventListener<TEventData>>>())
|
|
77
73
|
|
|
78
74
|
this.debug = options.debug
|
|
79
75
|
|
|
@@ -121,7 +117,7 @@ export class Events<TEventData extends EventData> implements EventFunctions<TEve
|
|
|
121
117
|
isGlobalDebugEnabled = newValue
|
|
122
118
|
}
|
|
123
119
|
|
|
124
|
-
clearListeners(eventNames: keyof TEventData | keyof TEventData[]) {
|
|
120
|
+
clearListeners(eventNames: keyof TEventData | (keyof TEventData)[]) {
|
|
125
121
|
const eventNamesArray = Array.isArray(eventNames) ? eventNames : [eventNames]
|
|
126
122
|
|
|
127
123
|
for (const eventName of eventNamesArray) {
|
|
@@ -132,30 +128,12 @@ export class Events<TEventData extends EventData> implements EventFunctions<TEve
|
|
|
132
128
|
if (set) {
|
|
133
129
|
set.clear()
|
|
134
130
|
}
|
|
135
|
-
|
|
136
|
-
const producers = this.getEventProducers(eventName)
|
|
137
|
-
if (producers) {
|
|
138
|
-
for (const producer of producers) {
|
|
139
|
-
producer.finish()
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
producers.clear()
|
|
143
|
-
}
|
|
144
131
|
} else {
|
|
145
|
-
Events.anyMap.get(this)
|
|
132
|
+
Events.anyMap.get(this)?.clear()
|
|
146
133
|
|
|
147
|
-
for (const [eventName, listeners] of Events.eventsMap.get(this).entries()) {
|
|
134
|
+
for (const [eventName, listeners] of assertEx(Events.eventsMap.get(this)).entries()) {
|
|
148
135
|
listeners.clear()
|
|
149
|
-
Events.eventsMap.get(this)
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
for (const [eventName, producers] of Events.producersMap.get(this).entries()) {
|
|
153
|
-
for (const producer of producers) {
|
|
154
|
-
producer.finish()
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
producers.clear()
|
|
158
|
-
Events.producersMap.get(this).delete(eventName)
|
|
136
|
+
Events.eventsMap.get(this)?.delete(eventName)
|
|
159
137
|
}
|
|
160
138
|
}
|
|
161
139
|
}
|
|
@@ -174,10 +152,8 @@ export class Events<TEventData extends EventData> implements EventFunctions<TEve
|
|
|
174
152
|
|
|
175
153
|
this.logIfDebugEnabled('emit', eventName, eventArgs)
|
|
176
154
|
|
|
177
|
-
this.enqueueProducers(eventName, eventArgs)
|
|
178
|
-
|
|
179
155
|
const listeners = this.getListeners(eventName) ?? new Set()
|
|
180
|
-
const anyListeners = Events.anyMap.get(this)
|
|
156
|
+
const anyListeners = assertEx(Events.anyMap.get(this))
|
|
181
157
|
const staticListeners = [...listeners]
|
|
182
158
|
const staticAnyListeners = isMetaEvent(eventName) ? [] : [...anyListeners]
|
|
183
159
|
|
|
@@ -217,7 +193,7 @@ export class Events<TEventData extends EventData> implements EventFunctions<TEve
|
|
|
217
193
|
this.logIfDebugEnabled('emitSerial', eventName, eventData)
|
|
218
194
|
|
|
219
195
|
const listeners = this.getListeners(eventName) ?? new Set()
|
|
220
|
-
const anyListeners = Events.anyMap.get(this)
|
|
196
|
+
const anyListeners = assertEx(Events.anyMap.get(this))
|
|
221
197
|
const staticListeners = [...listeners]
|
|
222
198
|
const staticAnyListeners = [...anyListeners]
|
|
223
199
|
|
|
@@ -236,18 +212,8 @@ export class Events<TEventData extends EventData> implements EventFunctions<TEve
|
|
|
236
212
|
}
|
|
237
213
|
}
|
|
238
214
|
|
|
239
|
-
getEventProducers(eventName?: keyof TEventData) {
|
|
240
|
-
const key = typeof eventName === 'string' || typeof eventName === 'symbol' || typeof eventName === 'number' ? eventName : anyProducer
|
|
241
|
-
const producers = Events.producersMap.get(this)
|
|
242
|
-
if (!producers.has(key)) {
|
|
243
|
-
return
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
return producers.get(key)
|
|
247
|
-
}
|
|
248
|
-
|
|
249
215
|
getListeners(eventName: keyof TEventData) {
|
|
250
|
-
const events = Events.eventsMap.get(this)
|
|
216
|
+
const events = assertEx(Events.eventsMap.get(this))
|
|
251
217
|
if (!events.has(eventName)) {
|
|
252
218
|
return
|
|
253
219
|
}
|
|
@@ -255,17 +221,13 @@ export class Events<TEventData extends EventData> implements EventFunctions<TEve
|
|
|
255
221
|
return events.get(eventName)
|
|
256
222
|
}
|
|
257
223
|
|
|
258
|
-
listenerCount(eventNames: keyof TEventData | keyof TEventData[]) {
|
|
224
|
+
listenerCount(eventNames: keyof TEventData | (keyof TEventData)[]) {
|
|
259
225
|
const eventNamesArray = Array.isArray(eventNames) ? eventNames : [eventNames]
|
|
260
226
|
let count = 0
|
|
261
227
|
|
|
262
228
|
for (const eventName of eventNamesArray) {
|
|
263
229
|
if (typeof eventName === 'string') {
|
|
264
|
-
count +=
|
|
265
|
-
Events.anyMap.get(this).size +
|
|
266
|
-
(this.getListeners(eventName)?.size ?? 0) +
|
|
267
|
-
(this.getEventProducers(eventName)?.size ?? 0) +
|
|
268
|
-
(this.getEventProducers()?.size ?? 0)
|
|
230
|
+
count += assertEx(Events.anyMap.get(this)).size + (this.getListeners(eventName)?.size ?? 0)
|
|
269
231
|
|
|
270
232
|
continue
|
|
271
233
|
}
|
|
@@ -274,13 +236,9 @@ export class Events<TEventData extends EventData> implements EventFunctions<TEve
|
|
|
274
236
|
assertEventName(eventName)
|
|
275
237
|
}
|
|
276
238
|
|
|
277
|
-
count += Events.anyMap.get(this).size
|
|
278
|
-
|
|
279
|
-
for (const value of Events.eventsMap.get(this).values()) {
|
|
280
|
-
count += value.size
|
|
281
|
-
}
|
|
239
|
+
count += assertEx(Events.anyMap.get(this)).size
|
|
282
240
|
|
|
283
|
-
for (const value of Events.
|
|
241
|
+
for (const value of assertEx(Events.eventsMap.get(this)).values()) {
|
|
284
242
|
count += value.size
|
|
285
243
|
}
|
|
286
244
|
}
|
|
@@ -294,7 +252,7 @@ export class Events<TEventData extends EventData> implements EventFunctions<TEve
|
|
|
294
252
|
}
|
|
295
253
|
}
|
|
296
254
|
|
|
297
|
-
off(eventNames: keyof TEventData | keyof TEventData[], listener:
|
|
255
|
+
off(eventNames: keyof TEventData | (keyof TEventData)[], listener: EventListener<TEventData>) {
|
|
298
256
|
assertListener(listener)
|
|
299
257
|
|
|
300
258
|
const eventNamesArray = Array.isArray(eventNames) ? eventNames : [eventNames]
|
|
@@ -305,7 +263,7 @@ export class Events<TEventData extends EventData> implements EventFunctions<TEve
|
|
|
305
263
|
set.delete(listener)
|
|
306
264
|
if (set.size === 0) {
|
|
307
265
|
const events = Events.eventsMap.get(this)
|
|
308
|
-
events
|
|
266
|
+
events?.delete(eventName)
|
|
309
267
|
}
|
|
310
268
|
}
|
|
311
269
|
|
|
@@ -317,16 +275,16 @@ export class Events<TEventData extends EventData> implements EventFunctions<TEve
|
|
|
317
275
|
}
|
|
318
276
|
}
|
|
319
277
|
|
|
320
|
-
offAny(listener:
|
|
278
|
+
offAny(listener: EventAnyListener<TEventData>) {
|
|
321
279
|
assertListener(listener)
|
|
322
280
|
|
|
323
281
|
this.logIfDebugEnabled('unsubscribeAny', undefined, undefined)
|
|
324
282
|
|
|
325
|
-
Events.anyMap.get(this)
|
|
283
|
+
Events.anyMap.get(this)?.delete(listener)
|
|
326
284
|
forget(this.emitMetaEvent(listenerRemoved, { listener }))
|
|
327
285
|
}
|
|
328
286
|
|
|
329
|
-
on(eventNames: keyof TEventData | keyof TEventData[], listener:
|
|
287
|
+
on(eventNames: keyof TEventData | (keyof TEventData)[], listener: EventListener<TEventData>) {
|
|
330
288
|
assertListener(listener)
|
|
331
289
|
|
|
332
290
|
const eventNamesArray = Array.isArray(eventNames) ? eventNames : [eventNames]
|
|
@@ -336,7 +294,7 @@ export class Events<TEventData extends EventData> implements EventFunctions<TEve
|
|
|
336
294
|
if (!set) {
|
|
337
295
|
set = new Set()
|
|
338
296
|
const events = Events.eventsMap.get(this)
|
|
339
|
-
events
|
|
297
|
+
events?.set(eventName, set)
|
|
340
298
|
}
|
|
341
299
|
|
|
342
300
|
set.add(listener)
|
|
@@ -356,33 +314,17 @@ export class Events<TEventData extends EventData> implements EventFunctions<TEve
|
|
|
356
314
|
|
|
357
315
|
this.logIfDebugEnabled('subscribeAny', undefined, undefined)
|
|
358
316
|
|
|
359
|
-
Events.anyMap.get(this)
|
|
317
|
+
Events.anyMap.get(this)?.add(listener)
|
|
360
318
|
forget(this.emitMetaEvent(listenerAdded, { listener }))
|
|
361
319
|
return this.offAny.bind(this, listener)
|
|
362
320
|
}
|
|
363
321
|
|
|
364
|
-
once(eventNames: keyof TEventData | keyof TEventData[], listener: EventListener<TEventData>) {
|
|
365
|
-
const subListener = async (args
|
|
322
|
+
once(eventNames: keyof TEventData | (keyof TEventData)[], listener: EventListener<TEventData>) {
|
|
323
|
+
const subListener = async (args?: TEventData[keyof TEventData]) => {
|
|
366
324
|
this.off(eventNames, subListener)
|
|
367
325
|
await listener(args)
|
|
368
326
|
}
|
|
369
327
|
this.on(eventNames, subListener)
|
|
370
328
|
return this.off.bind(this, eventNames, subListener)
|
|
371
329
|
}
|
|
372
|
-
|
|
373
|
-
private enqueueProducers<TEventName extends EventName, TEventArgs extends EventArgs>(eventName: TEventName, eventData?: TEventArgs) {
|
|
374
|
-
const producers = Events.producersMap.get(this)
|
|
375
|
-
if (producers.has(eventName)) {
|
|
376
|
-
for (const producer of producers.get(eventName)) {
|
|
377
|
-
producer.enqueue(eventData)
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
if (producers.has(anyProducer)) {
|
|
382
|
-
const item = Promise.all([eventName, eventData])
|
|
383
|
-
for (const producer of producers.get(anyProducer)) {
|
|
384
|
-
producer.enqueue(item)
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
330
|
}
|
package/src/model/Event.ts
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
|
+
import { BaseParams } from '@xyo-network/core'
|
|
1
2
|
import { Promisable } from '@xyo-network/promise'
|
|
2
|
-
import { BaseParams } from '@xyo-network/protocol'
|
|
3
3
|
|
|
4
4
|
export type EventName = PropertyKey
|
|
5
5
|
export type EventArgs = string | number | object
|
|
6
6
|
export type EventData = { [key: EventName]: EventArgs }
|
|
7
7
|
export type EventUnsubscribeFunction = () => void
|
|
8
|
-
export type EventAnyListener<TEventData extends EventData> = (
|
|
8
|
+
export type EventAnyListener<TEventData extends EventData = EventData> = (
|
|
9
9
|
eventName: keyof TEventData,
|
|
10
10
|
eventData?: TEventData[keyof TEventData],
|
|
11
11
|
) => Promisable<void>
|
|
12
|
-
export type EventListener<TEventData extends EventData> = (eventData?: TEventData[keyof TEventData]) => Promisable<void>
|
|
12
|
+
export type EventListener<TEventData extends EventData = EventData> = (eventData?: TEventData[keyof TEventData]) => Promisable<void>
|
|
13
13
|
|
|
14
14
|
export type OncePromise<T> = {
|
|
15
15
|
off(): void
|
|
16
16
|
} & Promise<T>
|
|
17
17
|
|
|
18
18
|
export interface EventFunctions<TEventData extends EventData> {
|
|
19
|
-
clearListeners(eventNames: keyof TEventData | keyof TEventData[]): void
|
|
19
|
+
clearListeners(eventNames: keyof TEventData | (keyof TEventData)[]): void
|
|
20
20
|
emit(eventName: keyof TEventData, eventData: TEventData[keyof TEventData]): Promise<void>
|
|
21
21
|
emitSerial(eventName: keyof TEventData, eventData: TEventData[keyof TEventData]): Promise<void>
|
|
22
|
-
listenerCount(eventNames: keyof TEventData | keyof TEventData[]): number
|
|
23
|
-
off(eventName: keyof TEventData | keyof TEventData[], listener: EventListener<TEventData>): void
|
|
22
|
+
listenerCount(eventNames: keyof TEventData | (keyof TEventData)[]): number
|
|
23
|
+
off(eventName: keyof TEventData | (keyof TEventData)[], listener: EventListener<TEventData>): void
|
|
24
24
|
offAny(listener: EventAnyListener<TEventData> | Promise<void>): void
|
|
25
|
-
on(eventName: keyof TEventData | keyof TEventData[], listener: EventListener<TEventData>): EventUnsubscribeFunction
|
|
25
|
+
on(eventName: keyof TEventData | (keyof TEventData)[], listener: EventListener<TEventData>): EventUnsubscribeFunction
|
|
26
26
|
onAny(listener: EventAnyListener<TEventData>): EventUnsubscribeFunction
|
|
27
|
-
once(eventName: keyof TEventData | keyof TEventData[], listener: EventListener<TEventData>): EventUnsubscribeFunction
|
|
27
|
+
once(eventName: keyof TEventData | (keyof TEventData)[], listener: EventListener<TEventData>): EventUnsubscribeFunction
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
export type EventDataParams<TEventData extends EventData | undefined = undefined, TParams extends BaseParams = BaseParams> = TParams & {
|