@mic-rexjs/usecases-react 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/dist/index.min.js +1 -1
  2. package/es/components/UseCaseFragment/index.d.ts +2 -2
  3. package/es/components/UseCaseFragment/types.d.ts +3 -3
  4. package/es/configs/defaultUseCaseContext/index.d.ts +2 -3
  5. package/es/configs/defaultUseCaseContext/types.d.ts +13 -12
  6. package/es/configs/useCaseContextReferenceMap/index.d.ts +1 -0
  7. package/es/configs/useCaseContextReferenceMap/index.js +1 -0
  8. package/es/configs/useCaseContextReferenceMap/types.d.ts +8 -0
  9. package/es/enums/UseCaseArgumentTypes/index.d.ts +5 -0
  10. package/es/enums/UseCaseArgumentTypes/index.js +6 -0
  11. package/es/enums/UseCaseStatuses/index.d.ts +10 -0
  12. package/es/enums/UseCaseStatuses/index.js +18 -0
  13. package/es/hooks/useArgumentTypes/index.d.ts +3 -0
  14. package/es/hooks/useArgumentTypes/index.js +19 -0
  15. package/es/hooks/useContextualItem/index.d.ts +3 -0
  16. package/es/hooks/useContextualItem/index.js +13 -0
  17. package/es/hooks/useContextualItem/types.d.ts +3 -0
  18. package/es/hooks/useEntity/index.d.ts +4 -0
  19. package/es/hooks/useEntity/index.js +49 -0
  20. package/es/hooks/useGlobalUseCase/index.js +3 -8
  21. package/es/hooks/useGlobalUseCase/index.test.js +10 -30
  22. package/es/hooks/useGlobalUseCase/types.d.ts +7 -10
  23. package/es/hooks/useMemoizedCall/index.d.ts +2 -0
  24. package/es/hooks/useMemoizedCall/index.js +15 -0
  25. package/es/hooks/useProvider/index.d.ts +4 -4
  26. package/es/hooks/useProvider/index.js +22 -15
  27. package/es/hooks/useStatelessUseCase/index.js +2 -5
  28. package/es/hooks/useStatelessUseCase/index.test.js +4 -42
  29. package/es/hooks/useStatelessUseCase/types.d.ts +2 -4
  30. package/es/hooks/useUseCase/index.js +44 -74
  31. package/es/hooks/useUseCase/index.test.js +26 -1
  32. package/es/hooks/useUseCase/types.d.ts +32 -45
  33. package/es/hooks/useUseCaseContext/index.d.ts +5 -3
  34. package/es/hooks/useUseCaseContext/index.js +44 -8
  35. package/es/hooks/useUseCaseContext/index.test.js +87 -0
  36. package/es/hooks/useUseCaseStatuses/index.d.ts +6 -0
  37. package/es/hooks/useUseCaseStatuses/index.js +29 -0
  38. package/es/index.d.ts +1 -1
  39. package/es/methods/cacheCall/index.d.ts +2 -0
  40. package/es/methods/cacheCall/index.js +26 -0
  41. package/es/methods/cacheCall/types.d.ts +13 -0
  42. package/es/methods/cacheCall/types.js +1 -0
  43. package/es/methods/cacheCalls/index.d.ts +2 -0
  44. package/es/methods/cacheCalls/index.js +8 -0
  45. package/es/methods/fillArguments/index.d.ts +5 -0
  46. package/es/methods/fillArguments/index.js +41 -0
  47. package/es/methods/fillArguments/types.d.ts +10 -0
  48. package/es/methods/fillArguments/types.js +1 -0
  49. package/es/methods/getRenderingEntity/index.d.ts +3 -0
  50. package/es/methods/getRenderingEntity/index.js +13 -0
  51. package/es/methods/initEntityReducers/index.d.ts +2 -3
  52. package/es/methods/initEntityReducers/index.js +3 -5
  53. package/es/methods/transformGlobalArguments/index.d.ts +3 -0
  54. package/es/methods/transformGlobalArguments/index.js +8 -0
  55. package/es/methods/transformGlobalArguments/types.d.ts +2 -0
  56. package/es/methods/transformGlobalArguments/types.js +1 -0
  57. package/es/methods/triggerCallbacks/index.d.ts +1 -1
  58. package/es/methods/triggerCallbacks/index.js +3 -3
  59. package/lib/configs/useCaseContextReferenceMap/index.js +8 -0
  60. package/lib/enums/UseCaseArgumentTypes/index.js +13 -0
  61. package/lib/enums/UseCaseStatuses/index.js +25 -0
  62. package/lib/hooks/useArgumentTypes/index.js +31 -0
  63. package/lib/hooks/useContextualItem/index.js +21 -0
  64. package/lib/hooks/useEntity/index.js +63 -0
  65. package/lib/hooks/useGlobalUseCase/index.js +3 -10
  66. package/lib/hooks/useGlobalUseCase/index.test.js +8 -35
  67. package/lib/hooks/useMemoizedCall/index.js +22 -0
  68. package/lib/hooks/useProvider/index.js +24 -15
  69. package/lib/hooks/useStatelessUseCase/index.js +2 -12
  70. package/lib/hooks/useStatelessUseCase/index.test.js +2 -43
  71. package/lib/hooks/useUseCase/index.js +55 -82
  72. package/lib/hooks/useUseCase/index.test.js +56 -25
  73. package/lib/hooks/useUseCaseContext/index.js +48 -8
  74. package/lib/hooks/useUseCaseContext/index.test.js +101 -0
  75. package/lib/hooks/useUseCaseStatuses/index.js +36 -0
  76. package/lib/methods/cacheCall/index.js +42 -0
  77. package/lib/methods/cacheCalls/index.js +20 -0
  78. package/lib/methods/fillArguments/index.js +31 -0
  79. package/lib/methods/fillArguments/types.js +5 -0
  80. package/lib/methods/getRenderingEntity/index.js +20 -0
  81. package/lib/methods/initEntityReducers/index.js +2 -5
  82. package/lib/methods/transformGlobalArguments/index.js +21 -0
  83. package/lib/methods/transformGlobalArguments/types.js +5 -0
  84. package/lib/methods/triggerCallbacks/index.js +3 -3
  85. package/package.json +3 -3
  86. package/es/configs/usecaseContextMap/index.d.ts +0 -1
  87. package/es/configs/usecaseContextMap/index.js +0 -1
  88. package/es/configs/usecaseContextMap/types.d.ts +0 -4
  89. package/es/hooks/useChangeCallbackCollection/index.d.ts +0 -3
  90. package/es/hooks/useChangeCallbackCollection/index.js +0 -29
  91. package/es/methods/cacheReducerCalls/index.d.ts +0 -3
  92. package/es/methods/cacheReducerCalls/index.js +0 -26
  93. package/es/methods/cacheReducerCalls/types.d.ts +0 -11
  94. package/es/methods/getRootEntity/index.d.ts +0 -3
  95. package/es/methods/getRootEntity/index.js +0 -10
  96. package/es/methods/initEntityReducers/types.d.ts +0 -3
  97. package/es/methods/removeItem/index.d.ts +0 -1
  98. package/es/methods/removeItem/index.js +0 -7
  99. package/es/methods/toMaxArguments/index.d.ts +0 -3
  100. package/es/methods/toMaxArguments/index.js +0 -28
  101. package/lib/configs/usecaseContextMap/index.js +0 -8
  102. package/lib/hooks/useChangeCallbackCollection/index.js +0 -37
  103. package/lib/methods/cacheReducerCalls/index.js +0 -45
  104. package/lib/methods/getRootEntity/index.js +0 -17
  105. package/lib/methods/removeItem/index.js +0 -14
  106. package/lib/methods/toMaxArguments/index.js +0 -25
  107. /package/es/configs/{usecaseContextMap → useCaseContextReferenceMap}/types.js +0 -0
  108. /package/es/{methods/cacheReducerCalls → hooks/useContextualItem}/types.js +0 -0
  109. /package/es/{methods/initEntityReducers/types.js → hooks/useUseCaseContext/index.test.d.ts} +0 -0
  110. /package/lib/configs/{usecaseContextMap → useCaseContextReferenceMap}/types.js +0 -0
  111. /package/lib/{methods/cacheReducerCalls → hooks/useContextualItem}/types.js +0 -0
  112. /package/lib/methods/{initEntityReducers → cacheCall}/types.js +0 -0
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.fillArguments = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _UseCaseModes = require("../../enums/UseCaseModes");
10
+ var _UseCaseArgumentTypes = require("../../enums/UseCaseArgumentTypes");
11
+ var fillArguments = function fillArguments(args, argumentTypes) {
12
+ var _args = (0, _slicedToArray2["default"])(args, 5),
13
+ arg1 = _args[0],
14
+ arg2 = _args[1],
15
+ arg3 = _args[2],
16
+ arg4 = _args[3],
17
+ arg5 = _args[4];
18
+ var hasEntity = (argumentTypes & _UseCaseArgumentTypes.UseCaseArgumentTypes.Entity) === _UseCaseArgumentTypes.UseCaseArgumentTypes.Entity;
19
+ var hasMode = (argumentTypes & _UseCaseArgumentTypes.UseCaseArgumentTypes.Mode) === _UseCaseArgumentTypes.UseCaseArgumentTypes.Mode;
20
+ if (hasEntity) {
21
+ if (hasMode) {
22
+ return [arg1, arg2, arg3, arg4 || {}, arg5 || []];
23
+ }
24
+ return [arg1, arg2, _UseCaseModes.UseCaseModes.Normal, arg3 || {}, arg4 || []];
25
+ }
26
+ if (hasMode) {
27
+ return [null, arg1, arg2, arg3 || {}, arg4 || []];
28
+ }
29
+ return [null, arg1, _UseCaseModes.UseCaseModes.Normal, arg2 || {}, arg3 || []];
30
+ };
31
+ exports.fillArguments = fillArguments;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getRenderingEntity = void 0;
7
+ var _UseCaseStatuses = require("../../enums/UseCaseStatuses");
8
+ var getRenderingEntity = function getRenderingEntity(statuses, entityState, rootEntity, contextEntity) {
9
+ if ((statuses & _UseCaseStatuses.UseCaseStatuses.EntityRootEnabled) !== _UseCaseStatuses.UseCaseStatuses.EntityRootEnabled) {
10
+ return contextEntity;
11
+ }
12
+ if ((statuses & _UseCaseStatuses.UseCaseStatuses.StatelessEnabled) !== _UseCaseStatuses.UseCaseStatuses.StatelessEnabled) {
13
+ return entityState;
14
+ }
15
+ if (typeof rootEntity === 'function') {
16
+ return rootEntity();
17
+ }
18
+ return rootEntity;
19
+ };
20
+ exports.getRenderingEntity = getRenderingEntity;
@@ -11,15 +11,12 @@ var _usecases = require("@mic-rexjs/usecases");
11
11
  var _excluded = ["watch", "onChange", "options"];
