@mic-rexjs/usecases-react 2.10.3 → 2.11.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 (37) hide show
  1. package/dist/index.min.js +1 -1
  2. package/es/hooks/useConstantEntityReducers/index.d.ts +3 -0
  3. package/es/hooks/useConstantEntityReducers/index.js +7 -0
  4. package/es/hooks/useConstantReducers/index.d.ts +3 -0
  5. package/es/hooks/useConstantReducers/index.js +6 -0
  6. package/es/hooks/useContextualItem/index.d.ts +2 -1
  7. package/es/hooks/useContextualItem/index.js +5 -3
  8. package/es/hooks/useDepsKey/index.js +2 -2
  9. package/es/hooks/useEntity/index.d.ts +2 -1
  10. package/es/hooks/useEntity/index.js +11 -3
  11. package/es/hooks/useFullArguments/types.d.ts +3 -3
  12. package/es/hooks/useRuntimeEntity/index.d.ts +2 -1
  13. package/es/hooks/useRuntimeEntity/index.js +4 -3
  14. package/es/hooks/useUseCase/index.js +13 -8
  15. package/es/hooks/useUseCase/index.test.js +60 -0
  16. package/es/hooks/useUseCase/types.d.ts +3 -3
  17. package/es/usecases/valueUseCase/index.js +45 -9
  18. package/es/usecases/valueUseCase/types.d.ts +5 -1
  19. package/lib/hooks/useConstantEntityReducers/index.js +13 -0
  20. package/lib/hooks/useConstantReducers/index.js +12 -0
  21. package/lib/hooks/useContextualItem/index.js +6 -4
  22. package/lib/hooks/useDepsKey/index.js +3 -3
  23. package/lib/hooks/useEntity/index.js +15 -4
  24. package/lib/hooks/useRuntimeEntity/index.js +6 -5
  25. package/lib/hooks/useUseCase/index.js +19 -11
  26. package/lib/hooks/useUseCase/index.test.js +152 -72
  27. package/lib/usecases/valueUseCase/index.js +71 -23
  28. package/package.json +1 -1
  29. package/es/hooks/useEntityReducers/index.d.ts +0 -4
  30. package/es/hooks/useEntityReducers/index.js +0 -18
  31. package/es/hooks/useReducers/index.d.ts +0 -4
  32. package/es/hooks/useReducers/index.js +0 -13
  33. package/es/methods/initEntityReducers/index.d.ts +0 -5
  34. package/es/methods/initEntityReducers/index.js +0 -11
  35. package/lib/hooks/useEntityReducers/index.js +0 -30
  36. package/lib/hooks/useReducers/index.js +0 -20
  37. package/lib/methods/initEntityReducers/index.js +0 -24
@@ -1,9 +1,12 @@
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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _useConstantEntityReducers = require("../useConstantEntityReducers");
7
10
  var _useContextualItem = require("../useContextualItem");
8
11
  var _useRuntimeEntity = require("../useRuntimeEntity");
9
12
  var _usecases = require("@mic-rexjs/usecases");
@@ -11,26 +14,34 @@ var _ahooks = require("ahooks");
11
14
  var _react = require("react");
12
15
  var _Statuses = require("../../enums/Statuses");
13
16
  var _triggerWatchers = require("../../methods/triggerWatchers");
