@mic-rexjs/usecases-react 3.7.0 → 4.0.0-beta.3

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 (150) hide show
  1. package/dist/index.min.js +1 -1
  2. package/dist/index.min.js.LICENSE.txt +2 -0
  3. package/es/components/UseCaseFragment/index.js +2 -2
  4. package/es/enums/Statuses/index.d.ts +86 -10
  5. package/es/enums/Statuses/index.js +86 -10
  6. package/es/hooks/useAlternateStatuses/index.d.ts +2 -0
  7. package/es/hooks/useAlternateStatuses/index.js +16 -0
  8. package/es/hooks/useChanged/index.d.ts +2 -0
  9. package/es/hooks/useChanged/index.js +17 -0
  10. package/es/hooks/useChanged/types.d.ts +3 -0
  11. package/es/hooks/useContext/index.d.ts +3 -4
  12. package/es/hooks/useContext/index.js +17 -15
  13. package/es/hooks/useContext/index.test.js +13 -24
  14. package/es/hooks/useContextValue/index.d.ts +5 -0
  15. package/es/hooks/useContextValue/index.js +13 -0
  16. package/es/hooks/useDepsKey/index.js +11 -9
  17. package/es/hooks/useEntity/index.d.ts +3 -2
  18. package/es/hooks/useEntity/index.js +52 -53
  19. package/es/hooks/useEntityReturn/index.d.ts +5 -0
  20. package/es/hooks/useEntityReturn/index.js +15 -0
  21. package/es/hooks/useEntityReturn/types.d.ts +7 -0
  22. package/es/hooks/useEntityRootExec/index.d.ts +5 -0
  23. package/es/hooks/useEntityRootExec/index.js +7 -0
  24. package/es/hooks/useEntityRootExec/types.d.ts +7 -0
  25. package/es/hooks/useEntityRootExec/types.js +1 -0
  26. package/es/hooks/useEntityRootReturn/index.d.ts +5 -0
  27. package/es/hooks/useEntityRootReturn/index.js +14 -0
  28. package/es/hooks/useEntityRootReturn/types.d.ts +7 -0
  29. package/es/hooks/useEntityRootReturn/types.js +1 -0
  30. package/es/hooks/useExec/index.d.ts +2 -3
  31. package/es/hooks/useExec/index.js +3 -12
  32. package/es/hooks/useExec/types.d.ts +10 -2
  33. package/es/hooks/useFullArguments/index.d.ts +2 -3
  34. package/es/hooks/useFullArguments/index.js +4 -6
  35. package/es/hooks/useFullArguments/types.d.ts +2 -2
  36. package/es/hooks/useIfExec/index.d.ts +2 -0
  37. package/es/hooks/useIfExec/index.js +20 -0
  38. package/es/hooks/useIfExec/types.d.ts +6 -0
  39. package/es/hooks/useIfExec/types.js +1 -0
  40. package/es/hooks/useIfReturn/index.d.ts +2 -0
  41. package/es/hooks/useIfReturn/index.js +22 -0
  42. package/es/hooks/useIfReturn/types.d.ts +6 -0
  43. package/es/hooks/useIfReturn/types.js +1 -0
  44. package/es/hooks/useProvider/index.d.ts +3 -5
  45. package/es/hooks/useProvider/index.js +17 -23
  46. package/es/hooks/useProviders/index.js +4 -4
  47. package/es/hooks/useReducers/index.d.ts +5 -4
  48. package/es/hooks/useReducers/index.js +45 -27
  49. package/es/hooks/useReturn/index.d.ts +2 -0
  50. package/es/hooks/useReturn/index.js +33 -0
  51. package/es/hooks/useReturn/types.d.ts +11 -0
  52. package/es/hooks/useReturn/types.js +1 -0
  53. package/es/hooks/useRootInitializing/index.d.ts +2 -0
  54. package/es/hooks/useRootInitializing/index.js +14 -0
  55. package/es/hooks/useRootReturn/index.d.ts +5 -0
  56. package/es/hooks/useRootReturn/index.js +22 -0
  57. package/es/hooks/useRootReturn/types.d.ts +14 -0
  58. package/es/hooks/useRootReturn/types.js +1 -0
  59. package/es/hooks/useStatuses/index.d.ts +4 -4
  60. package/es/hooks/useStatuses/index.js +46 -21
  61. package/es/hooks/useStore/index.d.ts +3 -3
  62. package/es/hooks/useStore/index.js +21 -49
  63. package/es/hooks/useThrottleUpdate/index.d.ts +2 -0
  64. package/es/hooks/useThrottleUpdate/index.js +31 -0
  65. package/es/hooks/useThrottleUpdate/types.d.ts +3 -0
  66. package/es/hooks/useThrottleUpdate/types.js +1 -0
  67. package/es/hooks/useUseCase/index.js +21 -24
  68. package/es/hooks/useUseCase/index.test.js +330 -98
  69. package/es/hooks/useUseCase/types.d.ts +15 -5
  70. package/es/methods/cacheCall/index.d.ts +2 -0
  71. package/es/methods/cacheCall/index.js +38 -0
  72. package/es/methods/cacheCall/types.d.ts +12 -0
  73. package/es/methods/cacheCall/types.js +1 -0
  74. package/es/methods/cacheCalls/index.d.ts +2 -0
  75. package/es/methods/cacheCalls/index.js +12 -0
  76. package/es/types.d.ts +2 -1
  77. package/es/usecases/contextUseCase/index.js +21 -38
  78. package/es/usecases/contextUseCase/types.d.ts +5 -6
  79. package/es/usecases/lifecycleEventUseCase/index.js +37 -9
  80. package/es/usecases/lifecycleEventUseCase/types.d.ts +11 -8
  81. package/lib/components/UseCaseFragment/index.js +2 -2
  82. package/lib/enums/Statuses/index.js +86 -10
  83. package/lib/hooks/useAlternateStatuses/index.js +22 -0
  84. package/lib/hooks/useChanged/index.js +23 -0
  85. package/lib/hooks/useContext/index.js +19 -17
  86. package/lib/hooks/useContext/index.test.js +13 -24
  87. package/lib/hooks/useContextValue/index.js +19 -0
  88. package/lib/hooks/useDepsKey/index.js +10 -8
  89. package/lib/hooks/useEntity/index.js +81 -54
  90. package/lib/hooks/useEntityReturn/index.js +22 -0
  91. package/lib/hooks/useEntityRootExec/index.js +13 -0
  92. package/lib/hooks/useEntityRootExec/types.js +5 -0
  93. package/lib/hooks/useEntityRootReturn/index.js +21 -0
  94. package/lib/hooks/useEntityRootReturn/types.js +5 -0
  95. package/lib/hooks/useExec/index.js +3 -12
  96. package/lib/hooks/useFullArguments/index.js +4 -6
  97. package/lib/hooks/useIfExec/index.js +27 -0
  98. package/lib/hooks/useIfExec/types.js +5 -0
  99. package/lib/hooks/useIfReturn/index.js +29 -0
  100. package/lib/hooks/useIfReturn/types.js +5 -0
  101. package/lib/hooks/useProvider/index.js +16 -22
  102. package/lib/hooks/useProviders/index.js +3 -3
  103. package/lib/hooks/useReducers/index.js +46 -29
  104. package/lib/hooks/useReturn/index.js +40 -0
  105. package/lib/hooks/useReturn/types.js +5 -0
  106. package/lib/hooks/useRootInitializing/index.js +20 -0
  107. package/lib/hooks/useRootReturn/index.js +30 -0
  108. package/lib/hooks/useRootReturn/types.js +5 -0
  109. package/lib/hooks/useStatuses/index.js +47 -21
  110. package/lib/hooks/useStore/index.js +19 -48
  111. package/lib/hooks/useThrottleUpdate/index.js +37 -0
  112. package/lib/hooks/useThrottleUpdate/types.js +5 -0
  113. package/lib/hooks/useUseCase/index.js +22 -25
  114. package/lib/hooks/useUseCase/index.test.js +360 -97
  115. package/lib/methods/cacheCall/index.js +44 -0
  116. package/lib/methods/cacheCall/types.js +5 -0
  117. package/lib/methods/cacheCalls/index.js +19 -0
  118. package/lib/usecases/contextUseCase/index.js +21 -38
  119. package/lib/usecases/lifecycleEventUseCase/index.js +48 -8
  120. package/package.json +3 -3
  121. package/es/enums/ArgumentTypes/index.d.ts +0 -4
  122. package/es/enums/ArgumentTypes/index.js +0 -5
  123. package/es/hooks/useArgumentTypes/index.d.ts +0 -3
  124. package/es/hooks/useArgumentTypes/index.js +0 -14
  125. package/es/hooks/useConstantEntityReducers/index.d.ts +0 -3
  126. package/es/hooks/useConstantEntityReducers/index.js +0 -7
  127. package/es/hooks/useConstantFn/index.d.ts +0 -1
  128. package/es/hooks/useConstantFn/index.js +0 -10
  129. package/es/hooks/useConstantReducers/index.d.ts +0 -3
  130. package/es/hooks/useConstantReducers/index.js +0 -6
  131. package/es/hooks/useContextualItem/index.d.ts +0 -4
  132. package/es/hooks/useContextualItem/index.js +0 -31
  133. package/es/hooks/useContextualItem/types.d.ts +0 -3
  134. package/es/hooks/useEntityInitializing/index.d.ts +0 -2
  135. package/es/hooks/useEntityInitializing/index.js +0 -16
  136. package/es/usecases/methodUseCase/index.d.ts +0 -2
  137. package/es/usecases/methodUseCase/index.js +0 -72
  138. package/es/usecases/methodUseCase/types.d.ts +0 -21
  139. package/lib/enums/ArgumentTypes/index.js +0 -11
  140. package/lib/hooks/useArgumentTypes/index.js +0 -22
  141. package/lib/hooks/useConstantEntityReducers/index.js +0 -13
  142. package/lib/hooks/useConstantFn/index.js +0 -17
  143. package/lib/hooks/useConstantReducers/index.js +0 -12
  144. package/lib/hooks/useContextualItem/index.js +0 -37
  145. package/lib/hooks/useEntityInitializing/index.js +0 -22
  146. package/lib/usecases/methodUseCase/index.js +0 -79
  147. /package/es/hooks/{useContextualItem → useChanged}/types.js +0 -0
  148. /package/es/{usecases/methodUseCase → hooks/useEntityReturn}/types.js +0 -0
  149. /package/lib/hooks/{useContextualItem → useChanged}/types.js +0 -0
  150. /package/lib/{usecases/methodUseCase → hooks/useEntityReturn}/types.js +0 -0
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useRootInitializing = void 0;
7
+ var _useReturn = require("../useReturn");
8
+ var _react = require("react");
9
+ var _Statuses = require("../../enums/Statuses");
10
+ var useRootInitializing = exports.useRootInitializing = function useRootInitializing(statuses) {
11
+ var rootKey = statuses & _Statuses.Statuses.RootKey;
12
+ var isInitializingRef = (0, _react.useRef)(true);
13
+ return (0, _useReturn.useReturn)(function () {
14
+ var isInitializing = isInitializingRef.current;
15
+ isInitializingRef.current = false;
16
+ return isInitializing;
17
+ }, function () {
18
+ isInitializingRef.current = true;
19
+ }, [rootKey]);
20
+ };
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useRootReturn = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _useIfReturn = require("../useIfReturn");
10
+ var _Statuses = require("../../enums/Statuses");
11
+ /**
12
+ * 只有 `ReducersHook` 或 `RootCoreCollectionHook` 模式下才执行相关回调
13
+ */
14
+ var useRootReturn = exports.useRootReturn = function useRootReturn(statuses, callback, arg3, arg4, arg5) {
15
+ var isDepsArg3 = Array.isArray(arg3);
16
+ var isDepsArg4 = Array.isArray(arg4);
17
+ var isStatusesArg3 = typeof arg3 === 'number';
18
+ var isStatusesArg4 = typeof arg4 === 'number';
19
+ var destructor = !isDepsArg3 && !isStatusesArg3 ? arg3 : null;
20
+ var rootStatuses = isStatusesArg3 ? arg3 : isStatusesArg4 ? arg4 : _Statuses.Statuses.RootRuntime;
21
+ var deps = isDepsArg3 ? arg3 : isDepsArg4 ? arg4 : arg5 || [];
22
+ var rootKey = statuses & _Statuses.Statuses.RootKey;
23
+ var rootCalled = (statuses & rootStatuses) === rootStatuses;
24
+ var isEntityRootRuntime = (statuses & _Statuses.Statuses.EntityRootRuntime) === _Statuses.Statuses.EntityRootRuntime;
25
+ return (0, _useIfReturn.useIfReturn)(rootCalled, function () {
26
+ return callback(isEntityRootRuntime);
27
+ }, function () {
28
+ destructor === null || destructor === void 0 || destructor(isEntityRootRuntime);
29
+ }, [rootKey].concat((0, _toConsumableArray2["default"])(deps)));
30
+ };
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -1,31 +1,57 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.useStatuses = void 0;
7
- var _ahooks = require("ahooks");
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _useAlternateStatuses = require("../useAlternateStatuses");
10
+ var _useDepsKey = require("../useDepsKey");
8
11
  var _react = require("react");
