@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/eventBus.js CHANGED
@@ -1,85 +1,82 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
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 types_1.ProxyType.TRIGGER:
5
+ case ProxyType.TRIGGER:
9
6
  return { returnType: null, resolve: false };
10
- case types_1.ProxyType.RAW:
11
- return { returnType: types_1.TriggerReturnType.RAW, resolve: false };
12
- case types_1.ProxyType.ALL:
13
- return { returnType: types_1.TriggerReturnType.ALL, resolve: false };
14
- case types_1.ProxyType.CONCAT:
15
- return { returnType: types_1.TriggerReturnType.CONCAT, resolve: false };
16
- case types_1.ProxyType.MERGE:
17
- return { returnType: types_1.TriggerReturnType.MERGE, resolve: false };
18
- case types_1.ProxyType.LAST:
19
- return { returnType: types_1.TriggerReturnType.LAST, resolve: false };
20
- case types_1.ProxyType.PIPE:
21
- return { returnType: types_1.TriggerReturnType.PIPE, resolve: false };
22
- case types_1.ProxyType.FIRST:
23
- return { returnType: types_1.TriggerReturnType.FIRST, resolve: false };
24
- case types_1.ProxyType.UNTIL_TRUE:
25
- return { returnType: types_1.TriggerReturnType.UNTIL_TRUE, resolve: false };
26
- case types_1.ProxyType.UNTIL_FALSE:
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: types_1.TriggerReturnType.UNTIL_FALSE,
25
+ returnType: TriggerReturnType.UNTIL_FALSE,
29
26
  resolve: false,
30
27
  };
31
- case types_1.ProxyType.FIRST_NON_EMPTY:
28
+ case ProxyType.FIRST_NON_EMPTY:
32
29
  return {
33
- returnType: types_1.TriggerReturnType.FIRST_NON_EMPTY,
30
+ returnType: TriggerReturnType.FIRST_NON_EMPTY,
34
31
  resolve: false,
35
32
  };
36
- case types_1.ProxyType.RESOLVE_ALL:
33
+ case ProxyType.RESOLVE_ALL:
37
34
  return {
38
- returnType: types_1.TriggerReturnType.ALL,
35
+ returnType: TriggerReturnType.ALL,
39
36
  resolve: true,
40
37
  };
41
- case types_1.ProxyType.RESOLVE_MERGE:
38
+ case ProxyType.RESOLVE_MERGE:
42
39
  return {
43
- returnType: types_1.TriggerReturnType.MERGE,
40
+ returnType: TriggerReturnType.MERGE,
44
41
  resolve: true,
45
42
  };
46
- case types_1.ProxyType.RESOLVE_CONCAT:
43
+ case ProxyType.RESOLVE_CONCAT:
47
44
  return {
48
- returnType: types_1.TriggerReturnType.CONCAT,
45
+ returnType: TriggerReturnType.CONCAT,
49
46
  resolve: true,
50
47
  };
51
- case types_1.ProxyType.RESOLVE_FIRST:
48
+ case ProxyType.RESOLVE_FIRST:
52
49
  return {
53
- returnType: types_1.TriggerReturnType.FIRST,
50
+ returnType: TriggerReturnType.FIRST,
54
51
  resolve: true,
55
52
  };
56
- case types_1.ProxyType.RESOLVE_FIRST_NON_EMPTY:
53
+ case ProxyType.RESOLVE_FIRST_NON_EMPTY:
57
54
  return {
58
- returnType: types_1.TriggerReturnType.FIRST_NON_EMPTY,
55
+ returnType: TriggerReturnType.FIRST_NON_EMPTY,
59
56
  resolve: true,
60
57
  };
61
- case types_1.ProxyType.RESOLVE_LAST:
58
+ case ProxyType.RESOLVE_LAST:
62
59
  return {
63
- returnType: types_1.TriggerReturnType.LAST,
60
+ returnType: TriggerReturnType.LAST,
64
61
  resolve: true,
65
62
  };
66
- case types_1.ProxyType.RESOLVE_PIPE:
63
+ case ProxyType.RESOLVE_PIPE:
67
64
  return {
68
- returnType: types_1.TriggerReturnType.PIPE,
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 = (0, event_1.createEvent)();
82
- const errorEvent = (0, event_1.createEvent)();
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, (0, event_1.createEvent)(options));
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, (0, event_1.createEvent)((_a = eventBusOptions === null || eventBusOptions === void 0 ? void 0 : eventBusOptions.eventOptions) === null || _a === void 0 ? void 0 : _a[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 || types_1.ProxyType.TRIGGER);
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 || types_1.ProxyType.TRIGGER);
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 types_1.TriggerReturnType.RAW:
226
+ case TriggerReturnType.RAW:
230
227
  result = e.raw(...args);
231
228
  break;
