@mic-rexjs/usecases-react 4.0.0-beta.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.
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.LICENSE.txt +2 -0
- package/es/components/UseCaseFragment/index.js +2 -2
- package/es/enums/Statuses/index.d.ts +86 -10
- package/es/enums/Statuses/index.js +86 -10
- package/es/hooks/useAlternateStatuses/index.d.ts +2 -0
- package/es/hooks/useAlternateStatuses/index.js +16 -0
- package/es/hooks/useChanged/index.d.ts +2 -0
- package/es/hooks/useChanged/index.js +17 -0
- package/es/hooks/useChanged/types.d.ts +3 -0
- package/es/hooks/useContext/index.d.ts +3 -4
- package/es/hooks/useContext/index.js +17 -15
- package/es/hooks/useContext/index.test.js +13 -24
- package/es/hooks/useContextValue/index.d.ts +3 -4
- package/es/hooks/useContextValue/index.js +9 -16
- package/es/hooks/useDepsKey/index.js +11 -9
- package/es/hooks/useEntity/index.d.ts +3 -2
- package/es/hooks/useEntity/index.js +51 -50
- package/es/hooks/useEntityReturn/index.d.ts +5 -0
- package/es/hooks/useEntityReturn/index.js +15 -0
- package/es/hooks/useEntityReturn/types.d.ts +7 -0
- package/es/hooks/useEntityRootExec/index.d.ts +5 -0
- package/es/hooks/useEntityRootExec/index.js +7 -0
- package/es/hooks/useEntityRootExec/types.d.ts +7 -0
- package/es/hooks/useEntityRootReturn/index.d.ts +5 -0
- package/es/hooks/useEntityRootReturn/index.js +14 -0
- package/es/hooks/useEntityRootReturn/types.d.ts +7 -0
- package/es/hooks/useEntityRootReturn/types.js +1 -0
- package/es/hooks/useExec/index.d.ts +2 -3
- package/es/hooks/useExec/index.js +3 -25
- package/es/hooks/useExec/types.d.ts +7 -2
- package/es/hooks/useFullArguments/index.d.ts +2 -3
- package/es/hooks/useFullArguments/index.js +4 -6
- package/es/hooks/useIfExec/index.d.ts +2 -0
- package/es/hooks/useIfExec/index.js +20 -0
- package/es/hooks/useIfExec/types.d.ts +6 -0
- package/es/hooks/useIfExec/types.js +1 -0
- package/es/hooks/useIfReturn/index.d.ts +2 -0
- package/es/hooks/useIfReturn/index.js +22 -0
- package/es/hooks/useIfReturn/types.d.ts +6 -0
- package/es/hooks/useIfReturn/types.js +1 -0
- package/es/hooks/useProvider/index.d.ts +3 -3
- package/es/hooks/useProvider/index.js +15 -13
- package/es/hooks/useProviders/index.js +4 -4
- package/es/hooks/useReducers/index.d.ts +5 -4
- package/es/hooks/useReducers/index.js +47 -10
- package/es/hooks/useReturn/index.d.ts +2 -0
- package/es/hooks/useReturn/index.js +33 -0
- package/es/hooks/useReturn/types.d.ts +11 -0
- package/es/hooks/useReturn/types.js +1 -0
- package/es/hooks/useRootInitializing/index.d.ts +2 -0
- package/es/hooks/useRootInitializing/index.js +14 -0
- package/es/hooks/useRootReturn/index.d.ts +5 -0
- package/es/hooks/useRootReturn/index.js +22 -0
- package/es/hooks/useRootReturn/types.d.ts +14 -0
- package/es/hooks/useRootReturn/types.js +1 -0
- package/es/hooks/useStatuses/index.d.ts +4 -4
- package/es/hooks/useStatuses/index.js +46 -21
- package/es/hooks/useStore/index.d.ts +3 -3
- package/es/hooks/useStore/index.js +24 -47
- package/es/hooks/useThrottleUpdate/index.d.ts +2 -0
- package/es/hooks/useThrottleUpdate/index.js +31 -0
- package/es/hooks/useThrottleUpdate/types.d.ts +3 -0
- package/es/hooks/useThrottleUpdate/types.js +1 -0
- package/es/hooks/useUseCase/index.js +18 -27
- package/es/hooks/useUseCase/index.test.js +357 -227
- package/es/hooks/useUseCase/types.d.ts +13 -2
- package/es/types.d.ts +2 -1
- package/es/usecases/contextUseCase/index.js +21 -38
- package/es/usecases/contextUseCase/types.d.ts +6 -9
- package/es/usecases/lifecycleEventUseCase/index.js +37 -9
- package/es/usecases/lifecycleEventUseCase/types.d.ts +11 -8
- package/lib/components/UseCaseFragment/index.js +2 -2
- package/lib/enums/Statuses/index.js +86 -10
- package/lib/hooks/useAlternateStatuses/index.js +22 -0
- package/lib/hooks/useChanged/index.js +23 -0
- package/lib/hooks/useContext/index.js +19 -17
- package/lib/hooks/useContext/index.test.js +13 -24
- package/lib/hooks/useContextValue/index.js +8 -15
- package/lib/hooks/useDepsKey/index.js +10 -8
- package/lib/hooks/useEntity/index.js +82 -53
- package/lib/hooks/useEntityReturn/index.js +22 -0
- package/lib/hooks/useEntityRootExec/index.js +13 -0
- package/lib/hooks/useEntityRootReturn/index.js +21 -0
- package/lib/hooks/useEntityRootReturn/types.js +5 -0
- package/lib/hooks/useExec/index.js +3 -25
- package/lib/hooks/useFullArguments/index.js +4 -6
- package/lib/hooks/useIfExec/index.js +27 -0
- package/lib/hooks/useIfExec/types.js +5 -0
- package/lib/hooks/useIfReturn/index.js +29 -0
- package/lib/hooks/useIfReturn/types.js +5 -0
- package/lib/hooks/useProvider/index.js +15 -13
- package/lib/hooks/useProviders/index.js +3 -3
- package/lib/hooks/useReducers/index.js +50 -10
- package/lib/hooks/useReturn/index.js +40 -0
- package/lib/hooks/useReturn/types.js +5 -0
- package/lib/hooks/useRootInitializing/index.js +20 -0
- package/lib/hooks/useRootReturn/index.js +30 -0
- package/lib/hooks/useRootReturn/types.js +5 -0
- package/lib/hooks/useStatuses/index.js +47 -21
- package/lib/hooks/useStore/index.js +22 -46
- package/lib/hooks/useThrottleUpdate/index.js +37 -0
- package/lib/hooks/useThrottleUpdate/types.js +5 -0
- package/lib/hooks/useUseCase/index.js +18 -27
- package/lib/hooks/useUseCase/index.test.js +389 -267
- package/lib/usecases/contextUseCase/index.js +21 -38
- package/lib/usecases/lifecycleEventUseCase/index.js +48 -8
- package/package.json +1 -1
- package/es/classes/OptionsSet/index.d.ts +0 -6
- package/es/classes/OptionsSet/index.js +0 -44
- package/es/classes/OptionsSet/types.d.ts +0 -8
- package/es/enums/ArgumentTypes/index.d.ts +0 -4
- package/es/enums/ArgumentTypes/index.js +0 -5
- package/es/hooks/useArgumentTypes/index.d.ts +0 -3
- package/es/hooks/useArgumentTypes/index.js +0 -14
- package/es/hooks/useConstantEntityReducers/index.d.ts +0 -3
- package/es/hooks/useConstantEntityReducers/index.js +0 -7
- package/es/hooks/useConstantFn/index.d.ts +0 -1
- package/es/hooks/useConstantFn/index.js +0 -10
- package/es/hooks/useConstantReducers/index.d.ts +0 -3
- package/es/hooks/useConstantReducers/index.js +0 -6
- package/es/hooks/useContextualItem/index.d.ts +0 -4
- package/es/hooks/useContextualItem/index.js +0 -11
- package/es/hooks/useEntityInitializing/index.d.ts +0 -2
- package/es/hooks/useEntityInitializing/index.js +0 -16
- package/es/hooks/useOptions/index.d.ts +0 -5
- package/es/hooks/useOptions/index.js +0 -54
- package/es/hooks/useOptions/types.d.ts +0 -5
- package/es/hooks/useOptionsSet/index.d.ts +0 -5
- package/es/hooks/useOptionsSet/index.js +0 -16
- package/es/hooks/useRootCreation/index.d.ts +0 -4
- package/es/hooks/useRootCreation/index.js +0 -20
- package/es/hooks/useRootCreation/types.d.ts +0 -3
- package/lib/classes/OptionsSet/index.js +0 -94
- package/lib/enums/ArgumentTypes/index.js +0 -11
- package/lib/hooks/useArgumentTypes/index.js +0 -22
- package/lib/hooks/useConstantEntityReducers/index.js +0 -13
- package/lib/hooks/useConstantFn/index.js +0 -17
- package/lib/hooks/useConstantReducers/index.js +0 -12
- package/lib/hooks/useContextualItem/index.js +0 -17
- package/lib/hooks/useEntityInitializing/index.js +0 -22
- package/lib/hooks/useOptions/index.js +0 -61
- package/lib/hooks/useOptionsSet/index.js +0 -22
- package/lib/hooks/useRootCreation/index.js +0 -26
- /package/es/{classes/OptionsSet → hooks/useChanged}/types.js +0 -0
- /package/es/hooks/{useOptions → useEntityReturn}/types.js +0 -0
- /package/es/hooks/{useRootCreation → useEntityRootExec}/types.js +0 -0
- /package/lib/{classes/OptionsSet → hooks/useChanged}/types.js +0 -0
- /package/lib/hooks/{useOptions → useEntityReturn}/types.js +0 -0
- /package/lib/hooks/{useRootCreation → useEntityRootExec}/types.js +0 -0
|
@@ -1,40 +1,40 @@
|
|
|
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.useEntity = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
7
11
|
var _useConstant = require("../useConstant");
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var _usecases = require("@mic-rexjs/usecases");
|
|
12
|
+
var _useEntityReturn = require("../useEntityReturn");
|
|
13
|
+
var _useEntityRootExec = require("../useEntityRootExec");
|
|
14
|
+
var _useThrottleUpdate = require("../useThrottleUpdate");
|
|
12
15
|
var _ahooks = require("ahooks");
|
|
13
16
|
var _react = require("react");
|
|
14
17
|
var _Statuses = require("../../enums/Statuses");
|
|
15
18
|
var _triggerWatchers = require("../../methods/triggerWatchers");
|
|
16
19
|
var _lifecycleEventUseCase = require("../../usecases/lifecycleEventUseCase");
|
|
17
|
-
var useEntity = exports.useEntity = function useEntity(store,
|
|
20
|
+
var useEntity = exports.useEntity = function useEntity(store,
|
|
21
|
+
// 强制传入 `reducers` 参数,目的是让该 `hook` 一定在 `useReducers` 之后执行
|
|
22
|
+
reducers, statuses, options) {
|
|
18
23
|
var entity = store.value;
|
|
19
|
-
var update = (0,
|
|
20
|
-
var
|
|
21
|
-
var hookOptionsRef = (0, _ahooks.useLatest)(hookOptions);
|
|
24
|
+
var update = (0, _useThrottleUpdate.useThrottleUpdate)();
|
|
25
|
+
var optionsRef = (0, _ahooks.useLatest)(options);
|
|
22
26
|
var prevEntityRef = (0, _react.useRef)(entity);
|
|
23
|
-
var
|
|
24
|
-
var
|
|
25
|
-
var
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
getLifecycleEvents = _useConstantReducers.getLifecycleEvents,
|
|
30
|
-
deleteLifecycleEvents = _useConstantReducers.deleteLifecycleEvents;
|
|
27
|
+
var hasEntity = (statuses & _Statuses.Statuses.Entity) === _Statuses.Statuses.Entity;
|
|
28
|
+
var lifecycleReducers = (0, _useConstant.useConstant)(_lifecycleEventUseCase.lifecycleEventUseCase);
|
|
29
|
+
var createLifecycleKey = lifecycleReducers.createLifecycleKey,
|
|
30
|
+
bindLifecycleEventsKey = lifecycleReducers.bindLifecycleEventsKey,
|
|
31
|
+
getLifecycleEvents = lifecycleReducers.getLifecycleEvents,
|
|
32
|
+
deleteLifecycleEvents = lifecycleReducers.deleteLifecycleEvents;
|
|
31
33
|
var lifecycleKey = (0, _useConstant.useConstant)(function () {
|
|
32
|
-
|
|
33
|
-
createKey = _utilsUseCase.createKey;
|
|
34
|
-
return createKey();
|
|
34
|
+
return createLifecycleKey();
|
|
35
35
|
});
|
|
36
36
|
var onTriggerWatchers = (0, _ahooks.useMemoizedFn)(function (newEntity, oldEntity) {
|
|
37
|
-
var watch =
|
|
37
|
+
var watch = optionsRef.current.watch;
|
|
38
38
|
if (!watch) {
|
|
39
39
|
return;
|
|
40
40
|
}
|
|
@@ -43,10 +43,10 @@ var useEntity = exports.useEntity = function useEntity(store, statuses, hookOpti
|
|
|
43
43
|
var onEntityUpdate = (0, _ahooks.useMemoizedFn)(function () {
|
|
44
44
|
var newEntity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : entity;
|
|
45
45
|
var oldEntity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : prevEntityRef.current;
|
|
46
|
-
|
|
46
|
+
var prevEntity = prevEntityRef.current;
|
|
47
|
+
if (!hasEntity) {
|
|
47
48
|
return;
|
|
48
49
|
}
|
|
49
|
-
var prevEntity = prevEntityRef.current;
|
|
50
50
|
if (prevEntity === newEntity) {
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
@@ -60,41 +60,69 @@ var useEntity = exports.useEntity = function useEntity(store, statuses, hookOpti
|
|
|
60
60
|
onAdopt === null || onAdopt === void 0 || onAdopt(newEntity, oldEntity);
|
|
61
61
|
onUpdate === null || onUpdate === void 0 || onUpdate(newEntity, oldEntity);
|
|
62
62
|
});
|
|
63
|
-
var
|
|
64
|
-
var
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
63
|
+
var onEntityLifecycleChange = (0, _ahooks.useMemoizedFn)(/*#__PURE__*/function () {
|
|
64
|
+
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(newEntity, oldEntity) {
|
|
65
|
+
var _getLifecycleEvents2, onChange, result, _t;
|
|
66
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
67
|
+
while (1) switch (_context.prev = _context.next) {
|
|
68
|
+
case 0:
|
|
69
|
+
_getLifecycleEvents2 = getLifecycleEvents(lifecycleKey), onChange = _getLifecycleEvents2.onChange;
|
|
70
|
+
result = onChange === null || onChange === void 0 ? void 0 : onChange(newEntity, oldEntity);
|
|
71
|
+
if (!(result instanceof Promise)) {
|
|
72
|
+
_context.next = 2;
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
_context.next = 1;
|
|
76
|
+
return result;
|
|
77
|
+
case 1:
|
|
78
|
+
result = _context.sent;
|
|
79
|
+
case 2:
|
|
80
|
+
_t = (0, _typeof2["default"])(result);
|
|
81
|
+
_context.next = _t === 'number' ? 3 : _t === 'undefined' ? 4 : 5;
|
|
82
|
+
break;
|
|
83
|
+
case 3:
|
|
84
|
+
update(result);
|
|
85
|
+
return _context.abrupt("return");
|
|
86
|
+
case 4:
|
|
87
|
+
update();
|
|
88
|
+
return _context.abrupt("return");
|
|
89
|
+
case 5:
|
|
90
|
+
if (!result) {
|
|
91
|
+
_context.next = 6;
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
return _context.abrupt("return");
|
|
95
|
+
case 6:
|
|
96
|
+
update();
|
|
97
|
+
case 7:
|
|
98
|
+
case "end":
|
|
99
|
+
return _context.stop();
|
|
100
|
+
}
|
|
101
|
+
}, _callee);
|
|
102
|
+
}));
|
|
103
|
+
return function (_x, _x2) {
|
|
104
|
+
return _ref.apply(this, arguments);
|
|
105
|
+
};
|
|
106
|
+
}());
|
|
107
|
+
var onEntityOptionsChange = (0, _ahooks.useMemoizedFn)(function (newEntity, oldEntity) {
|
|
108
|
+
var currentOptions = optionsRef.current;
|
|
109
|
+
var onChange = currentOptions.onChange;
|
|
110
|
+
onChange === null || onChange === void 0 || onChange(newEntity, oldEntity);
|
|
75
111
|
});
|
|
76
|
-
(0,
|
|
77
|
-
if (!entityRootEnabled) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
112
|
+
(0, _useEntityRootExec.useEntityRootExec)(statuses, function () {
|
|
80
113
|
var _bindLifecycleEventsK = bindLifecycleEventsKey(lifecycleKey),
|
|
81
114
|
onBind = _bindLifecycleEventsK.onBind,
|
|
82
115
|
onAdopt = _bindLifecycleEventsK.onAdopt;
|
|
83
|
-
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
116
|
+
store.watch(onEntityLifecycleChange);
|
|
86
117
|
onBind === null || onBind === void 0 || onBind(entity);
|
|
87
118
|
onAdopt === null || onAdopt === void 0 || onAdopt(entity);
|
|
88
|
-
},
|
|
89
|
-
(0, _ahooks.useUnmount)(function () {
|
|
90
|
-
if (!entityRootEnabled) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
119
|
+
}, function () {
|
|
93
120
|
// 要使用最新的 `entity`
|
|
94
121
|
var currentEntity = store.value;
|
|
95
122
|
var _getLifecycleEvents3 = getLifecycleEvents(lifecycleKey),
|
|
96
123
|
onUnbind = _getLifecycleEvents3.onUnbind,
|
|
97
124
|
onDiscard = _getLifecycleEvents3.onDiscard;
|
|
125
|
+
store.unwatch(onEntityLifecycleChange);
|
|
98
126
|
deleteLifecycleEvents(lifecycleKey);
|
|
99
127
|
onUnbind === null || onUnbind === void 0 || onUnbind(currentEntity);
|
|
100
128
|
onDiscard === null || onDiscard === void 0 || onDiscard(currentEntity);
|
|
@@ -103,20 +131,21 @@ var useEntity = exports.useEntity = function useEntity(store, statuses, hookOpti
|
|
|
103
131
|
* 需要马上 `watch`,因为 `useEffect` 在子组件内优先执行,
|
|
104
132
|
* 如果使用了 `setEntity` 则无法监控到变化
|
|
105
133
|
*/
|
|
106
|
-
(0,
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
store.watch(onEntityChange);
|
|
134
|
+
(0, _useEntityReturn.useEntityReturn)(statuses, function () {
|
|
135
|
+
store.watch(onEntityOptionsChange);
|
|
136
|
+
store.watch(onEntityUpdate);
|
|
111
137
|
},
|
|
112
138
|
/**
|
|
113
139
|
* 在变化时候,组件更新前,使用 `unwatch`
|
|
114
140
|
*/
|
|
115
141
|
function () {
|
|
116
|
-
store.unwatch(
|
|
117
|
-
|
|
142
|
+
store.unwatch(onEntityOptionsChange);
|
|
143
|
+
store.unwatch(onEntityUpdate);
|
|
144
|
+
}, [store]);
|
|
118
145
|
(0, _ahooks.useUpdateEffect)(function () {
|
|
119
146
|
onEntityUpdate();
|
|
120
147
|
}, [entity, onEntityUpdate]);
|
|
148
|
+
// 强制传入 `reducers` 参数,目的是让该 `hook` 一定在 `useReducers` 之后执行
|
|
149
|
+
void reducers;
|
|
121
150
|
return entity;
|
|
122
151
|
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useEntityReturn = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _useIfReturn = require("../useIfReturn");
|
|
10
|
+
var _Statuses = require("../../enums/Statuses");
|
|
11
|
+
/**
|
|
12
|
+
* 只在 `RootCoreCollectionHook` 或 `ContextualCoreCollectionHook` 模式下才会执行相关回调
|
|
13
|
+
*/
|
|
14
|
+
var useEntityReturn = exports.useEntityReturn = function useEntityReturn(statuses, callback, arg3, arg4) {
|
|
15
|
+
var isDepsArgs = Array.isArray(arg3);
|
|
16
|
+
var _ref = isDepsArgs ? [null, arg3] : [arg3, arg4],
|
|
17
|
+
_ref2 = (0, _slicedToArray2["default"])(_ref, 2),
|
|
18
|
+
destructor = _ref2[0],
|
|
19
|
+
deps = _ref2[1];
|
|
20
|
+
var hasEntity = (statuses & _Statuses.Statuses.Entity) === _Statuses.Statuses.Entity;
|
|
21
|
+
return (0, _useIfReturn.useIfReturn)(hasEntity, callback, destructor || null, deps);
|
|
22
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useEntityRootExec = void 0;
|
|
7
|
+
var _useEntityRootReturn = require("../useEntityRootReturn");
|
|
8
|
+
/**
|
|
9
|
+
* 只在 `RootCoreCollectionHook` 模式下才会执行相关回调
|
|
10
|
+
*/
|
|
11
|
+
var useEntityRootExec = exports.useEntityRootExec = function useEntityRootExec() {
|
|
12
|
+
void _useEntityRootReturn.useEntityRootReturn.apply(void 0, arguments);
|
|
13
|
+
};
|
|
@@ -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.useEntityRootReturn = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _useRootReturn = require("../useRootReturn");
|
|
10
|
+
var _Statuses = require("../../enums/Statuses");
|
|
11
|
+
/**
|
|
12
|
+
* 只在 `RootCoreCollectionHook` 模式下才会执行相关回调
|
|
13
|
+
*/
|
|
14
|
+
var useEntityRootReturn = exports.useEntityRootReturn = function useEntityRootReturn(statuses, callback, arg3, arg4) {
|
|
15
|
+
var isDepsArgs = Array.isArray(arg3);
|
|
16
|
+
var _ref = isDepsArgs ? [null, arg3] : [arg3, arg4],
|
|
17
|
+
_ref2 = (0, _slicedToArray2["default"])(_ref, 2),
|
|
18
|
+
destructor = _ref2[0],
|
|
19
|
+
deps = _ref2[1];
|
|
20
|
+
return (0, _useRootReturn.useRootReturn)(statuses, callback, destructor || null, _Statuses.Statuses.EntityRootRuntime, deps);
|
|
21
|
+
};
|
|
@@ -4,29 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.useExec = void 0;
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
var useExec = exports.useExec = function useExec(callback, destructor) {
|
|
11
|
-
var deps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [callback];
|
|
12
|
-
var depsKey = (0, _useDepsKey.useDepsKey)(deps);
|
|
13
|
-
var destructorRef = (0, _react.useRef)(null);
|
|
14
|
-
var onDestruct = function onDestruct() {
|
|
15
|
-
var _destructorRef$curren;
|
|
16
|
-
var isUnmount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
17
|
-
(_destructorRef$curren = destructorRef.current) === null || _destructorRef$curren === void 0 || _destructorRef$curren.call(destructorRef, isUnmount);
|
|
18
|
-
};
|
|
19
|
-
var onExec = (0, _ahooks.useMemoizedFn)(function () {
|
|
20
|
-
onDestruct();
|
|
21
|
-
// `destructor` 一定是在执行回调的时候,同步绑定的,保持两个回调内的闭包变量一致
|
|
22
|
-
destructorRef.current = destructor || null;
|
|
23
|
-
return callback();
|
|
24
|
-
});
|
|
25
|
-
(0, _ahooks.useUnmount)(function () {
|
|
26
|
-
onDestruct(true);
|
|
27
|
-
});
|
|
28
|
-
return (0, _ahooks.useCreation)(function () {
|
|
29
|
-
void depsKey;
|
|
30
|
-
return onExec();
|
|
31
|
-
}, [depsKey, onExec]);
|
|
7
|
+
var _useReturn = require("../useReturn");
|
|
8
|
+
var useExec = exports.useExec = function useExec() {
|
|
9
|
+
void _useReturn.useReturn.apply(void 0, arguments);
|
|
32
10
|
};
|
|
@@ -6,16 +6,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.useFullArguments = void 0;
|
|
8
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
-
var
|
|
10
|
-
var useFullArguments = exports.useFullArguments = function useFullArguments(args, argumentTypes) {
|
|
9
|
+
var useFullArguments = exports.useFullArguments = function useFullArguments(args, isEntityRoot) {
|
|
11
10
|
var _args = (0, _slicedToArray2["default"])(args, 4),
|
|
12
11
|
arg1 = _args[0],
|
|
13
12
|
arg2 = _args[1],
|
|
14
13
|
arg3 = _args[2],
|
|
15
14
|
arg4 = _args[3];
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
return [null, arg1, arg2 || {}, arg3 || []];
|
|
15
|
+
if (isEntityRoot) {
|
|
16
|
+
return [arg1, arg2, arg3 || {}, arg4 || []];
|
|
19
17
|
}
|
|
20
|
-
return [arg1, arg2
|
|
18
|
+
return [null, arg1, arg2 || {}, arg3 || []];
|
|
21
19
|
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useIfExec = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _useExec = require("../useExec");
|
|
10
|
+
var useIfExec = exports.useIfExec = function useIfExec(value, callback, arg3, arg4) {
|
|
11
|
+
var hasDestructor = typeof arg3 === 'function' || arg3 === null;
|
|
12
|
+
var _ref = hasDestructor ? [arg3, arg4] : [null, arg3],
|
|
13
|
+
_ref2 = (0, _slicedToArray2["default"])(_ref, 2),
|
|
14
|
+
destructor = _ref2[0],
|
|
15
|
+
deps = _ref2[1];
|
|
16
|
+
return (0, _useExec.useExec)(function () {
|
|
17
|
+
if (!value) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
callback();
|
|
21
|
+
}, function (isUnmount) {
|
|
22
|
+
if (!value) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
destructor === null || destructor === void 0 || destructor(isUnmount);
|
|
26
|
+
}, deps);
|
|
27
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useIfReturn = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _useReturn = require("../useReturn");
|
|
10
|
+
var useIfReturn = exports.useIfReturn = function useIfReturn(value, callback, arg3,
|
|
11
|
+
// 默认:如果 `callback` 没有用 `useMemorizedFn`,就会每次都执行,否则只执行一次
|
|
12
|
+
arg4) {
|
|
13
|
+
var isDepsArg3 = Array.isArray(arg3);
|
|
14
|
+
var _ref = isDepsArg3 ? [null, arg3] : [arg3, arg4],
|
|
15
|
+
_ref2 = (0, _slicedToArray2["default"])(_ref, 2),
|
|
16
|
+
destructor = _ref2[0],
|
|
17
|
+
deps = _ref2[1];
|
|
18
|
+
return (0, _useReturn.useReturn)(function () {
|
|
19
|
+
if (!value) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
return callback();
|
|
23
|
+
}, function (isUnmount) {
|
|
24
|
+
if (!value) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
destructor === null || destructor === void 0 || destructor(isUnmount);
|
|
28
|
+
}, deps);
|
|
29
|
+
};
|
|
@@ -5,22 +5,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.useProvider = void 0;
|
|
8
|
-
var
|
|
8
|
+
var _useConstant = require("../useConstant");
|
|
9
9
|
var _ahooks = require("ahooks");
|
|
10
10
|
var _react = _interopRequireDefault(require("react"));
|
|
11
11
|
var useProvider = exports.useProvider = function useProvider(context, contextValue) {
|
|
12
12
|
var contextValueRef = (0, _ahooks.useLatest)(contextValue);
|
|
13
|
-
return (0,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
13
|
+
return (0, _useConstant.useConstant)(function () {
|
|
14
|
+
return function (_ref) {
|
|
15
|
+
var children = _ref.children,
|
|
16
|
+
_ref$with = _ref["with"],
|
|
17
|
+
withProviders = _ref$with === void 0 ? [] : _ref$with;
|
|
18
|
+
var ContextProvider = context.Provider;
|
|
19
|
+
var value = contextValueRef.current;
|
|
20
|
+
var providers = Array.isArray(withProviders) ? withProviders : [withProviders];
|
|
21
|
+
return _react["default"].createElement(ContextProvider, {
|
|
22
|
+
value: value
|
|
23
|
+
}, providers.reduceRight(function (currentChildren, withProvider) {
|
|
24
|
+
return _react["default"].createElement(withProvider, {}, currentChildren);
|
|
25
|
+
}, children));
|
|
26
|
+
};
|
|
25
27
|
});
|
|
26
28
|
};
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.useProviders = void 0;
|
|
7
7
|
var _useDepsKey = require("../useDepsKey");
|
|
8
|
+
var _useReturn = require("../useReturn");
|
|
8
9
|
var _ahooks = require("ahooks");
|
|
9
10
|
var useProviders = exports.useProviders = function useProviders() {
|
|
10
11
|
for (var _len = arguments.length, providers = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
@@ -12,8 +13,7 @@ var useProviders = exports.useProviders = function useProviders() {
|
|
|
12
13
|
}
|
|
13
14
|
var depsKey = (0, _useDepsKey.useDepsKey)(providers);
|
|
14
15
|
var providersRef = (0, _ahooks.useLatest)(providers);
|
|
15
|
-
return (0,
|
|
16
|
-
void depsKey;
|
|
16
|
+
return (0, _useReturn.useReturn)(function () {
|
|
17
17
|
return providersRef.current;
|
|
18
|
-
}, [depsKey
|
|
18
|
+
}, [depsKey]);
|
|
19
19
|
};
|
|
@@ -1,30 +1,70 @@
|
|
|
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.useReducers = void 0;
|
|
7
|
-
var
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
var _useReturn = require("../useReturn");
|
|
8
11
|
var _usecases = require("@mic-rexjs/usecases");
|
|
12
|
+
var _ahooks = require("ahooks");
|
|
9
13
|
var _react = require("react");
|
|
10
14
|
var _Statuses = require("../../enums/Statuses");
|
|
11
|
-
var
|
|
12
|
-
|
|
15
|
+
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; }
|
|
16
|
+
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; }
|
|
17
|
+
var _excluded = ["watch", "onChange"];
|
|
18
|
+
var useReducers = exports.useReducers = function useReducers(usecase, store, context, statuses, options) {
|
|
13
19
|
var contextValue = (0, _react.useContext)(context);
|
|
14
20
|
var _ref = contextValue || {},
|
|
15
21
|
_ref$reducers = _ref.reducers,
|
|
16
22
|
contextReducers = _ref$reducers === void 0 ? null : _ref$reducers;
|
|
17
|
-
var
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
var watch = options.watch,
|
|
24
|
+
onChange = options.onChange,
|
|
25
|
+
restOptions = (0, _objectWithoutProperties2["default"])(options, _excluded);
|
|
26
|
+
var _options$options = options.options,
|
|
27
|
+
initailOptions = _options$options === void 0 ? restOptions : _options$options;
|
|
28
|
+
var initailOptionsRef = (0, _ahooks.useLatest)(initailOptions);
|
|
29
|
+
var reducersKey = statuses & _Statuses.Statuses.ReducersKey;
|
|
30
|
+
var onOption = function onOption(key) {
|
|
31
|
+
return function () {
|
|
32
|
+
var currentInitailOptions = initailOptionsRef.current;
|
|
33
|
+
var currentValue = currentInitailOptions[key];
|
|
34
|
+
if (typeof currentValue !== 'function') {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
return currentValue.apply(void 0, arguments);
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
var onOptions = function onOptions() {
|
|
41
|
+
var newOptions = _objectSpread({}, initailOptions);
|
|
42
|
+
for (var _i = 0, _Object$keys = Object.keys(newOptions); _i < _Object$keys.length; _i++) {
|
|
43
|
+
var key = _Object$keys[_i];
|
|
44
|
+
var optionKey = key;
|
|
45
|
+
var value = newOptions[optionKey];
|
|
46
|
+
if (typeof value !== 'function') {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
newOptions[optionKey] = onOption(optionKey);
|
|
21
50
|
}
|
|
51
|
+
return newOptions;
|
|
52
|
+
};
|
|
53
|
+
return (0, _useReturn.useReturn)(function () {
|
|
54
|
+
var hasEntity = (statuses & _Statuses.Statuses.Entity) === _Statuses.Statuses.Entity;
|
|
55
|
+
var isEntityRootRuntime = (statuses & _Statuses.Statuses.EntityRootRuntime) === _Statuses.Statuses.EntityRootRuntime;
|
|
56
|
+
if (!hasEntity) {
|
|
57
|
+
return usecase(options);
|
|
58
|
+
}
|
|
59
|
+
if (!isEntityRootRuntime) {
|
|
60
|
+
return contextReducers;
|
|
61
|
+
}
|
|
62
|
+
var newOptions = onOptions();
|
|
22
63
|
return (0, _usecases.createEntityReducers)(store, usecase, {
|
|
23
|
-
options:
|
|
64
|
+
options: newOptions,
|
|
24
65
|
onGenerate: function onGenerate(newEntity, result) {
|
|
25
66
|
return result;
|
|
26
67
|
}
|
|
27
68
|
});
|
|
28
|
-
};
|
|
29
|
-
return (0, _useContextualItem.useContextualItem)(contextReducers, statuses, onCreate, deps);
|
|
69
|
+
}, [reducersKey]);
|
|
30
70
|
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useReturn = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _useDepsKey = require("../useDepsKey");
|
|
10
|
+
var _ahooks = require("ahooks");
|
|
11
|
+
var _react = require("react");
|
|
12
|
+
var useReturn = exports.useReturn = function useReturn(callback) {
|
|
13
|
+
var arg2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [callback];
|
|
14
|
+
var arg3 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [callback];
|
|
15
|
+
var hasDestructor = !Array.isArray(arg2);
|
|
16
|
+
var _ref = hasDestructor ? [arg2, arg3] : [null, arg2],
|
|
17
|
+
_ref2 = (0, _slicedToArray2["default"])(_ref, 2),
|
|
18
|
+
destructor = _ref2[0],
|
|
19
|
+
deps = _ref2[1];
|
|
20
|
+
var depsKey = (0, _useDepsKey.useDepsKey)(deps);
|
|
21
|
+
var destructorRef = (0, _react.useRef)(null);
|
|
22
|
+
var onDestruct = function onDestruct() {
|
|
23
|
+
var _destructorRef$curren;
|
|
24
|
+
var isUnmount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
25
|
+
(_destructorRef$curren = destructorRef.current) === null || _destructorRef$curren === void 0 || _destructorRef$curren.call(destructorRef, isUnmount);
|
|
26
|
+
};
|
|
27
|
+
var onCreate = (0, _ahooks.useMemoizedFn)(function () {
|
|
28
|
+
onDestruct();
|
|
29
|
+
// `destructor` 一定是在执行回调的时候,同步绑定的,保持两个回调内的闭包变量一致
|
|
30
|
+
destructorRef.current = destructor;
|
|
31
|
+
return callback();
|
|
32
|
+
});
|
|
33
|
+
(0, _ahooks.useUnmount)(function () {
|
|
34
|
+
onDestruct(true);
|
|
35
|
+
});
|
|
36
|
+
return (0, _ahooks.useCreation)(function () {
|
|
37
|
+
void depsKey;
|
|
38
|
+
return onCreate();
|
|
39
|
+
}, [depsKey, onCreate]);
|
|
40
|
+
};
|
|
@@ -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
|
+
};
|