@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 +9 -10
- package/dist/action.d.ts +1 -1
- package/dist/action.js +5 -8
- package/dist/actionBus.js +9 -11
- package/dist/actionMap.js +3 -6
- package/dist/event.d.ts +1 -1
- package/dist/event.js +95 -71
- package/dist/eventBus.d.ts +21 -21
- package/dist/eventBus.js +125 -131
- package/dist/index.js +7 -23
- package/dist/lib/asyncCall.js +2 -6
- package/dist/lib/listenerSorter.js +1 -4
- package/dist/lib/tagsIntersect.js +1 -4
- package/dist/lib/types.js +4 -7
- package/dist/react/ErrorBoundary.js +13 -13
- package/dist/react/useAction.js +18 -21
- package/dist/react/useActionBus.js +11 -14
- package/dist/react/useActionMap.js +9 -12
- package/dist/react/useEvent.js +14 -17
- package/dist/react/useEventBus.js +16 -19
- package/dist/react/useListenToAction.js +11 -14
- package/dist/react/useListenToActionBus.js +22 -33
- package/dist/react/useListenToEvent.js +15 -27
- package/dist/react/useListenToEventBus.js +17 -30
- package/dist/react/useListenToStoreChanges.js +8 -16
- package/dist/react/useStore.js +8 -12
- package/dist/react/useStoreState.d.ts +1 -1
- package/dist/react/useStoreState.js +10 -12
- package/dist/react.js +13 -29
- package/dist/store.js +54 -43
- package/package.json +19 -17
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
|
|
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
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
const { trigger, addListener, removeAllListeners, removeListener, promise, } =
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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 =
|
|
5
|
+
const errorEvent = createEvent();
|
|
9
6
|
if (errorListener) {
|
|
10
|
-
errorEvent.addListener(
|
|
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 =
|
|
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
|
-
|
|
2
|
-
|
|
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 =
|
|
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: <
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
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) => (
|
|
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 (
|
|
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
|
-
? (
|
|
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 ===
|
|
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 ===
|
|
223
|
+
else if (returnType === TriggerReturnType.UNTIL_TRUE
|
|
210
224
|
&& prevValue === true) {
|
|
211
225
|
return true;
|
|
212
226
|
}
|
|
213
|
-
else if (returnType ===
|
|
227
|
+
else if (returnType === TriggerReturnType.UNTIL_FALSE
|
|
214
228
|
&& prevValue === false) {
|
|
215
229
|
return false;
|
|
216
230
|
}
|
|
217
|
-
else if (returnType ===
|
|
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 ===
|
|
256
|
+
if (returnType === TriggerReturnType.PIPE) {
|
|
243
257
|
return args.length > 0 ? args[0] : undefined;
|
|
244
258
|
}
|
|
245
|
-
else if (returnType ===
|
|
246
|
-
|| returnType ===
|
|
247
|
-
|| returnType ===
|
|
259
|
+
else if (returnType === TriggerReturnType.ALL
|
|
260
|
+
|| returnType === TriggerReturnType.CONCAT
|
|
261
|
+
|| returnType === TriggerReturnType.RAW) {
|
|
248
262
|
return [];
|
|
249
263
|
}
|
|
250
|
-
else if (returnType ===
|
|
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 ===
|
|
257
|
-
|| returnType ===
|
|
258
|
-
|| returnType ===
|
|
259
|
-
|| returnType ===
|
|
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 || !(
|
|
289
|
+
&& (!listener.tags || !tagsIntersect(tags, listener.tags))) {
|
|
276
290
|
continue;
|
|
277
291
|
}
|
|
278
292
|
if (currentTagsFilter !== null
|
|
279
293
|
&& currentTagsFilter.length > 0
|
|
280
|
-
&& !(
|
|
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
|
-
|
|
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 ===
|
|
326
|
+
if (returnType === TriggerReturnType.FIRST) {
|
|
313
327
|
return listenerResult;
|
|
314
328
|
}
|
|
315
329
|
if (isConsequent) {
|
|
316
330
|
switch (returnType) {
|
|
317
|
-
case
|
|
331
|
+
case TriggerReturnType.UNTIL_TRUE: {
|
|
318
332
|
if (listenerResult === true) {
|
|
319
333
|
return true;
|
|
320
334
|
}
|
|
321
335
|
break;
|
|
322
336
|
}
|
|
323
|
-
case
|
|
337
|
+
case TriggerReturnType.UNTIL_FALSE: {
|
|
324
338
|
if (listenerResult === false) {
|
|
325
339
|
return false;
|
|
326
340
|
}
|
|
327
341
|
break;
|
|
328
342
|
}
|
|
329
|
-
case
|
|
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
|
|
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
|
|
370
|
+
case TriggerReturnType.ALL: {
|
|
357
371
|
return hasPromises
|
|
358
372
|
? Promise.all(results)
|
|
359
373
|
: results;
|
|
360
374
|
}
|
|
361
|
-
case
|
|
375
|
+
case TriggerReturnType.CONCAT: {
|
|
362
376
|
return hasPromises
|
|
363
|
-
? Promise.all(results).then((
|
|
377
|
+
? Promise.all(results).then((r) => r.flat())
|
|
364
378
|
: results.flat();
|
|
365
379
|
}
|
|
366
|
-
case
|
|
380
|
+
case TriggerReturnType.MERGE: {
|
|
367
381
|
return hasPromises
|
|
368
|
-
? Promise.all(results).then((
|
|
369
|
-
: Object.assign
|
|
382
|
+
? Promise.all(results).then((r) => Object.assign({}, ...r))
|
|
383
|
+
: Object.assign({}, ...results);
|
|
370
384
|
}
|
|
371
|
-
case
|
|
385
|
+
case TriggerReturnType.LAST: {
|
|
372
386
|
return results.pop();
|
|
373
387
|
}
|
|
374
|
-
case
|
|
388
|
+
case TriggerReturnType.UNTIL_TRUE: {
|
|
375
389
|
return;
|
|
376
390
|
}
|
|
377
|
-
case
|
|
391
|
+
case TriggerReturnType.UNTIL_FALSE: {
|
|
378
392
|
return;
|
|
379
393
|
}
|
|
380
|
-
case
|
|
381
|
-
return
|
|
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
|
|
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
|
-
|
|
394
|
-
|
|
395
|
-
|
|
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
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
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,
|
|
429
|
+
return _trigger(args, TriggerReturnType.FIRST);
|
|
406
430
|
};
|
|
407
431
|
const resolveFirst = (...args) => {
|
|
408
|
-
const response = _trigger(args,
|
|
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,
|
|
439
|
+
return _trigger(args, TriggerReturnType.ALL);
|
|
416
440
|
};
|
|
417
441
|
const resolveAll = (...args) => {
|
|
418
|
-
const response = _trigger(args,
|
|
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,
|
|
449
|
+
return _trigger(args, TriggerReturnType.LAST);
|
|
426
450
|
};
|
|
427
451
|
const resolveLast = (...args) => {
|
|
428
|
-
const response = _trigger(args,
|
|
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,
|
|
459
|
+
return _trigger(args, TriggerReturnType.MERGE);
|
|
436
460
|
};
|
|
437
461
|
const resolveMerge = (...args) => {
|
|
438
|
-
const response = _trigger(args,
|
|
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,
|
|
469
|
+
return _trigger(args, TriggerReturnType.CONCAT);
|
|
446
470
|
};
|
|
447
471
|
const resolveConcat = (...args) => {
|
|
448
|
-
const response = _trigger(args,
|
|
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,
|
|
479
|
+
return _trigger(args, TriggerReturnType.FIRST_NON_EMPTY);
|
|
456
480
|
};
|
|
457
481
|
const resolveFirstNonEmpty = (...args) => {
|
|
458
|
-
const response = _trigger(args,
|
|
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,
|
|
489
|
+
_trigger(args, TriggerReturnType.UNTIL_TRUE);
|
|
466
490
|
};
|
|
467
491
|
const untilFalse = (...args) => {
|
|
468
|
-
_trigger(args,
|
|
492
|
+
_trigger(args, TriggerReturnType.UNTIL_FALSE);
|
|
469
493
|
};
|
|
470
494
|
const pipe = (...args) => {
|
|
471
|
-
return _trigger(args,
|
|
495
|
+
return _trigger(args, TriggerReturnType.PIPE);
|
|
472
496
|
};
|
|
473
497
|
const resolvePipe = (...args) => {
|
|
474
|
-
const response = _trigger(args,
|
|
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,
|
|
505
|
+
return _trigger(args, TriggerReturnType.RAW);
|
|
482
506
|
};
|
|
483
507
|
const api = {
|
|
484
508
|
addListener,
|
package/dist/eventBus.d.ts
CHANGED
|
@@ -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<
|
|
70
|
-
readonly resolveFirst: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<
|
|
71
|
-
readonly all: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<
|
|
72
|
-
readonly resolveAll: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<
|
|
73
|
-
readonly resolve: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<
|
|
74
|
-
readonly last: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<
|
|
75
|
-
readonly resolveLast: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<
|
|
76
|
-
readonly merge: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<
|
|
77
|
-
readonly resolveMerge: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<
|
|
78
|
-
readonly concat: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<
|
|
79
|
-
readonly resolveConcat: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<
|
|
80
|
-
readonly firstNonEmpty: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<
|
|
81
|
-
readonly resolveFirstNonEmpty: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<
|
|
82
|
-
readonly untilTrue: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<
|
|
83
|
-
readonly untilFalse: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<
|
|
84
|
-
readonly pipe: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<
|
|
85
|
-
readonly resolvePipe: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<
|
|
86
|
-
readonly raw: <K extends KeyOf<GetEventsMap<EventsMap>>, A extends GetEventsMap<EventsMap>[K]["arguments"]>(name: K, ...args: A) => ReturnType<
|
|
87
|
-
readonly withTags: <
|
|
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?:
|
|
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?:
|
|
104
|
+
localEventName?: MapKey | null;
|
|
105
105
|
proxyType?: ProxyType;
|
|
106
106
|
localEventNamePrefix?: string | null;
|
|
107
107
|
}) => void;
|