@kuindji/reactive 1.0.23 → 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/dist/action.js +5 -8
- package/dist/actionBus.js +5 -8
- package/dist/actionMap.js +3 -6
- package/dist/event.js +52 -55
- package/dist/eventBus.js +74 -77
- package/dist/index.js +7 -23
- package/dist/lib/asyncCall.js +1 -4
- 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 +10 -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 +8 -11
- package/dist/react/useListenToEvent.js +6 -9
- package/dist/react/useListenToEventBus.js +6 -9
- package/dist/react/useListenToStoreChanges.js +5 -8
- package/dist/react/useStore.js +5 -8
- package/dist/react/useStoreState.js +9 -12
- package/dist/react.js +13 -29
- package/dist/store.js +30 -34
- package/package.json +1 -1
package/dist/eventBus.js
CHANGED
|
@@ -1,85 +1,82 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.createEventBus = createEventBus;
|
|
4
|
-
const event_1 = require("./event");
|
|
5
|
-
const types_1 = require("./lib/types");
|
|
1
|
+
import { createEvent } from "./event";
|
|
2
|
+
import { ProxyType, TriggerReturnType, } from "./lib/types";
|
|
6
3
|
function proxyReturnTypeToTriggerReturnType(proxyType) {
|
|
7
4
|
switch (proxyType) {
|
|
8
|
-
case
|
|
5
|
+
case ProxyType.TRIGGER:
|
|
9
6
|
return { returnType: null, resolve: false };
|
|
10
|
-
case
|
|
11
|
-
return { returnType:
|
|
12
|
-
case
|
|
13
|
-
return { returnType:
|
|
14
|
-
case
|
|
15
|
-
return { returnType:
|
|
16
|
-
case
|
|
17
|
-
return { returnType:
|
|
18
|
-
case
|
|
19
|
-
return { returnType:
|
|
20
|
-
case
|
|
21
|
-
return { returnType:
|
|
22
|
-
case
|
|
23
|
-
return { returnType:
|
|
24
|
-
case
|
|
25
|
-
return { returnType:
|
|
26
|
-
case
|
|
7
|
+
case ProxyType.RAW:
|
|
8
|
+
return { returnType: TriggerReturnType.RAW, resolve: false };
|
|
9
|
+
case ProxyType.ALL:
|
|
10
|
+
return { returnType: TriggerReturnType.ALL, resolve: false };
|
|
11
|
+
case ProxyType.CONCAT:
|
|
12
|
+
return { returnType: TriggerReturnType.CONCAT, resolve: false };
|
|
13
|
+
case ProxyType.MERGE:
|
|
14
|
+
return { returnType: TriggerReturnType.MERGE, resolve: false };
|
|
15
|
+
case ProxyType.LAST:
|
|
16
|
+
return { returnType: TriggerReturnType.LAST, resolve: false };
|
|
17
|
+
case ProxyType.PIPE:
|
|
18
|
+
return { returnType: TriggerReturnType.PIPE, resolve: false };
|
|
19
|
+
case ProxyType.FIRST:
|
|
20
|
+
return { returnType: TriggerReturnType.FIRST, resolve: false };
|
|
21
|
+
case ProxyType.UNTIL_TRUE:
|
|
22
|
+
return { returnType: TriggerReturnType.UNTIL_TRUE, resolve: false };
|
|
23
|
+
case ProxyType.UNTIL_FALSE:
|
|
27
24
|
return {
|
|
28
|
-
returnType:
|
|
25
|
+
returnType: TriggerReturnType.UNTIL_FALSE,
|
|
29
26
|
resolve: false,
|
|
30
27
|
};
|
|
31
|
-
case
|
|
28
|
+
case ProxyType.FIRST_NON_EMPTY:
|
|
32
29
|
return {
|
|
33
|
-
returnType:
|
|
30
|
+
returnType: TriggerReturnType.FIRST_NON_EMPTY,
|
|
34
31
|
resolve: false,
|
|
35
32
|
};
|
|
36
|
-
case
|
|
33
|
+
case ProxyType.RESOLVE_ALL:
|
|
37
34
|
return {
|
|
38
|
-
returnType:
|
|
35
|
+
returnType: TriggerReturnType.ALL,
|
|
39
36
|
resolve: true,
|
|
40
37
|
};
|
|
41
|
-
case
|
|
38
|
+
case ProxyType.RESOLVE_MERGE:
|
|
42
39
|
return {
|
|
43
|
-
returnType:
|
|
40
|
+
returnType: TriggerReturnType.MERGE,
|
|
44
41
|
resolve: true,
|
|
45
42
|
};
|
|
46
|
-
case
|
|
43
|
+
case ProxyType.RESOLVE_CONCAT:
|
|
47
44
|
return {
|
|
48
|
-
returnType:
|
|
45
|
+
returnType: TriggerReturnType.CONCAT,
|
|
49
46
|
resolve: true,
|
|
50
47
|
};
|
|
51
|
-
case
|
|
48
|
+
case ProxyType.RESOLVE_FIRST:
|
|
52
49
|
return {
|
|
53
|
-
returnType:
|
|
50
|
+
returnType: TriggerReturnType.FIRST,
|
|
54
51
|
resolve: true,
|
|
55
52
|
};
|
|
56
|
-
case
|
|
53
|
+
case ProxyType.RESOLVE_FIRST_NON_EMPTY:
|
|
57
54
|
return {
|
|
58
|
-
returnType:
|
|
55
|
+
returnType: TriggerReturnType.FIRST_NON_EMPTY,
|
|
59
56
|
resolve: true,
|
|
60
57
|
};
|
|
61
|
-
case
|
|
58
|
+
case ProxyType.RESOLVE_LAST:
|
|
62
59
|
return {
|
|
63
|
-
returnType:
|
|
60
|
+
returnType: TriggerReturnType.LAST,
|
|
64
61
|
resolve: true,
|
|
65
62
|
};
|
|
66
|
-
case
|
|
63
|
+
case ProxyType.RESOLVE_PIPE:
|
|
67
64
|
return {
|
|
68
|
-
returnType:
|
|
65
|
+
returnType: TriggerReturnType.PIPE,
|
|
69
66
|
resolve: true,
|
|
70
67
|
};
|
|
71
68
|
default:
|
|
72
69
|
return { returnType: null, resolve: false };
|
|
73
70
|
}
|
|
74
71
|
}
|
|
75
|
-
function createEventBus(eventBusOptions) {
|
|
72
|
+
export function createEventBus(eventBusOptions) {
|
|
76
73
|
const events = new Map();
|
|
77
74
|
let currentTagsFilter = null;
|
|
78
75
|
let interceptor = null;
|
|
79
76
|
const proxyListeners = [];
|
|
80
77
|
const eventSources = [];
|
|
81
|
-
const asterisk =
|
|
82
|
-
const errorEvent =
|
|
78
|
+
const asterisk = createEvent();
|
|
79
|
+
const errorEvent = createEvent();
|
|
83
80
|
const _getProxyListener = ({ remoteEventName, localEventName, returnType, resolve, localEventNamePrefix, }) => {
|
|
84
81
|
let listener = proxyListeners.find((listener) => listener.returnType === returnType
|
|
85
82
|
&& listener.resolve === resolve
|
|
@@ -132,13 +129,13 @@ function createEventBus(eventBusOptions) {
|
|
|
132
129
|
};
|
|
133
130
|
const add = (name, options) => {
|
|
134
131
|
if (!events.has(name)) {
|
|
135
|
-
events.set(name,
|
|
132
|
+
events.set(name, createEvent(options));
|
|
136
133
|
}
|
|
137
134
|
};
|
|
138
135
|
const _getOrAddEvent = (name) => {
|
|
139
136
|
var _a;
|
|
140
137
|
if (!events.has(name)) {
|
|
141
|
-
events.set(name,
|
|
138
|
+
events.set(name, createEvent((_a = eventBusOptions === null || eventBusOptions === void 0 ? void 0 : eventBusOptions.eventOptions) === null || _a === void 0 ? void 0 : _a[name]));
|
|
142
139
|
}
|
|
143
140
|
return events.get(name);
|
|
144
141
|
};
|
|
@@ -163,7 +160,7 @@ function createEventBus(eventBusOptions) {
|
|
|
163
160
|
return;
|
|
164
161
|
}
|
|
165
162
|
if (evs.subscribed.indexOf(name) === -1) {
|
|
166
|
-
const { returnType, resolve } = proxyReturnTypeToTriggerReturnType(evs.eventSource.proxyType ||
|
|
163
|
+
const { returnType, resolve } = proxyReturnTypeToTriggerReturnType(evs.eventSource.proxyType || ProxyType.TRIGGER);
|
|
167
164
|
const listener = _getProxyListener({
|
|
168
165
|
localEventName: null,
|
|
169
166
|
remoteEventName: name,
|
|
@@ -198,7 +195,7 @@ function createEventBus(eventBusOptions) {
|
|
|
198
195
|
if (inx !== -1) {
|
|
199
196
|
evs.subscribed.splice(inx, 1);
|
|
200
197
|
if (isEmpty) {
|
|
201
|
-
const { returnType, resolve } = proxyReturnTypeToTriggerReturnType(evs.eventSource.proxyType ||
|
|
198
|
+
const { returnType, resolve } = proxyReturnTypeToTriggerReturnType(evs.eventSource.proxyType || ProxyType.TRIGGER);
|
|
202
199
|
const listener = _getProxyListener({
|
|
203
200
|
localEventName: null,
|
|
204
201
|
remoteEventName: name,
|
|
@@ -226,40 +223,40 @@ function createEventBus(eventBusOptions) {
|
|
|
226
223
|
const runner = () => {
|
|
227
224
|
let result;
|
|
228
225
|
switch (returnType) {
|
|
229
|
-
case
|
|
226
|
+
case TriggerReturnType.RAW:
|
|
230
227
|
result = e.raw(...args);
|
|
231
228
|
break;
|
|
232
|
-
case
|
|
229
|
+
case TriggerReturnType.ALL:
|
|
233
230
|
result = resolve ? e.resolveAll(...args) : e.all(...args);
|
|
234
231
|
break;
|
|
235
|
-
case
|
|
232
|
+
case TriggerReturnType.CONCAT:
|
|
236
233
|
result = resolve
|
|
237
234
|
? e.resolveConcat(...args)
|
|
238
235
|
: e.concat(...args);
|
|
239
236
|
break;
|
|
240
|
-
case
|
|
237
|
+
case TriggerReturnType.MERGE:
|
|
241
238
|
result = resolve
|
|
242
239
|
? e.resolveMerge(...args)
|
|
243
240
|
: e.merge(...args);
|
|
244
241
|
break;
|
|
245
|
-
case
|
|
242
|
+
case TriggerReturnType.LAST:
|
|
246
243
|
result = resolve ? e.resolveLast(...args) : e.last(...args);
|
|
247
244
|
break;
|
|
248
|
-
case
|
|
245
|
+
case TriggerReturnType.PIPE:
|
|
249
246
|
result = resolve ? e.resolvePipe(...args) : e.pipe(...args);
|
|
250
247
|
break;
|
|
251
|
-
case
|
|
248
|
+
case TriggerReturnType.FIRST:
|
|
252
249
|
result = resolve
|
|
253
250
|
? e.resolveFirst(...args)
|
|
254
251
|
: e.first(...args);
|
|
255
252
|
break;
|
|
256
|
-
case
|
|
253
|
+
case TriggerReturnType.UNTIL_TRUE:
|
|
257
254
|
result = e.untilTrue(...args);
|
|
258
255
|
break;
|
|
259
|
-
case
|
|
256
|
+
case TriggerReturnType.UNTIL_FALSE:
|
|
260
257
|
result = e.untilFalse(...args);
|
|
261
258
|
break;
|
|
262
|
-
case
|
|
259
|
+
case TriggerReturnType.FIRST_NON_EMPTY:
|
|
263
260
|
result = resolve
|
|
264
261
|
? e.resolveFirstNonEmpty(...args)
|
|
265
262
|
: e.firstNonEmpty(...args);
|
|
@@ -300,55 +297,55 @@ function createEventBus(eventBusOptions) {
|
|
|
300
297
|
return _trigger(name, args, null, false);
|
|
301
298
|
};
|
|
302
299
|
const first = (name, ...args) => {
|
|
303
|
-
return _trigger(name, args,
|
|
300
|
+
return _trigger(name, args, TriggerReturnType.FIRST, false);
|
|
304
301
|
};
|
|
305
302
|
const resolveFirst = (name, ...args) => {
|
|
306
|
-
return _trigger(name, args,
|
|
303
|
+
return _trigger(name, args, TriggerReturnType.FIRST, true);
|
|
307
304
|
};
|
|
308
305
|
const all = (name, ...args) => {
|
|
309
|
-
return _trigger(name, args,
|
|
306
|
+
return _trigger(name, args, TriggerReturnType.ALL, false);
|
|
310
307
|
};
|
|
311
308
|
const resolveAll = (name, ...args) => {
|
|
312
|
-
return _trigger(name, args,
|
|
309
|
+
return _trigger(name, args, TriggerReturnType.ALL, true);
|
|
313
310
|
};
|
|
314
311
|
const last = (name, ...args) => {
|
|
315
|
-
return _trigger(name, args,
|
|
312
|
+
return _trigger(name, args, TriggerReturnType.LAST, false);
|
|
316
313
|
};
|
|
317
314
|
const resolveLast = (name, ...args) => {
|
|
318
|
-
return _trigger(name, args,
|
|
315
|
+
return _trigger(name, args, TriggerReturnType.LAST, true);
|
|
319
316
|
};
|
|
320
317
|
const merge = (name, ...args) => {
|
|
321
|
-
return _trigger(name, args,
|
|
318
|
+
return _trigger(name, args, TriggerReturnType.MERGE, false);
|
|
322
319
|
};
|
|
323
320
|
const resolveMerge = (name, ...args) => {
|
|
324
|
-
return _trigger(name, args,
|
|
321
|
+
return _trigger(name, args, TriggerReturnType.MERGE, true);
|
|
325
322
|
};
|
|
326
323
|
const concat = (name, ...args) => {
|
|
327
|
-
return _trigger(name, args,
|
|
324
|
+
return _trigger(name, args, TriggerReturnType.CONCAT, false);
|
|
328
325
|
};
|
|
329
326
|
const resolveConcat = (name, ...args) => {
|
|
330
|
-
return _trigger(name, args,
|
|
327
|
+
return _trigger(name, args, TriggerReturnType.CONCAT, true);
|
|
331
328
|
};
|
|
332
329
|
const firstNonEmpty = (name, ...args) => {
|
|
333
|
-
return _trigger(name, args,
|
|
330
|
+
return _trigger(name, args, TriggerReturnType.FIRST_NON_EMPTY, false);
|
|
334
331
|
};
|
|
335
332
|
const resolveFirstNonEmpty = (name, ...args) => {
|
|
336
|
-
return _trigger(name, args,
|
|
333
|
+
return _trigger(name, args, TriggerReturnType.FIRST_NON_EMPTY, true);
|
|
337
334
|
};
|
|
338
335
|
const untilTrue = (name, ...args) => {
|
|
339
|
-
return _trigger(name, args,
|
|
336
|
+
return _trigger(name, args, TriggerReturnType.UNTIL_TRUE, false);
|
|
340
337
|
};
|
|
341
338
|
const untilFalse = (name, ...args) => {
|
|
342
|
-
return _trigger(name, args,
|
|
339
|
+
return _trigger(name, args, TriggerReturnType.UNTIL_FALSE, false);
|
|
343
340
|
};
|
|
344
341
|
const pipe = (name, ...args) => {
|
|
345
|
-
return _trigger(name, args,
|
|
342
|
+
return _trigger(name, args, TriggerReturnType.PIPE, false);
|
|
346
343
|
};
|
|
347
344
|
const resolvePipe = (name, ...args) => {
|
|
348
|
-
return _trigger(name, args,
|
|
345
|
+
return _trigger(name, args, TriggerReturnType.PIPE, true);
|
|
349
346
|
};
|
|
350
347
|
const raw = (name, ...args) => {
|
|
351
|
-
return _trigger(name, args,
|
|
348
|
+
return _trigger(name, args, TriggerReturnType.RAW, false);
|
|
352
349
|
};
|
|
353
350
|
const withTags = (tags, callback) => {
|
|
354
351
|
currentTagsFilter = tags;
|
|
@@ -383,7 +380,7 @@ function createEventBus(eventBusOptions) {
|
|
|
383
380
|
});
|
|
384
381
|
};
|
|
385
382
|
const relay = ({ eventSource, remoteEventName, localEventName, proxyType, localEventNamePrefix, }) => {
|
|
386
|
-
const { returnType, resolve } = proxyReturnTypeToTriggerReturnType(proxyType ||
|
|
383
|
+
const { returnType, resolve } = proxyReturnTypeToTriggerReturnType(proxyType || ProxyType.TRIGGER);
|
|
387
384
|
const listener = _getProxyListener({
|
|
388
385
|
localEventName: localEventName || null,
|
|
389
386
|
remoteEventName,
|
|
@@ -399,7 +396,7 @@ function createEventBus(eventBusOptions) {
|
|
|
399
396
|
}
|
|
400
397
|
};
|
|
401
398
|
const unrelay = ({ eventSource, remoteEventName, localEventName, proxyType, localEventNamePrefix, }) => {
|
|
402
|
-
const { returnType, resolve } = proxyReturnTypeToTriggerReturnType(proxyType ||
|
|
399
|
+
const { returnType, resolve } = proxyReturnTypeToTriggerReturnType(proxyType || ProxyType.TRIGGER);
|
|
403
400
|
const listener = _getProxyListener({
|
|
404
401
|
localEventName: localEventName || null,
|
|
405
402
|
remoteEventName,
|
|
@@ -433,7 +430,7 @@ function createEventBus(eventBusOptions) {
|
|
|
433
430
|
if (inx !== -1) {
|
|
434
431
|
const evs = eventSources[inx];
|
|
435
432
|
evs.subscribed.forEach((subscribedName) => {
|
|
436
|
-
const { returnType, resolve } = proxyReturnTypeToTriggerReturnType(evs.eventSource.proxyType ||
|
|
433
|
+
const { returnType, resolve } = proxyReturnTypeToTriggerReturnType(evs.eventSource.proxyType || ProxyType.TRIGGER);
|
|
437
434
|
const listener = _getProxyListener({
|
|
438
435
|
localEventName: null,
|
|
439
436
|
remoteEventName: subscribedName,
|
package/dist/index.js
CHANGED
|
@@ -1,23 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./action"), exports);
|
|
18
|
-
__exportStar(require("./actionBus"), exports);
|
|
19
|
-
__exportStar(require("./actionMap"), exports);
|
|
20
|
-
__exportStar(require("./event"), exports);
|
|
21
|
-
__exportStar(require("./eventBus"), exports);
|
|
22
|
-
__exportStar(require("./lib/types"), exports);
|
|
23
|
-
__exportStar(require("./store"), exports);
|
|
1
|
+
export * from "./action";
|
|
2
|
+
export * from "./actionBus";
|
|
3
|
+
export * from "./actionMap";
|
|
4
|
+
export * from "./event";
|
|
5
|
+
export * from "./eventBus";
|
|
6
|
+
export * from "./lib/types";
|
|
7
|
+
export * from "./store";
|
package/dist/lib/asyncCall.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default = asyncCall;
|
|
4
|
-
function asyncCall(fn, context, args, timeout) {
|
|
1
|
+
export default function asyncCall(fn, context, args, timeout) {
|
|
5
2
|
return new Promise((resolve, reject) => {
|
|
6
3
|
const newArgs = [...(args || [])];
|
|
7
4
|
setTimeout(() => {
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default = listenerSorter;
|
|
4
|
-
function listenerSorter(l1, l2) {
|
|
1
|
+
export default function listenerSorter(l1, l2) {
|
|
5
2
|
const f1 = l1.alwaysFirst === true ? 1 : 0, f2 = l2.alwaysFirst === true ? 1 : 0, ls1 = l1.alwaysLast === true ? 1 : 0, ls2 = l2.alwaysLast === true ? 1 : 0;
|
|
6
3
|
if (f1 === 1 || f2 === 1) {
|
|
7
4
|
return f1 === f2 ? 0 : f1 > f2 ? -1 : 1;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default = tagsIntersect;
|
|
4
|
-
function tagsIntersect(t1, t2) {
|
|
1
|
+
export default function tagsIntersect(t1, t2) {
|
|
5
2
|
for (const tag of t1) {
|
|
6
3
|
if (t2.indexOf(tag) !== -1) {
|
|
7
4
|
return true;
|
package/dist/lib/types.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ProxyType = exports.TriggerReturnType = void 0;
|
|
4
|
-
var TriggerReturnType;
|
|
1
|
+
export var TriggerReturnType;
|
|
5
2
|
(function (TriggerReturnType) {
|
|
6
3
|
TriggerReturnType["RAW"] = "raw";
|
|
7
4
|
TriggerReturnType["ALL"] = "all";
|
|
@@ -13,8 +10,8 @@ var TriggerReturnType;
|
|
|
13
10
|
TriggerReturnType["UNTIL_TRUE"] = "true";
|
|
14
11
|
TriggerReturnType["UNTIL_FALSE"] = "false";
|
|
15
12
|
TriggerReturnType["FIRST_NON_EMPTY"] = "nonempty";
|
|
16
|
-
})(TriggerReturnType || (
|
|
17
|
-
var ProxyType;
|
|
13
|
+
})(TriggerReturnType || (TriggerReturnType = {}));
|
|
14
|
+
export var ProxyType;
|
|
18
15
|
(function (ProxyType) {
|
|
19
16
|
ProxyType["TRIGGER"] = "trigger";
|
|
20
17
|
ProxyType["RAW"] = "raw";
|
|
@@ -34,4 +31,4 @@ var ProxyType;
|
|
|
34
31
|
ProxyType["RESOLVE_FIRST_NON_EMPTY"] = "resolveFirstNonEmpty";
|
|
35
32
|
ProxyType["RESOLVE_LAST"] = "resolveLast";
|
|
36
33
|
ProxyType["RESOLVE_PIPE"] = "resolvePipe";
|
|
37
|
-
})(ProxyType || (
|
|
34
|
+
})(ProxyType || (ProxyType = {}));
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
exports.ErrorBoundary = ErrorBoundary;
|
|
5
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
-
const react_1 = require("react");
|
|
7
|
-
exports.ErrorBoundaryContext = (0, react_1.createContext)(null);
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useCallback, useContext, useRef } from "react";
|
|
3
|
+
export const ErrorBoundaryContext = createContext(null);
|
|
8
4
|
function ErrorBoundary({ children, listener }) {
|
|
9
|
-
const boundaryErrorListener =
|
|
10
|
-
const thisRef =
|
|
11
|
-
const outerRef =
|
|
5
|
+
const boundaryErrorListener = useContext(ErrorBoundaryContext);
|
|
6
|
+
const thisRef = useRef(listener);
|
|
7
|
+
const outerRef = useRef(boundaryErrorListener);
|
|
12
8
|
// Keep refs in sync with props
|
|
13
9
|
thisRef.current = listener;
|
|
14
10
|
outerRef.current = boundaryErrorListener;
|
|
15
|
-
const thisErrorListener =
|
|
11
|
+
const thisErrorListener = useCallback((errorResponse) => {
|
|
16
12
|
if (thisRef.current) {
|
|
17
13
|
thisRef.current(errorResponse);
|
|
18
14
|
}
|
|
@@ -23,6 +19,7 @@ function ErrorBoundary({ children, listener }) {
|
|
|
23
19
|
throw errorResponse.error;
|
|
24
20
|
}
|
|
25
21
|
}, []);
|
|
26
|
-
return ((
|
|
22
|
+
return (_jsx(ErrorBoundaryContext.Provider, { value: thisErrorListener, children: children }));
|
|
27
23
|
}
|
|
28
|
-
|
|
24
|
+
export default ErrorBoundary;
|
|
25
|
+
export { ErrorBoundary };
|
package/dist/react/useAction.js
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
const beforeActionListenerRef = (0, react_1.useRef)(beforeActionListener);
|
|
14
|
-
const action = (0, react_1.useMemo)(() => {
|
|
15
|
-
const action = (0, action_1.createAction)(actionSignature);
|
|
1
|
+
import { useContext, useEffect, useMemo, useRef } from "react";
|
|
2
|
+
import { createAction } from "../action";
|
|
3
|
+
import { ErrorBoundaryContext } from "./ErrorBoundary";
|
|
4
|
+
export function useAction(actionSignature, listener, errorListener, beforeActionListener) {
|
|
5
|
+
const boundaryErrorListener = useContext(ErrorBoundaryContext);
|
|
6
|
+
const updateRef = useRef(0);
|
|
7
|
+
const listenerRef = useRef(listener);
|
|
8
|
+
const errorListenerRef = useRef(errorListener);
|
|
9
|
+
const boundaryErrorListenerRef = useRef(boundaryErrorListener);
|
|
10
|
+
const beforeActionListenerRef = useRef(beforeActionListener);
|
|
11
|
+
const action = useMemo(() => {
|
|
12
|
+
const action = createAction(actionSignature);
|
|
16
13
|
if (listenerRef.current) {
|
|
17
14
|
action.addListener(listenerRef.current);
|
|
18
15
|
}
|
|
@@ -27,13 +24,13 @@ function useAction(actionSignature, listener, errorListener, beforeActionListene
|
|
|
27
24
|
}
|
|
28
25
|
return action;
|
|
29
26
|
}, []);
|
|
30
|
-
|
|
27
|
+
useEffect(() => {
|
|
31
28
|
if (updateRef.current > 0) {
|
|
32
29
|
throw new Error("Action cannot be updated");
|
|
33
30
|
}
|
|
34
31
|
updateRef.current++;
|
|
35
32
|
}, [actionSignature]);
|
|
36
|
-
|
|
33
|
+
useEffect(() => {
|
|
37
34
|
if (listenerRef.current !== listener) {
|
|
38
35
|
if (listenerRef.current) {
|
|
39
36
|
action.removeListener(listenerRef.current);
|
|
@@ -44,7 +41,7 @@ function useAction(actionSignature, listener, errorListener, beforeActionListene
|
|
|
44
41
|
}
|
|
45
42
|
}
|
|
46
43
|
}, [listener]);
|
|
47
|
-
|
|
44
|
+
useEffect(() => {
|
|
48
45
|
if (errorListenerRef.current !== errorListener) {
|
|
49
46
|
if (errorListenerRef.current) {
|
|
50
47
|
action.removeErrorListener(errorListenerRef.current);
|
|
@@ -55,7 +52,7 @@ function useAction(actionSignature, listener, errorListener, beforeActionListene
|
|
|
55
52
|
}
|
|
56
53
|
}
|
|
57
54
|
}, [errorListener]);
|
|
58
|
-
|
|
55
|
+
useEffect(() => {
|
|
59
56
|
if (boundaryErrorListenerRef.current !== boundaryErrorListener) {
|
|
60
57
|
if (boundaryErrorListenerRef.current) {
|
|
61
58
|
action.removeErrorListener(boundaryErrorListenerRef.current);
|
|
@@ -66,7 +63,7 @@ function useAction(actionSignature, listener, errorListener, beforeActionListene
|
|
|
66
63
|
}
|
|
67
64
|
}
|
|
68
65
|
}, [boundaryErrorListener]);
|
|
69
|
-
|
|
66
|
+
useEffect(() => {
|
|
70
67
|
if (beforeActionListenerRef.current !== beforeActionListener) {
|
|
71
68
|
if (beforeActionListenerRef.current) {
|
|
72
69
|
action.removeBeforeActionListener(beforeActionListenerRef.current);
|
|
@@ -77,7 +74,7 @@ function useAction(actionSignature, listener, errorListener, beforeActionListene
|
|
|
77
74
|
}
|
|
78
75
|
}
|
|
79
76
|
}, [beforeActionListener]);
|
|
80
|
-
|
|
77
|
+
useEffect(() => {
|
|
81
78
|
return () => {
|
|
82
79
|
if (listenerRef.current) {
|
|
83
80
|
listenerRef.current = null;
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
const boundaryErrorListenerRef = (0, react_1.useRef)(boundaryErrorListener);
|
|
11
|
-
const actionBus = (0, react_1.useMemo)(() => {
|
|
12
|
-
const actionBus = (0, actionBus_1.createActionBus)(initialActions);
|
|
1
|
+
import { useContext, useEffect, useMemo, useRef } from "react";
|
|
2
|
+
import { createActionBus } from "../actionBus";
|
|
3
|
+
import { ErrorBoundaryContext } from "./ErrorBoundary";
|
|
4
|
+
export function useActionBus(initialActions, errorListener) {
|
|
5
|
+
const boundaryErrorListener = useContext(ErrorBoundaryContext);
|
|
6
|
+
const errorListenerRef = useRef(errorListener);
|
|
7
|
+
const boundaryErrorListenerRef = useRef(boundaryErrorListener);
|
|
8
|
+
const actionBus = useMemo(() => {
|
|
9
|
+
const actionBus = createActionBus(initialActions);
|
|
13
10
|
if (errorListener) {
|
|
14
11
|
actionBus.addErrorListener(errorListener);
|
|
15
12
|
}
|
|
@@ -18,7 +15,7 @@ function useActionBus(initialActions, errorListener) {
|
|
|
18
15
|
}
|
|
19
16
|
return actionBus;
|
|
20
17
|
}, []);
|
|
21
|
-
|
|
18
|
+
useEffect(() => {
|
|
22
19
|
if (errorListenerRef.current !== errorListener) {
|
|
23
20
|
if (errorListenerRef.current) {
|
|
24
21
|
actionBus.removeErrorListener(errorListenerRef.current);
|
|
@@ -29,7 +26,7 @@ function useActionBus(initialActions, errorListener) {
|
|
|
29
26
|
}
|
|
30
27
|
}
|
|
31
28
|
}, [errorListener]);
|
|
32
|
-
|
|
29
|
+
useEffect(() => {
|
|
33
30
|
if (boundaryErrorListenerRef.current !== boundaryErrorListener) {
|
|
34
31
|
if (boundaryErrorListenerRef.current) {
|
|
35
32
|
actionBus.removeErrorListener(boundaryErrorListenerRef.current);
|
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
const boundaryErrorListener = (0, react_1.useContext)(ErrorBoundary_1.ErrorBoundaryContext);
|
|
9
|
-
const changeRef = (0, react_1.useRef)(0);
|
|
10
|
-
const actionMap = (0, react_1.useMemo)(() => {
|
|
1
|
+
import { useContext, useEffect, useMemo, useRef } from "react";
|
|
2
|
+
import { createActionMap } from "../actionMap";
|
|
3
|
+
import { ErrorBoundaryContext } from "./ErrorBoundary";
|
|
4
|
+
export function useActionMap(actions, errorListener) {
|
|
5
|
+
const boundaryErrorListener = useContext(ErrorBoundaryContext);
|
|
6
|
+
const changeRef = useRef(0);
|
|
7
|
+
const actionMap = useMemo(() => {
|
|
11
8
|
const errorListeners = [
|
|
12
9
|
...(errorListener ? [errorListener] : []),
|
|
13
10
|
...(boundaryErrorListener ? [boundaryErrorListener] : []),
|
|
14
11
|
].filter(l => l !== undefined);
|
|
15
|
-
const actionMap =
|
|
12
|
+
const actionMap = createActionMap(actions, errorListeners);
|
|
16
13
|
return actionMap;
|
|
17
14
|
}, []);
|
|
18
|
-
|
|
15
|
+
useEffect(() => {
|
|
19
16
|
if (changeRef.current > 0) {
|
|
20
17
|
throw new Error("useActionMap() does not support changing actions or errorListener");
|
|
21
18
|
}
|