9
- var _ArgumentTypes = require("../../enums/ArgumentTypes");
10
12
  var _Statuses = require("../../enums/Statuses");
11
- var useStatuses = exports.useStatuses = function useStatuses(context, argumentTypes) {
13
+ // 遵循一个要求:参数不变,`statuses` 的计算结果不能变
14
+ var useStatuses = exports.useStatuses = function useStatuses(fullArguments, context, isEntityRoot) {
15
+ var statuses = _Statuses.Statuses.None;
16
+ var _fullArguments = (0, _slicedToArray2["default"])(fullArguments, 4),
17
+ entity = _fullArguments[0],
18
+ usecase = _fullArguments[1],
19
+ deps = _fullArguments[3];
20
+ var isInitializer = typeof entity === 'function';
12
21
  var contextValue = (0, _react.useContext)(context);
13
- return (0, _ahooks.useCreation)(function () {
14
- var statuses = _Statuses.Statuses.None;
15
- var _ref = contextValue || {},
16
- store = _ref.store;
17
- var hasEntity = (argumentTypes & _ArgumentTypes.ArgumentTypes.Entity) === _ArgumentTypes.ArgumentTypes.Entity;
18
- if (hasEntity) {
19
- statuses |= _Statuses.Statuses.EntityRootEnabled;
20
- }
21
- if (contextValue) {
22
- statuses |= _Statuses.Statuses.ContextEnabled;
23
- } else {
24
- statuses |= _Statuses.Statuses.RootEnabled;
25
- }
26
- if (store) {
27
- statuses |= _Statuses.Statuses.EntityEnabled;
28
- }
29
- return statuses;
30
- }, [argumentTypes, contextValue]);
22
+ var isEntityContext = !isEntityRoot && contextValue !== null;
23
+ var _ref = isEntityContext ? contextValue : {
24
+ key: isEntityRoot ? _Statuses.Statuses.RootX : _Statuses.Statuses.RootY
25
+ },
26
+ key = _ref.key;
27
+ var depsKey = (0, _useDepsKey.useDepsKey)(deps);
28
+ var rootKey = (0, _useDepsKey.useDepsKey)([usecase, key]);
29
+ var reducersKey = (0, _useDepsKey.useDepsKey)([rootKey, depsKey]);
30
+ var rootStatuses = (0, _useAlternateStatuses.useAlternateStatuses)(rootKey, _Statuses.Statuses.RootX, _Statuses.Statuses.RootY);
31
+ var usecaseStatuses = (0, _useAlternateStatuses.useAlternateStatuses)(usecase, _Statuses.Statuses.UseCaseX, _Statuses.Statuses.UseCaseY);
32
+ var reducersStatuses = (0, _useAlternateStatuses.useAlternateStatuses)(reducersKey, _Statuses.Statuses.ReducersX, _Statuses.Statuses.ReducersY);
33
+ var depsStatuses = (0, _useAlternateStatuses.useAlternateStatuses)(depsKey, _Statuses.Statuses.DepsX, _Statuses.Statuses.DepsY);
34
+ var initialEntityStatuses = (0, _useAlternateStatuses.useAlternateStatuses)(isInitializer ? reducersKey : entity, _Statuses.Statuses.InitialEntityX, _Statuses.Statuses.InitialEntityY);
35
+ switch (true) {
36
+ case isEntityRoot:
37
+ // `entity` 参数,只有 `entity root` 模式才有
38
+ statuses |= initialEntityStatuses;
39
+ statuses |= _Statuses.Statuses.EntityRootRuntime;
40
+ break;
41
+ case isEntityContext:
42
+ statuses |= _Statuses.Statuses.EntityContextRuntime;
43
+ break;
44
+ default:
45
+ statuses |= _Statuses.Statuses.RootRuntime;
46
+ break;
47
+ }
48
+ // `root` 是肯定有的,要么自身为 `root`,要么上下文有 `root`
49
+ statuses |= rootStatuses;
50
+ // `usecase` 作为标识符参数,也是肯定有的
51
+ statuses |= usecaseStatuses;
52
+ // `reducers` 作为 `usecase` 的产物,也是肯定有的
53
+ statuses |= reducersStatuses;
54
+ // `deps` 虽然是可选参数,但是默认值是空数组 `[]`,所以也是肯定有的
55
+ statuses |= depsStatuses;
56
+ return statuses;
31
57
  };
@@ -1,75 +1,46 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.useStore = void 0;
8
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
- var _useContextualItem = require("../useContextualItem");
10
- var _useEntityInitializing = require("../useEntityInitializing");
11
- var _useExec = require("../useExec");
7
+ var _useEntityRootExec = require("../useEntityRootExec");
8
+ var _useRootInitializing = require("../useRootInitializing");
9
+ var _useRootReturn = require("../useRootReturn");
12
10
  var _usecases = require("@mic-rexjs/usecases");
13
- var _ahooks = require("ahooks");
14
11
  var _react = require("react");
15
12
  var _Statuses = require("../../enums/Statuses");
16
13
  var _runEntityInitializer = require("../../methods/runEntityInitializer");
17
14
  var useStore = exports.useStore = function useStore(entityArg, context, statuses) {
18
- var deps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
19
- var isFunction = typeof entityArg === 'function';
20
- var isInitializing = (0, _useEntityInitializing.useEntityInitializing)(statuses);
21
15
  var createEntityListRef = (0, _react.useRef)([]);
16
+ var isInitializing = (0, _useRootInitializing.useRootInitializing)(statuses);
22
17
  var contextValue = (0, _react.useContext)(context);
23
18
  var _ref = contextValue || {},
24
19
  _ref$store = _ref.store,
25
20
  contextStore = _ref$store === void 0 ? null : _ref$store;
26
- var entityRootEnabled = (statuses & _Statuses.Statuses.EntityRootEnabled) === _Statuses.Statuses.EntityRootEnabled;
27
- var _useState = (0, _react.useState)(function () {
28
- return new _usecases.EntityStore(void 0);
29
- }),
30
- _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
31
- store = _useState2[0];
32
- var prevEntityArg = (0, _ahooks.usePrevious)(entityArg, function () {
33
- return true;
21
+ var initialEntityKey = statuses & _Statuses.Statuses.InitialEntityKey;
22
+ var rootStore = (0, _useRootReturn.useRootReturn)(statuses, function () {
23
+ return new _usecases.EntityStore(void 0);
34
24
  });
35
- /**
36
- * 这里只有初始化和 `deps` 变化时,才会执行;
37
- * 比如:`useUseCase(entityInitailizer, usecase, options, [key])`,
38
- * 当首次调用 `entityInitailizer` 或 `key` 变化,才会触发以下事件
39
- */
25
+ var store = rootStore || contextStore;
40
26
  var onRunInitializer = function onRunInitializer() {
27
+ if (!isInitializing) {
28
+ return;
29
+ }
41
30
  var createEntityList = createEntityListRef.current;
42
31
  createEntityListRef.current = (0, _runEntityInitializer.runEntityInitializer)(store, entityArg, createEntityList, isInitializing);
43
32
  };
44
- var onSetEntity = function onSetEntity() {
45
- if (isInitializing) {
46
- store.initValue(entityArg);
33
+ (0, _useEntityRootExec.useEntityRootExec)(statuses, function () {
34
+ var isFunction = typeof entityArg === 'function';
35
+ if (isFunction) {
36
+ onRunInitializer();
47
37
  return;
48
38
  }
49
- if (entityArg === prevEntityArg) {
39
+ if (isInitializing) {
40
+ store.initValue(entityArg);
50
41
  return;
51
42
  }
52
- // 执行同步操作
53
43
  store.setValue(entityArg);
54
- };
55
- /**
56
- * 这里仅仅是将非函数的 `entity` 同步;
57
- *
58
- * 比如 `useUseCase(entity, usecase)`,
59
- * 当传入的 `entity` 变化时,执行一下同步操作。
60
- */
61
- (0, _useExec.useExec)(function () {
62
- switch (true) {
63
- case !entityRootEnabled:
64
- case isFunction:
65
- return;
66
- }
67
- onSetEntity();
68
- });
69
- return (0, _useContextualItem.useContextualItem)(contextStore, statuses, function () {
70
- if (entityRootEnabled && isFunction) {
71
- onRunInitializer();
72
- }
73
- return store;
74
- }, deps);
44
+ }, [initialEntityKey]);
45
+ return store;
75
46
  };
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useThrottleUpdate = void 0;
7
+ var _ahooks = require("ahooks");
8
+ var _react = require("react");
9
+ var useThrottleUpdate = exports.useThrottleUpdate = function useThrottleUpdate() {
10
+ var update = (0, _ahooks.useUpdate)();
11
+ var prevUpdateKeyRef = (0, _react.useRef)(-1);
12
+ var prevUpdateTimeRef = (0, _react.useRef)(0);
13
+ var triggerUpdate = function triggerUpdate() {
14
+ prevUpdateTimeRef.current = Date.now();
15
+ update();
16
+ };
17
+ return (0, _ahooks.useMemoizedFn)(function () {
18
+ var wait = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
19
+ if (wait === 0) {
20
+ triggerUpdate();
21
+ return;
22
+ }
23
+ var prevUpdateKey = prevUpdateKeyRef.current;
24
+ var prevUpdateTime = prevUpdateTimeRef.current;
25
+ var time = Date.now();
26
+ var delay = wait - (time - prevUpdateTime);
27
+ clearTimeout(prevUpdateKey);
28
+ if (delay <= 0) {
29
+ triggerUpdate();
30
+ return;
31
+ }
32
+ var key = setTimeout(function () {
33
+ triggerUpdate();
34
+ }, delay);
35
+ prevUpdateKeyRef.current = key;
36
+ });
37
+ };
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -8,48 +8,45 @@ exports.useUseCase = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _useArgumentTypes = require("../useArgumentTypes");
12
- var _useConstantFn = require("../useConstantFn");
13
11
  var _useContext = require("../useContext");
12
+ var _useContextValue = require("../useContextValue");
14
13
  var _useEntity = require("../useEntity");
15
14
  var _useFullArguments = require("../useFullArguments");
16
15
  var _useIsRenderingRef = require("../useIsRenderingRef");
17
16
  var _useProvider = require("../useProvider");
18
17
  var _useReducers = require("../useReducers");
18
+ var _useReturn = require("../useReturn");
19
19
  var _useStatuses = require("../useStatuses");
20
20
  var _useStore = require("../useStore");
21
- var _ahooks = require("ahooks");
22
21
  var _Statuses = require("../../enums/Statuses");
23
- var _methodUseCase2 = require("../../usecases/methodUseCase");
22
+ var _cacheCalls = require("../../methods/cacheCalls");
24
23
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25
24
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26
25
  var useUseCase = exports.useUseCase = function useUseCase() {
27
- var isRenderingRef = (0, _useIsRenderingRef.useIsRenderingRef)();
28
26
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
29
27
  args[_key] = arguments[_key];
30
28
  }
31
- var argumentTypes = (0, _useArgumentTypes.useArgumentTypes)(args);
32
- var fullArguments = (0, _useFullArguments.useFullArguments)(args, argumentTypes);
33
- var _fullArguments = (0, _slicedToArray2["default"])(fullArguments, 4),
29
+ var arg2 = args[1];
30
+ var isEntityRoot = typeof arg2 === 'function';
31
+ var fullArguments = (0, _useFullArguments.useFullArguments)(args, isEntityRoot);
32
+ var _fullArguments = (0, _slicedToArray2["default"])(fullArguments, 3),
34
33
  unsafeEntity = _fullArguments[0],
35
- unsafeUsecase = _fullArguments[1],
36
- options = _fullArguments[2],
37
- deps = _fullArguments[3];
38
- var usecase = (0, _useConstantFn.useConstantFn)(unsafeUsecase);
39
- var context = (0, _useContext.useContext)(usecase, argumentTypes);
40
- var entityContext = context;
41
- var statuses = (0, _useStatuses.useStatuses)(context, argumentTypes);
42
- var store = (0, _useStore.useStore)(unsafeEntity, entityContext, statuses, deps);
43
- var reducers = (0, _useReducers.useReducers)(usecase, context, store, statuses, options, deps);
44
- var entity = (0, _useEntity.useEntity)(store, statuses, options);
45
- var Provider = (0, _useProvider.useProvider)(statuses, context, store, reducers);
46
- return (0, _ahooks.useCreation)(function () {
47
- if ((statuses & _Statuses.Statuses.EntityEnabled) !== _Statuses.Statuses.EntityEnabled) {
34
+ usecase = _fullArguments[1],
35
+ options = _fullArguments[2];
36
+ var context = (0, _useContext.useContext)(usecase, isEntityRoot);
37
+ var statuses = (0, _useStatuses.useStatuses)(fullArguments, context, isEntityRoot);
38
+ var store = (0, _useStore.useStore)(unsafeEntity, context, statuses);
39
+ var reducers = (0, _useReducers.useReducers)(usecase, store, context, statuses, options);
40
+ var entity = (0, _useEntity.useEntity)(store, reducers, statuses, options);
41
+ var contextValue = (0, _useContextValue.useContextValue)(entity, store, reducers, statuses);
42
+ var Provider = (0, _useProvider.useProvider)(context, contextValue);
43
+ var isRenderingRef = (0, _useIsRenderingRef.useIsRenderingRef)();
44
+ return (0, _useReturn.useReturn)(function () {
45
+ var hasEntity = (statuses & _Statuses.Statuses.Entity) === _Statuses.Statuses.Entity;
46
+ if (!hasEntity) {
48
47
  return reducers;
49
48
  }
50
- var _methodUseCase = (0, _methodUseCase2.methodUseCase)(),
51
- cacheCalls = _methodUseCase.cacheCalls;
52
- var cachedReducers = cacheCalls(reducers, {
49
+ var cachedReducers = (0, _cacheCalls.cacheCalls)(reducers, {
53
50
  onShouldCache: function onShouldCache() {
54
51
  return isRenderingRef.current;
55
52
  }
@@ -61,5 +58,5 @@ var useUseCase = exports.useUseCase = function useUseCase() {
61
58
  // 这里是为了让访问器 `getter` 的值保持唯一性,否则每次 `getter` 返回的对象都是新对象,无法用于 `deps`
62
59
  var newEntity = isObjectEntity ? _objectSpread({}, entity) : entity;
63
60
  return [newEntity, cachedReducers, Provider];
64
- }, [statuses, entity, reducers, Provider, isRenderingRef]);
61
+ }, [entity, reducers, Provider, statuses]);
65
62
  };