12
12
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
13
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
- var initEntityReducers = function initEntityReducers(entity, usecase, options, onEntityChange) {
15
- var _entityReducerUseCase = (0, _usecases.entityReducerUseCase)(),
16
- createEntityReducers = _entityReducerUseCase.createEntityReducers;
14
+ var initEntityReducers = function initEntityReducers(usecase, store, options) {
17
15
  var watch = options.watch,
18
16
  onChange = options.onChange,
19
17
  usecaseOptions = options.options,
20
18
  restUseCaseOptions = (0, _objectWithoutProperties2["default"])(options, _excluded);
21
- return createEntityReducers(entity, usecase, _objectSpread(_objectSpread(_objectSpread({}, restUseCaseOptions), usecaseOptions), {}, {
22
- onChange: onEntityChange,
19
+ return (0, _usecases.createEntityReducers)(store, usecase, _objectSpread(_objectSpread(_objectSpread({}, restUseCaseOptions), usecaseOptions), {}, {
23
20
  onGenerate: function onGenerate(newEntity, result) {
24
21
  return result;
25
22
  }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.transformGlobalArguments = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _UseCaseModes = require("../../enums/UseCaseModes");
10
+ var transformGlobalArguments = function transformGlobalArguments(args) {
11
+ var _args = (0, _slicedToArray2["default"])(args, 4),
12
+ arg1 = _args[0],
13
+ arg2 = _args[1],
14
+ arg3 = _args[2],
15
+ arg4 = _args[3];
16
+ if (typeof arg2 === 'function') {
17
+ return [arg1, arg2, _UseCaseModes.UseCaseModes.Global, arg3, arg4];
18
+ }
19
+ return [arg1, _UseCaseModes.UseCaseModes.Global, arg2, arg3];
20
+ };
21
+ exports.transformGlobalArguments = transformGlobalArguments;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.triggerCallbacks = void 0;
7
- var triggerCallbacks = function triggerCallbacks(changeCallbackCollection, newEntity, oldEntity) {
8
- for (var i = changeCallbackCollection.length; i > 0; i--) {
9
- changeCallbackCollection[i - 1](newEntity, oldEntity);
7
+ var triggerCallbacks = function triggerCallbacks(callbacks, newEntity, oldEntity) {
8
+ for (var i = callbacks.length; i > 0; i--) {
9
+ callbacks[i - 1](newEntity, oldEntity);
10
10
  }
11
11
  };
12
12
  exports.triggerCallbacks = triggerCallbacks;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mic-rexjs/usecases-react",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "React-based solution for use usecases of Clean Architecture",
5
5
  "private": false,
6
6
  "keywords": [
@@ -33,7 +33,7 @@
33
33
  },
34
34
  "license": "MIT",
35
35
  "peerDependencies": {
36
- "@mic-rexjs/usecases": "^1.4.29",
36
+ "@mic-rexjs/usecases": "^2.1.5",
37
37
  "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
38
38
  },
39
39
  "dependencies": {
@@ -48,8 +48,8 @@
48
48
  "@babel/preset-typescript": "^7.22.5",
49
49
  "@commitlint/cli": "^17.6.6",
50
50
  "@commitlint/config-angular": "^17.6.6",
51
- "@mic-rexjs/usecases": "^1.4.29",
52
51
  "@jest/globals": "^29.5.0",
52
+ "@mic-rexjs/usecases": "^2.1.5",
53
53
  "@testing-library/react": "^14.0.0",
54
54
  "@types/node": "^20.4.2",
55
55
  "@types/react": "^18.2.14",
@@ -1 +0,0 @@
1
- export declare const usecaseContextMap: Map<any, any>;
@@ -1 +0,0 @@
1
- export const usecaseContextMap = new Map();
@@ -1,4 +0,0 @@
1
- import { EntityReducers, EntityUseCase } from '@mic-rexjs/usecases';
2
- import { UseCaseContext } from '../defaultUseCaseContext/types';
3
- export interface UseCaseContextMap<T, TEntityReducers extends EntityReducers<T>, TUseCaseOptions extends object = object> extends Map<EntityUseCase<T, TEntityReducers, TUseCaseOptions>, UseCaseContext<T, TEntityReducers>> {
4
- }
@@ -1,3 +0,0 @@
1
- import { UseCaseHookOptions } from '../useUseCase/types';
2
- import { ChangeCallback } from '../../configs/defaultUseCaseContext/types';
3
- export declare const useChangeCallbackCollection: <T, TUseCaseOptions extends object, TOptions extends UseCaseHookOptions<T, TUseCaseOptions> = UseCaseHookOptions<T, TUseCaseOptions>>(isRoot: boolean, contextCollection: ChangeCallback<T>[] | null, options: TOptions) => ChangeCallback<T>[];
@@ -1,29 +0,0 @@
1
- import { useCreation, useMemoizedFn, usePrevious, useUnmount } from 'ahooks';
2
- import { removeItem } from '../../methods/removeItem';
3
- import { triggerWatchers } from '../../methods/triggerWatchers';
4
- export const useChangeCallbackCollection = (isRoot, contextCollection, options) => {
5
- const changeCallbackCollection = useCreation(() => {
6
- if (isRoot) {
7
- return [];
8
- }
9
- return contextCollection;
10
- }, [contextCollection, isRoot]);
11
- const onEntityChange = useMemoizedFn((newEntity, oldEntity) => {
12
- const { onChange, watch } = options;
13
- if (watch) {
14
- triggerWatchers(watch, newEntity, oldEntity);
15
- }
16
- onChange?.(newEntity, oldEntity);
17
- });
18
- const prevChangeCallbackCollection = usePrevious(changeCallbackCollection);
19
- useCreation(() => {
20
- if (prevChangeCallbackCollection) {
21
- removeItem(prevChangeCallbackCollection, onEntityChange);
22
- }
23
- changeCallbackCollection.push(onEntityChange);
24
- }, [onEntityChange, changeCallbackCollection, prevChangeCallbackCollection]);
25
- useUnmount(() => {
26
- removeItem(changeCallbackCollection, onEntityChange);
27
- });
28
- return changeCallbackCollection;
29
- };
@@ -1,3 +0,0 @@
1
- import { ReducerMap } from '@mic-rexjs/usecases';
2
- import { ShouldCacheReducerCallback } from './types';
3
- export declare const cacheReducerCalls: <T extends ReducerMap<import("@mic-rexjs/usecases").Reducer<unknown>>>(reducers: T, shouldCache: ShouldCacheReducerCallback) => T;
@@ -1,26 +0,0 @@
1
- import { isSameArray } from '../isSameArray';
2
- export const cacheReducerCalls = (reducers, shouldCache) => {
3
- const cacheMap = {};
4
- const newReducers = {};
5
- for (const [key, reducer] of Object.entries(reducers)) {
6
- newReducers[key] = ((...args) => {
7
- const cache = cacheMap[key];
8
- const cacheable = shouldCache();
9
- if (cache && cacheable) {
10
- const { parameters, returnValue } = cache;
11
- if (isSameArray(parameters, args)) {
12
- return returnValue;
13
- }
14
- }
15
- const returnValue = reducer(...args);
16
- if (cacheable) {
17
- cacheMap[key] = {
18
- parameters: args,
19
- returnValue,
20
- };
21
- }
22
- return returnValue;
23
- });
24
- }
25
- return newReducers;
26
- };
@@ -1,11 +0,0 @@
1
- import { Reducer, ReducerMap } from '@mic-rexjs/usecases';
2
- export interface ReducerCallCache<T extends Reducer> {
3
- parameters: Parameters<T>;
4
- returnValue: ReturnType<T>;
5
- }
6
- export interface ShouldCacheReducerCallback {
7
- (): boolean;
8
- }
9
- export type ReducerCallCacheMap<T extends ReducerMap> = {
10
- [K in keyof T]?: ReducerCallCache<T[K]>;
11
- };
@@ -1,3 +0,0 @@
1
- import { UseCaseModes } from '../../enums/UseCaseModes';
2
- import { EntityGetter } from '../../hooks/useUseCase/types';
3
- export declare const getRootEntity: <T>(entityState: T, unsafeEntity: T | EntityGetter<T>, mode: UseCaseModes) => T;
@@ -1,10 +0,0 @@
1
- import { UseCaseModes } from '../../enums/UseCaseModes';
2
- export const getRootEntity = (entityState, unsafeEntity, mode) => {
3
- if ((mode & UseCaseModes.Stateless) !== UseCaseModes.Stateless) {
4
- return entityState;
5
- }
6
- if (typeof unsafeEntity === 'function') {
7
- return unsafeEntity();
8
- }
9
- return unsafeEntity;
10
- };
@@ -1,3 +0,0 @@
1
- export interface EntityChangeEventHandler<T> {
2
- (newEntity: T, oldEntity: T): void;
3
- }
@@ -1 +0,0 @@
1
- export declare const removeItem: <T>(list: T[], item: T) => void;
@@ -1,7 +0,0 @@
1
- export const removeItem = (list, item) => {
2
- const index = list.indexOf(item);
3
- if (index === -1) {
4
- return;
5
- }
6
- list.splice(index, 1);
7
- };
@@ -1,3 +0,0 @@
1
- import { UseCaseHookMaxParameters, UseCaseHookParameters } from '../../hooks/useUseCase/types';
2
- import { EntityReducers, Reducers } from '@mic-rexjs/usecases';
3
- export declare const toMaxArguments: <T, TReducers extends Reducers, TEntityReducers extends EntityReducers<T>, TUseCaseOptions extends object>([arg1, arg2, arg3, arg4, arg5]: UseCaseHookParameters<T, TReducers, TEntityReducers, TUseCaseOptions>) => UseCaseHookMaxParameters<T, TReducers, TEntityReducers, TUseCaseOptions>;
@@ -1,28 +0,0 @@
1
- import { UseCaseModes } from '../../enums/UseCaseModes';
2
- export const toMaxArguments = ([arg1, arg2, arg3, arg4, arg5]) => {
3
- if (typeof arg2 !== 'function') {
4
- return [
5
- null,
6
- arg1,
7
- UseCaseModes.Normal,
8
- arg2 || {},
9
- (arg3 || []),
10
- ];
11
- }
12
- if (typeof arg3 === 'number') {
13
- return [
14
- arg1,
15
- arg2,
16
- arg3,
17
- (arg4 || {}),
18
- arg5 || [],
19
- ];
20
- }
21
- return [
22
- arg1,
23
- arg2,
24
- UseCaseModes.Normal,
25
- (arg3 || {}),
26
- (arg4 || []),
27
- ];
28
- };
@@ -1,8 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.usecaseContextMap = void 0;
7
- var usecaseContextMap = new Map();
8
- exports.usecaseContextMap = usecaseContextMap;
@@ -1,37 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useChangeCallbackCollection = void 0;
7
- var _ahooks = require("ahooks");
8
- var _removeItem = require("../../methods/removeItem");
9
- var _triggerWatchers = require("../../methods/triggerWatchers");
10
- var useChangeCallbackCollection = function useChangeCallbackCollection(isRoot, contextCollection, options) {
11
- var changeCallbackCollection = (0, _ahooks.useCreation)(function () {
12
- if (isRoot) {
13
- return [];
14
- }
15
- return contextCollection;
16
- }, [contextCollection, isRoot]);
17
- var onEntityChange = (0, _ahooks.useMemoizedFn)(function (newEntity, oldEntity) {
18
- var onChange = options.onChange,
19
- watch = options.watch;
20
- if (watch) {
21
- (0, _triggerWatchers.triggerWatchers)(watch, newEntity, oldEntity);
22
- }
23
- onChange === null || onChange === void 0 ? void 0 : onChange(newEntity, oldEntity);
24
- });
25
- var prevChangeCallbackCollection = (0, _ahooks.usePrevious)(changeCallbackCollection);
26
- (0, _ahooks.useCreation)(function () {
27
- if (prevChangeCallbackCollection) {
28
- (0, _removeItem.removeItem)(prevChangeCallbackCollection, onEntityChange);
29
- }
30
- changeCallbackCollection.push(onEntityChange);
31
- }, [onEntityChange, changeCallbackCollection, prevChangeCallbackCollection]);
32
- (0, _ahooks.useUnmount)(function () {
33
- (0, _removeItem.removeItem)(changeCallbackCollection, onEntityChange);
34
- });
35
- return changeCallbackCollection;
36
- };
37
- exports.useChangeCallbackCollection = useChangeCallbackCollection;
@@ -1,45 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.cacheReducerCalls = void 0;
8
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
- var _isSameArray = require("../isSameArray");
10
- var cacheReducerCalls = function cacheReducerCalls(reducers, shouldCache) {
11
- var cacheMap = {};
12
- var newReducers = {};
13
- var _loop = function _loop() {
14
- var _Object$entries$_i = (0, _slicedToArray2["default"])(_Object$entries[_i], 2),
15
- key = _Object$entries$_i[0],
16
- reducer = _Object$entries$_i[1];
17
- newReducers[key] = function () {
18
- var cache = cacheMap[key];
19
- var cacheable = shouldCache();
20
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
21
- args[_key] = arguments[_key];
22
- }
23
- if (cache && cacheable) {
24
- var parameters = cache.parameters,
25
- _returnValue = cache.returnValue;
26
- if ((0, _isSameArray.isSameArray)(parameters, args)) {
27
- return _returnValue;
28
- }
29
- }
30
- var returnValue = reducer.apply(void 0, args);
31
- if (cacheable) {
32
- cacheMap[key] = {
33
- parameters: args,
34
- returnValue: returnValue
35
- };
36
- }
37
- return returnValue;
38
- };
39
- };
40
- for (var _i = 0, _Object$entries = Object.entries(reducers); _i < _Object$entries.length; _i++) {
41
- _loop();
42
- }
43
- return newReducers;
44
- };
45
- exports.cacheReducerCalls = cacheReducerCalls;
@@ -1,17 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getRootEntity = void 0;
7
- var _UseCaseModes = require("../../enums/UseCaseModes");
8
- var getRootEntity = function getRootEntity(entityState, unsafeEntity, mode) {
9
- if ((mode & _UseCaseModes.UseCaseModes.Stateless) !== _UseCaseModes.UseCaseModes.Stateless) {
10
- return entityState;
11
- }
12
- if (typeof unsafeEntity === 'function') {
13
- return unsafeEntity();
14
- }
15
- return unsafeEntity;
16
- };
17
- exports.getRootEntity = getRootEntity;
@@ -1,14 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.removeItem = void 0;
7
- var removeItem = function removeItem(list, item) {
8
- var index = list.indexOf(item);
9
- if (index === -1) {
10
- return;
11
- }
12
- list.splice(index, 1);
13
- };
14
- exports.removeItem = removeItem;
@@ -1,25 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.toMaxArguments = void 0;
8
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
- var _UseCaseModes = require("../../enums/UseCaseModes");
10
- var toMaxArguments = function toMaxArguments(_ref) {
11
- var _ref2 = (0, _slicedToArray2["default"])(_ref, 5),
12
- arg1 = _ref2[0],
13
- arg2 = _ref2[1],
14
- arg3 = _ref2[2],
15
- arg4 = _ref2[3],
16
- arg5 = _ref2[4];
17
- if (typeof arg2 !== 'function') {
18
- return [null, arg1, _UseCaseModes.UseCaseModes.Normal, arg2 || {}, arg3 || []];
19
- }
20
- if (typeof arg3 === 'number') {
21
- return [arg1, arg2, arg3, arg4 || {}, arg5 || []];
22
- }
23
- return [arg1, arg2, _UseCaseModes.UseCaseModes.Normal, arg3 || {}, arg4 || []];
24
- };
25
- exports.toMaxArguments = toMaxArguments;