232
- case types_1.TriggerReturnType.ALL:
229
+ case TriggerReturnType.ALL:
233
230
  result = resolve ? e.resolveAll(...args) : e.all(...args);
234
231
  break;
235
- case types_1.TriggerReturnType.CONCAT:
232
+ case TriggerReturnType.CONCAT:
236
233
  result = resolve
237
234
  ? e.resolveConcat(...args)
238
235
  : e.concat(...args);
239
236
  break;
240
- case types_1.TriggerReturnType.MERGE:
237
+ case TriggerReturnType.MERGE:
241
238
  result = resolve
242
239
  ? e.resolveMerge(...args)
243
240
  : e.merge(...args);
244
241
  break;
245
- case types_1.TriggerReturnType.LAST:
242
+ case TriggerReturnType.LAST:
246
243
  result = resolve ? e.resolveLast(...args) : e.last(...args);
247
244
  break;
248
- case types_1.TriggerReturnType.PIPE:
245
+ case TriggerReturnType.PIPE:
249
246
  result = resolve ? e.resolvePipe(...args) : e.pipe(...args);
250
247
  break;
251
- case types_1.TriggerReturnType.FIRST:
248
+ case TriggerReturnType.FIRST:
252
249
  result = resolve
253
250
  ? e.resolveFirst(...args)
254
251
  : e.first(...args);
255
252
  break;
256
- case types_1.TriggerReturnType.UNTIL_TRUE:
253
+ case TriggerReturnType.UNTIL_TRUE:
257
254
  result = e.untilTrue(...args);
258
255
  break;
259
- case types_1.TriggerReturnType.UNTIL_FALSE:
256
+ case TriggerReturnType.UNTIL_FALSE:
260
257
  result = e.untilFalse(...args);
261
258
  break;
262
- case types_1.TriggerReturnType.FIRST_NON_EMPTY:
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, types_1.TriggerReturnType.FIRST, false);
300
+ return _trigger(name, args, TriggerReturnType.FIRST, false);
304
301
  };
305
302
  const resolveFirst = (name, ...args) => {
306
- return _trigger(name, args, types_1.TriggerReturnType.FIRST, true);
303
+ return _trigger(name, args, TriggerReturnType.FIRST, true);
307
304
  };
308
305
  const all = (name, ...args) => {
309
- return _trigger(name, args, types_1.TriggerReturnType.ALL, false);
306
+ return _trigger(name, args, TriggerReturnType.ALL, false);
310
307
  };
311
308
  const resolveAll = (name, ...args) => {
312
- return _trigger(name, args, types_1.TriggerReturnType.ALL, true);
309
+ return _trigger(name, args, TriggerReturnType.ALL, true);
313
310
  };
314
311
  const last = (name, ...args) => {
315
- return _trigger(name, args, types_1.TriggerReturnType.LAST, false);
312
+ return _trigger(name, args, TriggerReturnType.LAST, false);
316
313
  };
317
314
  const resolveLast = (name, ...args) => {
318
- return _trigger(name, args, types_1.TriggerReturnType.LAST, true);
315
+ return _trigger(name, args, TriggerReturnType.LAST, true);
319
316
  };
320
317
  const merge = (name, ...args) => {
321
- return _trigger(name, args, types_1.TriggerReturnType.MERGE, false);
318
+ return _trigger(name, args, TriggerReturnType.MERGE, false);
322
319
  };
323
320
  const resolveMerge = (name, ...args) => {
324
- return _trigger(name, args, types_1.TriggerReturnType.MERGE, true);
321
+ return _trigger(name, args, TriggerReturnType.MERGE, true);
325
322
  };
326
323
  const concat = (name, ...args) => {
327
- return _trigger(name, args, types_1.TriggerReturnType.CONCAT, false);
324
+ return _trigger(name, args, TriggerReturnType.CONCAT, false);
328
325
  };
329
326
  const resolveConcat = (name, ...args) => {
330
- return _trigger(name, args, types_1.TriggerReturnType.CONCAT, true);
327
+ return _trigger(name, args, TriggerReturnType.CONCAT, true);
331
328
  };
332
329
  const firstNonEmpty = (name, ...args) => {
333
- return _trigger(name, args, types_1.TriggerReturnType.FIRST_NON_EMPTY, false);
330
+ return _trigger(name, args, TriggerReturnType.FIRST_NON_EMPTY, false);
334
331
  };
335
332
  const resolveFirstNonEmpty = (name, ...args) => {
336
- return _trigger(name, args, types_1.TriggerReturnType.FIRST_NON_EMPTY, true);
333
+ return _trigger(name, args, TriggerReturnType.FIRST_NON_EMPTY, true);
337
334
  };
338
335
  const untilTrue = (name, ...args) => {
339
- return _trigger(name, args, types_1.TriggerReturnType.UNTIL_TRUE, false);
336
+ return _trigger(name, args, TriggerReturnType.UNTIL_TRUE, false);
340
337
  };
