@kuindji/reactive 1.0.21 → 1.0.24

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
@@ -117,29 +117,28 @@ type ApplicationData = {
117
117
  type: string;
118
118
  message: string;
119
119
  }[];
120
- }
121
- const event = createEvent(<() => Partial<ApplicationData>>);
120
+ };
121
+ const event = createEvent<() => Partial<ApplicationData>>();
122
122
  event.addListener(() => {
123
123
  return {
124
124
  user: {
125
125
  username: "john",
126
126
  role: "admin",
127
- loggedIn: true
128
- }
129
- }
127
+ loggedIn: true,
128
+ },
129
+ };
130
130
  });
131
131
  event.addListener(() => {
132
132
  return {
133
133
  notifications: [
134
134
  {
135
135
  type: "chat",
136
- message: "You've got a new message!"
137
- }
138
- ]
139
- }
136
+ message: "You've got a new message!",
137
+ },
138
+ ],
139
+ };
140
140
  });
141
141
 
142
-
143
142
  const applicationData = event.merge();
144
143
  ```
145
144
 
package/dist/action.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { ApiType, BaseHandler, ErrorListenerSignature, ErrorResponse } from "./lib/types";
2
- export type ActionResponse<Response extends any = any, Args extends any[] = any[]> = {
2
+ export type ActionResponse<Response = any, Args extends unknown[] = unknown[]> = {
3
3
  response: Response;
4
4
  error: null;
5
5
  args: Args;
package/dist/action.js CHANGED
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
2
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
3
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -8,13 +7,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
8
  });
10
9
  };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.createAction = createAction;
13
- const event_1 = require("./event");
14
- function createAction(action) {
15
- const { trigger, addListener, removeAllListeners, removeListener, promise, } = (0, event_1.createEvent)();
16
- const { all: triggerBeforeAction, addListener: addBeforeActionListener, removeAllListeners: removeAllBeforeActionListeners, removeListener: removeBeforeActionListener, promise: beforeActionPromise, } = (0, event_1.createEvent)();
17
- const { trigger: triggerError, addListener: addErrorListener, removeAllListeners: removeAllErrorListeners, removeListener: removeErrorListener, promise: errorPromise, hasListener: hasErrorListeners, } = (0, event_1.createEvent)();
10
+ import { createEvent } from "./event";
11
+ export function createAction(action) {
12
+ const { trigger, addListener, removeAllListeners, removeListener, promise, } = createEvent();
13
+ const { all: triggerBeforeAction, addListener: addBeforeActionListener, removeAllListeners: removeAllBeforeActionListeners, removeListener: removeBeforeActionListener, promise: beforeActionPromise, } = createEvent();
14
+ const { trigger: triggerError, addListener: addErrorListener, removeAllListeners: removeAllErrorListeners, removeListener: removeErrorListener, promise: errorPromise, hasListener: hasErrorListeners, } = createEvent();
18
15
  const invoke = (...args) => __awaiter(this, void 0, void 0, function* () {
19
16
  try {
20
17
  const beforeResults = triggerBeforeAction(...args);
package/dist/actionBus.js CHANGED
@@ -1,19 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createActionBus = createActionBus;
4
- const action_1 = require("./action");
5
- const event_1 = require("./event");
6
- function createActionBus(initialActions = {}, errorListener) {
1
+ import { createAction } from "./action";
2
+ import { createEvent } from "./event";
3
+ export function createActionBus(initialActions = {}, errorListener) {
7
4
  const actions = new Map();
8
- const errorEvent = (0, event_1.createEvent)();
5
+ const errorEvent = createEvent();
9
6
  if (errorListener) {
10
- errorEvent.addListener(({ error, args }) => {
11
- errorEvent.emit({ error, args, type: "action" });
12
- });
7
+ errorEvent.addListener(errorListener);
13
8
  }
14
9
  const add = (name, action) => {
15
10
  if (!actions.has(name)) {
16
- const a = (0, action_1.createAction)(action);
11
+ const a = createAction(action);
17
12
  a.addErrorListener(({ error, args }) => {
18
13
  errorEvent.emit({ name, error, args, type: "action" });
19
14
  });
@@ -28,6 +23,9 @@ function createActionBus(initialActions = {}, errorListener) {
28
23
  };
29
24
  const invoke = (name, ...args) => {
30
25
  const action = get(name);
26
+ if (!action) {
27
+ throw new Error(`Action ${name} not found`);
28
+ }
31
29
  return action.invoke(...args);
32
30
  };
33
31
  const on = (name, handler, options) => {
package/dist/actionMap.js CHANGED
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createActionMap = createActionMap;
4
- const action_1 = require("./action");
5
- function createActionMap(actions, onAnyError) {
1
+ import { createAction } from "./action";
2
+ export function createActionMap(actions, onAnyError) {
6
3
  const errorListenersMap = {};
7
4
  for (const key in actions) {
8
5
  errorListenersMap[key] = (errorResponse) => {
@@ -18,7 +15,7 @@ function createActionMap(actions, onAnyError) {
18
15
  }
19
16
  const map = {};
20
17
  for (const key in actions) {
21
- const action = (0, action_1.createAction)(actions[key]);
18
+ const action = createAction(actions[key]);
22
19
  action.addErrorListener(errorListenersMap[key]);
23
20
  map[key] = action;
24
21
  }
package/dist/event.d.ts CHANGED
@@ -118,7 +118,7 @@ export declare function createEvent<ListenerSignature extends BaseHandler>(event
118
118
  readonly reset: () => void;
119
119
  readonly isSuspended: () => boolean;
120
120
  readonly isQueued: () => boolean;
121
- readonly withTags: <T extends (...args: any[]) => any>(tags: string[], callback: T) => ReturnType<T>;
121
+ readonly withTags: <R>(tags: string[], callback: () => R) => R;
122
122
  readonly promise: (options?: ListenerOptions) => Promise<Parameters<ListenerSignature>>;
123
123
  readonly first: (...args: Parameters<ListenerSignature>) => ReturnType<ListenerSignature> | undefined;
124
124
  readonly resolveFirst: (...args: Parameters<ListenerSignature>) => Promise<Awaited<ReturnType<ListenerSignature>> | undefined>;
package/dist/event.js CHANGED
@@ -1,13 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createEvent = createEvent;
4
- const asyncCall_1 = require("./lib/asyncCall");
5
- const listenerSorter_1 = require("./lib/listenerSorter");
6
- const tagsIntersect_1 = require("./lib/tagsIntersect");
7
- const types_1 = require("./lib/types");
8
- function createEvent(eventOptions = {}) {
1
+ import asyncCall from "./lib/asyncCall";
2
+ import listenerSorter from "./lib/listenerSorter";
3
+ import tagsIntersect from "./lib/tagsIntersect";
4
+ import { TriggerReturnType } from "./lib/types";
5
+ export function createEvent(eventOptions = {}) {
9
6
  let listeners = [];
10
- let errorListeners = [];
7
+ const errorListeners = [];
11
8
  let queue = [];
12
9
  let suspended = false;
13
10
  let queued = false;
@@ -41,7 +38,7 @@ function createEvent(eventOptions = {}) {
41
38
  listeners.forEach((l, inx) => {
42
39
  l.index = inx;
43
40
  });
44
- listeners.sort((l1, l2) => (0, listenerSorter_1.default)(l1, l2));
41
+ listeners.sort((l1, l2) => listenerSorter(l1, l2));
45
42
  }
46
43
  if ((listenerOptions === null || listenerOptions === void 0 ? void 0 : listenerOptions.alwaysFirst) === true
47
44
  || (listenerOptions === null || listenerOptions === void 0 ? void 0 : listenerOptions.alwaysLast) === true) {
@@ -116,7 +113,7 @@ function createEvent(eventOptions = {}) {
116
113
  }
117
114
  };
118
115
  const addErrorListener = (handler, context) => {
119
- if (listeners.find((l) => l.handler === handler && l.context === context)) {
116
+ if (errorListeners.find((l) => l.handler === handler && l.context === context)) {
120
117
  return;
121
118
  }
122
119
  errorListeners.push({ handler, context });
@@ -152,10 +149,14 @@ function createEvent(eventOptions = {}) {
152
149
  const isQueued = () => queued;
153
150
  const reset = () => {
154
151
  listeners.length = 0;
152
+ errorListeners.length = 0;
155
153
  queue.length = 0;
156
154
  suspended = false;
157
155
  queued = false;
158
156
  triggered = 0;
157
+ lastTrigger = null;
158
+ sortListeners = false;
159
+ cachedPromise = null;
159
160
  };
160
161
  const _listenerCall = (listener, args, resolve = null) => {
161
162
  let isAsync = listener.async;
@@ -170,11 +171,24 @@ function createEvent(eventOptions = {}) {
170
171
  }
171
172
  try {
172
173
  const result = isAsync !== false
173
- ? (0, asyncCall_1.default)(listener.handler, listener.context, args, isAsync)
174
+ ? asyncCall(listener.handler, listener.context, args, isAsync)
174
175
  : listener.handler.bind(listener.context)(...args);
175
176
  if (resolve !== null) {
176
177
  if (result instanceof Promise) {
177
- result.then(resolve);
178
+ void result.then(resolve).catch((error) => {
179
+ for (const errorListener of errorListeners) {
180
+ errorListener.handler({
181
+ error: error instanceof Error
182
+ ? error
183
+ : new Error(error),
184
+ args: args,
185
+ type: "event",
186
+ });
187
+ }
188
+ if (errorListeners.length === 0) {
189
+ throw error;
190
+ }
191
+ });
178
192
  }
179
193
  else {
180
194
  resolve(result);
@@ -199,22 +213,22 @@ function createEvent(eventOptions = {}) {
199
213
  }
200
214
  };
201
215
  const _listenerCallWPrev = (listener, args, prevValue, returnType) => {
202
- if (returnType === types_1.TriggerReturnType.PIPE) {
216
+ if (returnType === TriggerReturnType.PIPE) {
203
217
  args[0] = prevValue;
204
218
  // since we don't user listener's arg transformer,
205
219
  // we don't need to prepare args
206
220
  // args = _prepareListenerArgs(args);
207
221
  return _listenerCall(listener, args);
208
222
  }
209
- else if (returnType === types_1.TriggerReturnType.UNTIL_TRUE
223
+ else if (returnType === TriggerReturnType.UNTIL_TRUE
210
224
  && prevValue === true) {
211
225
  return true;
212
226
  }
213
- else if (returnType === types_1.TriggerReturnType.UNTIL_FALSE
227
+ else if (returnType === TriggerReturnType.UNTIL_FALSE
214
228
  && prevValue === false) {
215
229
  return false;
216
230
  }
217
- else if (returnType === types_1.TriggerReturnType.FIRST_NON_EMPTY
231
+ else if (returnType === TriggerReturnType.FIRST_NON_EMPTY
218
232
  && prevValue !== null
219
233
  && prevValue !== undefined) {
220
234
  return prevValue;
@@ -239,24 +253,24 @@ function createEvent(eventOptions = {}) {
239
253
  // in pipe mode if there is no listeners,
240
254
  // we just return piped value
241
255
  if (listeners.length === 0) {
242
- if (returnType === types_1.TriggerReturnType.PIPE) {
256
+ if (returnType === TriggerReturnType.PIPE) {
243
257
  return args.length > 0 ? args[0] : undefined;
244
258
  }
245
- else if (returnType === types_1.TriggerReturnType.ALL
246
- || returnType === types_1.TriggerReturnType.CONCAT
247
- || returnType === types_1.TriggerReturnType.RAW) {
259
+ else if (returnType === TriggerReturnType.ALL
260
+ || returnType === TriggerReturnType.CONCAT
261
+ || returnType === TriggerReturnType.RAW) {
248
262
  return [];
249
263
  }
250
- else if (returnType === types_1.TriggerReturnType.MERGE) {
264
+ else if (returnType === TriggerReturnType.MERGE) {
251
265
  return {};
252
266
  }
253
267
  return;
254
268
  }
255
269
  const listenersQueue = listeners.slice();
256
- const isConsequent = returnType === types_1.TriggerReturnType.PIPE
257
- || returnType === types_1.TriggerReturnType.UNTIL_TRUE
258
- || returnType === types_1.TriggerReturnType.UNTIL_FALSE
259
- || returnType === types_1.TriggerReturnType.FIRST_NON_EMPTY;
270
+ const isConsequent = returnType === TriggerReturnType.PIPE
271
+ || returnType === TriggerReturnType.UNTIL_TRUE
272
+ || returnType === TriggerReturnType.UNTIL_FALSE
273
+ || returnType === TriggerReturnType.FIRST_NON_EMPTY;
260
274
  let listener;
261
275
  let listenerResult;
262
276
  const results = [];
@@ -272,12 +286,12 @@ function createEvent(eventOptions = {}) {
272
286
  }
273
287
  if (tags
274
288
  && tags.length > 0
275
- && (!listener.tags || !(0, tagsIntersect_1.default)(tags, listener.tags))) {
289
+ && (!listener.tags || !tagsIntersect(tags, listener.tags))) {
276
290
  continue;
277
291
  }
278
292
  if (currentTagsFilter !== null
279
293
  && currentTagsFilter.length > 0
280
- && !(0, tagsIntersect_1.default)(currentTagsFilter, listener.tags)) {
294
+ && !tagsIntersect(currentTagsFilter, listener.tags)) {
281
295
  continue;
282
296
  }
283
297
  listener.count++;
@@ -287,7 +301,7 @@ function createEvent(eventOptions = {}) {
287
301
  continue;
288
302
  }
289
303
  if (isConsequent && results.length > 0) {
290
- let prev = results[results.length - 1];
304
+ const prev = results[results.length - 1];
291
305
  if (hasPromises) {
292
306
  const prevPromise = prev instanceof Promise
293
307
  ? prev
@@ -309,24 +323,24 @@ function createEvent(eventOptions = {}) {
309
323
  if (listener.called === listener.limit) {
310
324
  removeListener(listener.handler, listener.context);
311
325
  }
312
- if (returnType === types_1.TriggerReturnType.FIRST) {
326
+ if (returnType === TriggerReturnType.FIRST) {
313
327
  return listenerResult;
314
328
  }
315
329
  if (isConsequent) {
316
330
  switch (returnType) {
317
- case types_1.TriggerReturnType.UNTIL_TRUE: {
331
+ case TriggerReturnType.UNTIL_TRUE: {
318
332
  if (listenerResult === true) {
319
333
  return true;
320
334
  }
321
335
  break;
322
336
  }
323
- case types_1.TriggerReturnType.UNTIL_FALSE: {
337
+ case TriggerReturnType.UNTIL_FALSE: {
324
338
  if (listenerResult === false) {
325
339
  return false;
326
340
  }
327
341
  break;
328
342
  }
329
- case types_1.TriggerReturnType.FIRST_NON_EMPTY: {
343
+ case TriggerReturnType.FIRST_NON_EMPTY: {
330
344
  if (!hasPromises
331
345
  && !(listenerResult instanceof Promise)
332
346
  && listenerResult !== null
@@ -343,7 +357,7 @@ function createEvent(eventOptions = {}) {
343
357
  results.push(listenerResult);
344
358
  }
345
359
  switch (returnType) {
346
- case types_1.TriggerReturnType.RAW: {
360
+ case TriggerReturnType.RAW: {
347
361
  return results;
348
362
  }
349
363
  case undefined:
@@ -353,34 +367,36 @@ function createEvent(eventOptions = {}) {
353
367
  }
354
368
  return;
355
369
  }
356
- case types_1.TriggerReturnType.ALL: {
370
+ case TriggerReturnType.ALL: {
357
371
  return hasPromises
358
372
  ? Promise.all(results)
359
373
  : results;
360
374
  }
361
- case types_1.TriggerReturnType.CONCAT: {
375
+ case TriggerReturnType.CONCAT: {
362
376
  return hasPromises
363
- ? Promise.all(results).then((results) => results.flat())
377
+ ? Promise.all(results).then((r) => r.flat())
364
378
  : results.flat();
365
379
  }
366
- case types_1.TriggerReturnType.MERGE: {
380
+ case TriggerReturnType.MERGE: {
367
381
  return hasPromises
368
- ? Promise.all(results).then((results) => Object.assign.apply(null, [{}, ...results]))
369
- : Object.assign.apply(null, [{}, ...results]);
382
+ ? Promise.all(results).then((r) => Object.assign({}, ...r))
383
+ : Object.assign({}, ...results);
370
384
  }
371
- case types_1.TriggerReturnType.LAST: {
385
+ case TriggerReturnType.LAST: {
372
386
  return results.pop();
373
387
  }
374
- case types_1.TriggerReturnType.UNTIL_TRUE: {
388
+ case TriggerReturnType.UNTIL_TRUE: {
375
389
  return;
376
390
  }
377
- case types_1.TriggerReturnType.UNTIL_FALSE: {
391
+ case TriggerReturnType.UNTIL_FALSE: {
378
392
  return;
379
393
  }
380
- case types_1.TriggerReturnType.FIRST_NON_EMPTY: {
381
- return Promise.all(results).then((results) => results.find((r) => r !== undefined && r !== null));
394
+ case TriggerReturnType.FIRST_NON_EMPTY: {
395
+ return hasPromises
396
+ ? Promise.all(results).then((r) => r.find((item) => item !== undefined && item !== null))
397
+ : results.find((item) => item !== undefined && item !== null);
382
398
  }
383
- case types_1.TriggerReturnType.PIPE: {
399
+ case TriggerReturnType.PIPE: {
384
400
  return results[results.length - 1];
385
401
  }
386
402
  }
@@ -390,95 +406,103 @@ function createEvent(eventOptions = {}) {
390
406
  };
391
407
  const withTags = (tags, callback) => {
392
408
  currentTagsFilter = tags;
393
- const result = callback();
394
- currentTagsFilter = null;
395
- return result;
409
+ try {
410
+ return callback();
411
+ }
412
+ finally {
413
+ currentTagsFilter = null;
414
+ }
396
415
  };
416
+ let cachedPromise = null;
397
417
  const promise = (options) => {
398
- return new Promise((resolve) => {
399
- options = Object.assign(Object.assign({}, (options || {})), { limit: 1 });
400
- const l = ((...args) => resolve(args));
401
- addListener(l, options);
402
- });
418
+ return cachedPromise = cachedPromise
419
+ || new Promise((resolve) => {
420
+ options = Object.assign(Object.assign({}, (options || {})), { limit: 1 });
421
+ const l = ((...args) => {
422
+ resolve(args);
423
+ cachedPromise = null;
424
+ });
425
+ addListener(l, options);
426
+ });
403
427
  };
404
428
  const first = (...args) => {
405
- return _trigger(args, types_1.TriggerReturnType.FIRST);
429
+ return _trigger(args, TriggerReturnType.FIRST);
406
430
  };
407
431
  const resolveFirst = (...args) => {
408
- const response = _trigger(args, types_1.TriggerReturnType.FIRST);
432
+ const response = _trigger(args, TriggerReturnType.FIRST);
409
433
  if (response instanceof Promise) {
410
434
  return response;
411
435
  }
412
436
  return Promise.resolve(response);
413
437
  };
414
438
  const all = (...args) => {
415
- return _trigger(args, types_1.TriggerReturnType.ALL);
439
+ return _trigger(args, TriggerReturnType.ALL);
416
440
  };
417
441
  const resolveAll = (...args) => {
418
- const response = _trigger(args, types_1.TriggerReturnType.ALL);
442
+ const response = _trigger(args, TriggerReturnType.ALL);
419
443
  if (response instanceof Promise) {
420
444
  return response;
421
445
  }
422
446
  return Promise.resolve(response);
423
447
  };
424
448
  const last = (...args) => {
425
- return _trigger(args, types_1.TriggerReturnType.LAST);
449
+ return _trigger(args, TriggerReturnType.LAST);
426
450
  };
427
451
  const resolveLast = (...args) => {
428
- const response = _trigger(args, types_1.TriggerReturnType.LAST);
452
+ const response = _trigger(args, TriggerReturnType.LAST);
429
453
  if (response instanceof Promise) {
430
454
  return response;
431
455
  }
432
456
  return Promise.resolve(response);
433
457
  };
434
458
  const merge = (...args) => {
435
- return _trigger(args, types_1.TriggerReturnType.MERGE);
459
+ return _trigger(args, TriggerReturnType.MERGE);
436
460
  };
437
461
  const resolveMerge = (...args) => {
438
- const response = _trigger(args, types_1.TriggerReturnType.MERGE);
462
+ const response = _trigger(args, TriggerReturnType.MERGE);
439
463
  if (response instanceof Promise) {
440
464
  return response;
441
465
  }
442
466
  return Promise.resolve(response);
443
467
  };
444
468
  const concat = (...args) => {
445
- return _trigger(args, types_1.TriggerReturnType.CONCAT);
469
+ return _trigger(args, TriggerReturnType.CONCAT);
446
470
  };
447
471
  const resolveConcat = (...args) => {
448
- const response = _trigger(args, types_1.TriggerReturnType.CONCAT);
472
+ const response = _trigger(args, TriggerReturnType.CONCAT);
449
473
  if (response instanceof Promise) {
450
474
  return response;
451
475
  }
452
476
  return Promise.resolve(response);
453
477
  };
454
478
  const firstNonEmpty = (...args) => {
455
- return _trigger(args, types_1.TriggerReturnType.FIRST_NON_EMPTY);
479
+ return _trigger(args, TriggerReturnType.FIRST_NON_EMPTY);
456
480
  };
457
481
  const resolveFirstNonEmpty = (...args) => {
458
- const response = _trigger(args, types_1.TriggerReturnType.FIRST_NON_EMPTY);
482
+ const response = _trigger(args, TriggerReturnType.FIRST_NON_EMPTY);
459
483
  if (response instanceof Promise) {
460
484
  return response;
461
485
  }
462
486
  return Promise.resolve(response);
463
487
  };
464
488
  const untilTrue = (...args) => {
465
- _trigger(args, types_1.TriggerReturnType.UNTIL_TRUE);
489
+ _trigger(args, TriggerReturnType.UNTIL_TRUE);
466
490
  };
467
491
  const untilFalse = (...args) => {
468
- _trigger(args, types_1.TriggerReturnType.UNTIL_FALSE);
492
+ _trigger(args, TriggerReturnType.UNTIL_FALSE);
469
493
  };
470
494
  const pipe = (...args) => {
471
- return _trigger(args, types_1.TriggerReturnType.PIPE);
495
+ return _trigger(args, TriggerReturnType.PIPE);
472
496
  };
473
497
  const resolvePipe = (...args) => {
474
- const response = _trigger(args, types_1.TriggerReturnType.PIPE);
498
+ const response = _trigger(args, TriggerReturnType.PIPE);
475
499
  if (response instanceof Promise) {
476
500
  return response;
477
501
  }
478
502
  return Promise.resolve(response);
479
503
  };
480
504
  const raw = (...args) => {
481
- return _trigger(args, types_1.TriggerReturnType.RAW);
505
+ return _trigger(args, TriggerReturnType.RAW);
482
506
  };
483
507
  const api = {
484
508
  addListener,
@@ -66,25 +66,25 @@ export declare function createEventBus<EventsMap extends BaseEventMap = DefaultE
66
66
  readonly dispatch: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => void;
67
67
  readonly get: <K extends KeyOf<GetEventsMap<EventsMap>>>(name: K) => GetEventTypesMap<EventsMap>[K];
68
68
  readonly add: (name: MapKey, options?: EventOptions<BaseHandler>) => void;
69
- readonly first: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<(...args: Parameters<EventsMap[K]>) => ReturnType<EventsMap[K]> | undefined>;
70
- readonly resolveFirst: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<(...args: Parameters<EventsMap[K]>) => Promise<Awaited<ReturnType<EventsMap[K]>> | undefined>>;
71
- readonly all: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<(...args: Parameters<EventsMap[K]>) => ReturnType<EventsMap[K]>[]>;
72
- readonly resolveAll: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<(...args: Parameters<EventsMap[K]>) => Promise<Awaited<ReturnType<EventsMap[K]>>[]>>;
73
- readonly resolve: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<(...args: Parameters<EventsMap[K]>) => Promise<Awaited<ReturnType<EventsMap[K]>>[]>>;
74
- readonly last: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<(...args: Parameters<EventsMap[K]>) => ReturnType<EventsMap[K]> | undefined>;
75
- readonly resolveLast: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<(...args: Parameters<EventsMap[K]>) => Promise<Awaited<ReturnType<EventsMap[K]>> | undefined>>;
76
- readonly merge: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<(...args: Parameters<EventsMap[K]>) => ReturnType<EventsMap[K]> | undefined>;
77
- readonly resolveMerge: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<(...args: Parameters<EventsMap[K]>) => Promise<Awaited<ReturnType<EventsMap[K]>> | undefined>>;
78
- readonly concat: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<(...args: Parameters<EventsMap[K]>) => (ReturnType<EventsMap[K]> extends infer T ? T extends ReturnType<EventsMap[K]> ? T extends (infer U)[] ? U : T : never : never)[]>;
79
- readonly resolveConcat: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<(...args: Parameters<EventsMap[K]>) => Promise<(Awaited<ReturnType<EventsMap[K]>> extends infer T ? T extends Awaited<ReturnType<EventsMap[K]>> ? T extends (infer U)[] ? U : T : never : never)[]>>;
80
- readonly firstNonEmpty: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<(...args: Parameters<EventsMap[K]>) => ReturnType<EventsMap[K]> | undefined>;
81
- readonly resolveFirstNonEmpty: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<(...args: Parameters<EventsMap[K]>) => Promise<Awaited<ReturnType<EventsMap[K]>> | undefined>>;
82
- readonly untilTrue: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<(...args: Parameters<EventsMap[K]>) => void>;
83
- readonly untilFalse: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<(...args: Parameters<EventsMap[K]>) => void>;
84
- readonly pipe: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<(...args: Parameters<EventsMap[K]>) => ReturnType<EventsMap[K]> | undefined>;
85
- readonly resolvePipe: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<(...args: Parameters<EventsMap[K]>) => Promise<Awaited<ReturnType<EventsMap[K]>> | undefined>>;
86
- readonly raw: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<(...args: Parameters<EventsMap[K]>) => (ReturnType<EventsMap[K]> extends infer T ? T extends ReturnType<EventsMap[K]> ? T extends (infer U)[] ? U : T : never : never)[]>;
87
- readonly withTags: <T extends (...args: any[]) => any>(tags: string[], callback: T) => ReturnType<T>;
69
+ readonly first: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<GetEventTypesMap<EventsMap>[K]["first"]>;
70
+ readonly resolveFirst: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<GetEventTypesMap<EventsMap>[K]["resolveFirst"]>;
71
+ readonly all: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<GetEventTypesMap<EventsMap>[K]["all"]>;
72
+ readonly resolveAll: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<GetEventTypesMap<EventsMap>[K]["resolveAll"]>;
73
+ readonly resolve: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<GetEventTypesMap<EventsMap>[K]["resolveAll"]>;
74
+ readonly last: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<GetEventTypesMap<EventsMap>[K]["last"]>;
75
+ readonly resolveLast: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<GetEventTypesMap<EventsMap>[K]["resolveLast"]>;
76
+ readonly merge: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<GetEventTypesMap<EventsMap>[K]["merge"]>;
77
+ readonly resolveMerge: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<GetEventTypesMap<EventsMap>[K]["resolveMerge"]>;
78
+ readonly concat: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<GetEventTypesMap<EventsMap>[K]["concat"]>;
79
+ readonly resolveConcat: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<GetEventTypesMap<EventsMap>[K]["resolveConcat"]>;
80
+ readonly firstNonEmpty: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<GetEventTypesMap<EventsMap>[K]["firstNonEmpty"]>;
81
+ readonly resolveFirstNonEmpty: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<GetEventTypesMap<EventsMap>[K]["resolveFirstNonEmpty"]>;
82
+ readonly untilTrue: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<GetEventTypesMap<EventsMap>[K]["untilTrue"]>;
83
+ readonly untilFalse: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<GetEventTypesMap<EventsMap>[K]["untilFalse"]>;
84
+ readonly pipe: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<GetEventTypesMap<EventsMap>[K]["pipe"]>;
85
+ readonly resolvePipe: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<GetEventTypesMap<EventsMap>[K]["resolvePipe"]>;
86
+ readonly raw: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<GetEventTypesMap<EventsMap>[K]["raw"]>;
87
+ readonly withTags: <R>(tags: string[], callback: () => R) => R;
88
88
  readonly intercept: (fn: InterceptorFunction) => void;
89
89
  readonly stopIntercepting: () => void;
90
90
  readonly isIntercepting: () => boolean;
@@ -94,14 +94,14 @@ export declare function createEventBus<EventsMap extends BaseEventMap = DefaultE
94
94
  readonly relay: ({ eventSource, remoteEventName, localEventName, proxyType, localEventNamePrefix, }: {
95
95
  eventSource: RelaySource;
96
96
  remoteEventName: MapKey;
97
- localEventName?: any;
97
+ localEventName?: MapKey | null;
98
98
  proxyType?: ProxyType;
99
99
  localEventNamePrefix?: string | null;
100
100
  }) => void;
101
101
  readonly unrelay: ({ eventSource, remoteEventName, localEventName, proxyType, localEventNamePrefix, }: {
102
102
  eventSource: RelaySource;
103
103
  remoteEventName: MapKey;
104
- localEventName?: any;
104
+ localEventName?: MapKey | null;
105
105
  proxyType?: ProxyType;
106
106
  localEventNamePrefix?: string | null;
107
107
  }) => void;