14
- var useEntity = exports.useEntity = function useEntity(statuses, entityArg, contextStore, options, depsKey) {
17
+ var _valueUseCase = require("../../usecases/valueUseCase");
18
+ var useEntity = exports.useEntity = function useEntity(statuses, entityArg, contextStore, options, deps) {
15
19
  var update = (0, _ahooks.useUpdate)();
16
20
  var storeRef = (0, _react.useRef)(null);
17
21
  var optionsRef = (0, _ahooks.useLatest)(options);
18
22
  var contextEntity = contextStore ? contextStore.value : null;
19
23
  var entityEnabled = (statuses & _Statuses.Statuses.EntityEnabled) === _Statuses.Statuses.EntityEnabled;
20
24
  var entityRootEnabled = (statuses & _Statuses.Statuses.EntityRootEnabled) === _Statuses.Statuses.EntityRootEnabled;
25
+ var _useConstantEntityRed = (0, _useConstantEntityReducers.useConstantEntityReducers)(deps, _valueUseCase.valueUseCase),
26
+ recordValueDiff = _useConstantEntityRed.recordValueDiff;
21
27
  var store = (0, _useContextualItem.useContextualItem)(contextStore, statuses, function () {
22
28
  var newStore;
23
29
  if (entityRootEnabled) {
24
- var _storeRef$current;
25
30
  var isFunction = typeof entityArg === 'function';
26
- var initailEntity = isFunction ? entityArg((_storeRef$current = storeRef.current) === null || _storeRef$current === void 0 ? void 0 : _storeRef$current.value) : entityArg;
31
+ var current = storeRef.current;
32
+ var _ref = current || {},
33
+ value = _ref.value;
34
+ var _recordValueDiff = recordValueDiff(deps),
35
+ _recordValueDiff2 = (0, _slicedToArray2["default"])(_recordValueDiff, 2),
36
+ depsDiff = _recordValueDiff2[1];
37
+ var initailEntity = isFunction ? entityArg(value, depsDiff) : entityArg;
27
38
  newStore = new _usecases.EntityStore(initailEntity);
28
39
  } else {
29
40
  newStore = new _usecases.EntityStore(null);
30
41
  }
31
42
  storeRef.current = newStore;
32
43
  return newStore;
33
- }, depsKey);
44
+ }, deps);
34
45
  var runtimeEntity = (0, _useRuntimeEntity.useRuntimeEntity)(store, entityArg, contextEntity, statuses);