341
338
  const untilFalse = (name, ...args) => {
342
- return _trigger(name, args, types_1.TriggerReturnType.UNTIL_FALSE, false);
339
+ return _trigger(name, args, TriggerReturnType.UNTIL_FALSE, false);
343
340
  };
344
341
  const pipe = (name, ...args) => {
345
- return _trigger(name, args, types_1.TriggerReturnType.PIPE, false);
342
+ return _trigger(name, args, TriggerReturnType.PIPE, false);
346
343
  };
347
344
  const resolvePipe = (name, ...args) => {
348
- return _trigger(name, args, types_1.TriggerReturnType.PIPE, true);
345
+ return _trigger(name, args, TriggerReturnType.PIPE, true);
349
346
  };
350
347
  const raw = (name, ...args) => {
351
- return _trigger(name, args, types_1.TriggerReturnType.RAW, false);
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 || types_1.ProxyType.TRIGGER);
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 || types_1.ProxyType.TRIGGER);
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 || types_1.ProxyType.TRIGGER);
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
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
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";
@@ -1,7 +1,4 @@
1
- "use strict";
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
- "use strict";
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
- "use strict";
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
- "use strict";
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 || (exports.TriggerReturnType = 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 || (exports.ProxyType = ProxyType = {}));
34
+ })(ProxyType || (ProxyType = {}));
@@ -1,18 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ErrorBoundaryContext = void 0;
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 = (0, react_1.useContext)(exports.ErrorBoundaryContext);
10
- const thisRef = (0, react_1.useRef)(listener);
11
- const outerRef = (0, react_1.useRef)(boundaryErrorListener);
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 = (0, react_1.useCallback)((errorResponse) => {
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 ((0, jsx_runtime_1.jsx)(exports.ErrorBoundaryContext.Provider, { value: thisErrorListener, children: children }));
22
+ return (_jsx(ErrorBoundaryContext.Provider, { value: thisErrorListener, children: children }));
27
23
  }
28
- exports.default = ErrorBoundary;
24
+ export default ErrorBoundary;
25
+ export { ErrorBoundary };
@@ -1,18 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useAction = useAction;
4
- const react_1 = require("react");
5
- const action_1 = require("../action");
6
- const ErrorBoundary_1 = require("./ErrorBoundary");
7
- function useAction(actionSignature, listener, errorListener, beforeActionListener) {
8
- const boundaryErrorListener = (0, react_1.useContext)(ErrorBoundary_1.ErrorBoundaryContext);
9
- const updateRef = (0, react_1.useRef)(0);
10
- const listenerRef = (0, react_1.useRef)(listener);
11
- const errorListenerRef = (0, react_1.useRef)(errorListener);
12
- const boundaryErrorListenerRef = (0, react_1.useRef)(boundaryErrorListener);
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
- (0, react_1.useEffect)(() => {
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
- (0, react_1.useEffect)(() => {
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
- (0, react_1.useEffect)(() => {
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
- (0, react_1.useEffect)(() => {
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
- (0, react_1.useEffect)(() => {
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
- (0, react_1.useEffect)(() => {
77
+ useEffect(() => {
81
78
  return () => {
82
79
  if (listenerRef.current) {
83
80
  listenerRef.current = null;
@@ -1,15 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useActionBus = useActionBus;
4
- const react_1 = require("react");
5
- const actionBus_1 = require("../actionBus");
6
- const ErrorBoundary_1 = require("./ErrorBoundary");
7
- function useActionBus(initialActions, errorListener) {
8
- const boundaryErrorListener = (0, react_1.useContext)(ErrorBoundary_1.ErrorBoundaryContext);
9
- const errorListenerRef = (0, react_1.useRef)(errorListener);
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
- (0, react_1.useEffect)(() => {
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
- (0, react_1.useEffect)(() => {
29
+ useEffect(() => {
33
30
  if (boundaryErrorListenerRef.current !== boundaryErrorListener) {
34
31
  if (boundaryErrorListenerRef.current) {
35
32
  actionBus.removeErrorListener(boundaryErrorListenerRef.current);
@@ -1,21 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useActionMap = useActionMap;
4
- const react_1 = require("react");
5
- const actionMap_1 = require("../actionMap");
6
- const ErrorBoundary_1 = require("./ErrorBoundary");
7
- function useActionMap(actions, errorListener) {
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 = (0, actionMap_1.createActionMap)(actions, errorListeners);
12
+ const actionMap = createActionMap(actions, errorListeners);
16
13
  return actionMap;
17
14
  }, []);
18
- (0, react_1.useEffect)(() => {
15
+ useEffect(() => {
19
16
  if (changeRef.current > 0) {
20
17
  throw new Error("useActionMap() does not support changing actions or errorListener");
21
18
  }