@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.
@@ -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).clear();
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).delete(eventName);
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.delete(eventName);
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).delete(listener);
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.set(eventName, set);
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).add(listener);
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
- getEventProducers(eventName?: keyof TEventData): any;
48
- getListeners(eventName: keyof TEventData): any;
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: object): void;
52
- offAny(listener: object): void;
53
- on(eventNames: keyof TEventData | keyof TEventData[], listener: object): () => void;
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":"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"}
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,sBAAsB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,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,IAAI,CAC3D,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,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,MAAM,UAAU,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,CAAA;AAExH,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,MAAM,UAAU,EAAE,GAAG,IAAI,CAAA;IACvE,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,MAAM,UAAU,EAAE,GAAG,MAAM,CAAA;IACxE,GAAG,CAAC,SAAS,EAAE,MAAM,UAAU,GAAG,MAAM,UAAU,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,CAAA;IAChG,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACpE,EAAE,CAAC,SAAS,EAAE,MAAM,UAAU,GAAG,MAAM,UAAU,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,wBAAwB,CAAA;IACnH,KAAK,CAAC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,wBAAwB,CAAA;IACvE,IAAI,CAAC,SAAS,EAAE,MAAM,UAAU,GAAG,MAAM,UAAU,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,wBAAwB,CAAA;CACtH;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"}
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.51.10",
15
- "@xyo-network/protocol": "^2.51.10"
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.51.10"
55
+ "version": "2.52.0"
56
56
  }
@@ -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).clear()
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).delete(eventName)
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.producersMap.get(this).values()) {
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: object) {
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.delete(eventName)
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: object) {
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).delete(listener)
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: object) {
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.set(eventName, set)
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).add(listener)
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: TEventData[keyof TEventData]) => {
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
  }
@@ -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 & {