35
46
  var onEntityChange = (0, _ahooks.useMemoizedFn)(function (newEntity, oldEntity) {
36
47
  var _optionsRef$current = optionsRef.current,
@@ -4,23 +4,24 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useRuntimeEntity = void 0;
7
- var _useEntityReducers2 = require("../useEntityReducers");
7
+ var _useConstantEntityReducers = require("../useConstantEntityReducers");
8
8
  var _Statuses = require("../../enums/Statuses");
9
9
  var _valueUseCase = require("../../usecases/valueUseCase");
10
10
  var useRuntimeEntity = exports.useRuntimeEntity = function useRuntimeEntity(store, entityArg, contextEntity, statuses) {
11
- var _useEntityReducers = (0, _useEntityReducers2.useEntityReducers)(entityArg, _valueUseCase.valueUseCase),
12
- isValueChanged = _useEntityReducers.isValueChanged,
13
- recordValue = _useEntityReducers.recordValue;
11
+ var _useConstantEntityRed = (0, _useConstantEntityReducers.useConstantEntityReducers)(entityArg, _valueUseCase.valueUseCase),
12
+ isValueChanged = _useConstantEntityRed.isValueChanged,
13
+ recordValue = _useConstantEntityRed.recordValue;
14
14
  var changed = isValueChanged(entityArg);
15
15
  var entityRootDisabled = (statuses & _Statuses.Statuses.EntityRootEnabled) !== _Statuses.Statuses.EntityRootEnabled;
16
16
  if (entityRootDisabled) {
17
17
  return contextEntity;
18
18
  }
19
19
  var isFunction = typeof entityArg === 'function';
20
+ var value = store.value;
20
21
  switch (true) {
21
22
  case isFunction:
22
23
  case !changed:
23
- return store.value;
24
+ return value;
24
25
  }
25
26
  recordValue(entityArg);
26
27
  return entityArg;
@@ -5,26 +5,27 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.useUseCase = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
8
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
11
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
- var _initEntityReducers = require("../../methods/initEntityReducers");
13
13
  var _useArgumentTypes = require("../useArgumentTypes");
14
14
  var _useConstantFn = require("../useConstantFn");
15
+ var _useConstantReducers2 = require("../useConstantReducers");
15
16
  var _useContext = require("../useContext");
16
17
  var _useContextualItem = require("../useContextualItem");
17
- var _useDepsKey = require("../useDepsKey");
18
18
  var _useEntity3 = require("../useEntity");
19
19
  var _useFullArguments = require("../useFullArguments");
20
20
  var _useIsRenderingRef = require("../useIsRenderingRef");
21
21
  var _useProvider = require("../useProvider");
22
- var _useReducers2 = require("../useReducers");
23
22
  var _useStatuses = require("../useStatuses");
23
+ var _usecases = require("@mic-rexjs/usecases");
24
24
  var _ahooks = require("ahooks");
25
25
  var _react = require("react");
26
26
  var _Statuses = require("../../enums/Statuses");
27
27
  var _methodUseCase = require("../../usecases/methodUseCase");
28
+ var _excluded = ["watch", "onChange", "options"];
28
29
  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; }
29
30
  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; }
30
31
  var useUseCase = exports.useUseCase = function useUseCase() {
@@ -47,20 +48,19 @@ var useUseCase = exports.useUseCase = function useUseCase() {
47
48
  var entityContextValue = contextValue;
48
49
  var statuses = (0, _useStatuses.useStatuses)(argumentTypes, contextValue);
49
50
  var optionsRef = (0, _ahooks.useLatest)(options);
50
- var depsKey = (0, _useDepsKey.useDepsKey)(deps);
51
51
  var _ref = contextValue || {},
52
52
  _ref$reducers = _ref.reducers,
53
53
  contextReducers = _ref$reducers === void 0 ? null : _ref$reducers;
54
54
  var _ref2 = entityContextValue || {},
55
55
  _ref2$store = _ref2.store,
56
56
  contextStore = _ref2$store === void 0 ? null : _ref2$store;
57
- var _useEntity = (0, _useEntity3.useEntity)(statuses, unsafeEntity, contextStore, options, depsKey),
57
+ var _useEntity = (0, _useEntity3.useEntity)(statuses, unsafeEntity, contextStore, options, deps),
58
58
  _useEntity2 = (0, _slicedToArray2["default"])(_useEntity, 2),
59
59
  entity = _useEntity2[0],
60
60
  store = _useEntity2[1];
61
- var _useReducers = (0, _useReducers2.useReducers)(_methodUseCase.methodUseCase),
62
- cacheCalls = _useReducers.cacheCalls,
63
- captureCalls = _useReducers.captureCalls;
61
+ var _useConstantReducers = (0, _useConstantReducers2.useConstantReducers)(_methodUseCase.methodUseCase),
62
+ cacheCalls = _useConstantReducers.cacheCalls,
63
+ captureCalls = _useConstantReducers.captureCalls;
64
64
  var reducers = (0, _useContextualItem.useContextualItem)(contextReducers, statuses, function () {
65
65
  var opts = captureCalls(options, function (key, callArgs) {
66
66
  var _optionsRef$current$k, _optionsRef$current;
@@ -70,8 +70,16 @@ var useUseCase = exports.useUseCase = function useUseCase() {
70
70
  return usecase(opts);
71
71
  }
72
72
  var hookOptions = opts;
73
- return (0, _initEntityReducers.initEntityReducers)(entityUseCase, store, hookOptions);
74
- }, depsKey);
73
+ var watch = hookOptions.watch,
74
+ onChange = hookOptions.onChange,
75
+ usecaseOptions = hookOptions.options,
76
+ restUseCaseOptions = (0, _objectWithoutProperties2["default"])(hookOptions, _excluded);
77
+ return (0, _usecases.createEntityReducers)(store, entityUseCase, _objectSpread(_objectSpread(_objectSpread({}, restUseCaseOptions), usecaseOptions), {}, {
78
+ onGenerate: function onGenerate(newEntity, result) {
79
+ return result;
80
+ }
81
+ }));
82
+ }, deps);
75
83
  var Provider = (0, _useProvider.useProvider)(statuses, context, store, reducers);
76
84
  return (0, _ahooks.useCreation)(function () {
77
85
  if ((statuses & _Statuses.Statuses.EntityEnabled) !== _Statuses.Statuses.EntityEnabled) {