@mic-rexjs/usecases-react 2.1.4 → 2.2.1

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 (47) 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 +3 -1
  5. package/es/configs/defaultUseCaseContext/types.d.ts +7 -5
  6. package/es/configs/useCaseContextReferenceMap/types.d.ts +2 -2
  7. package/es/hooks/useArgumentTypes/index.js +2 -5
  8. package/es/hooks/useContextualItem/index.d.ts +1 -1
  9. package/es/hooks/useContextualItem/index.js +1 -1
  10. package/es/hooks/useEntity/index.js +1 -1
  11. package/es/hooks/useGlobalUseCase/index.js +2 -2
  12. package/es/hooks/useGlobalUseCase/index.test.js +23 -7
  13. package/es/hooks/useGlobalUseCase/types.d.ts +2 -4
  14. package/es/hooks/useProvider/index.d.ts +2 -2
  15. package/es/hooks/useProvider/index.js +2 -1
  16. package/es/hooks/useUseCase/index.js +10 -12
  17. package/es/hooks/useUseCase/index.test.js +68 -105
  18. package/es/hooks/useUseCase/types.d.ts +19 -45
  19. package/es/hooks/useUseCaseContext/index.d.ts +2 -3
  20. package/es/hooks/useUseCaseContext/index.js +3 -8
  21. package/es/hooks/useUseCaseContext/index.test.js +2 -30
  22. package/es/hooks/useUseCaseStatuses/index.d.ts +2 -2
  23. package/es/hooks/useUseCaseStatuses/index.js +3 -3
  24. package/es/index.d.ts +1 -1
  25. package/es/methods/fillArguments/index.d.ts +2 -2
  26. package/es/methods/fillArguments/index.js +0 -9
  27. package/es/methods/fillArguments/types.d.ts +3 -3
  28. package/es/methods/initEntityReducers/index.d.ts +2 -2
  29. package/lib/hooks/useArgumentTypes/index.js +2 -5
  30. package/lib/hooks/useContextualItem/index.js +1 -1
  31. package/lib/hooks/useEntity/index.js +1 -1
  32. package/lib/hooks/useGlobalUseCase/index.js +2 -2
  33. package/lib/hooks/useGlobalUseCase/index.test.js +18 -7
  34. package/lib/hooks/useProvider/index.js +4 -2
  35. package/lib/hooks/useUseCase/index.js +12 -12
  36. package/lib/hooks/useUseCase/index.test.js +147 -182
  37. package/lib/hooks/useUseCaseContext/index.js +2 -8
  38. package/lib/hooks/useUseCaseContext/index.test.js +8 -36
  39. package/lib/hooks/useUseCaseStatuses/index.js +3 -3
  40. package/lib/methods/fillArguments/index.js +0 -3
  41. package/package.json +3 -3
  42. package/es/enums/UseCaseModeErrors/index.d.ts +0 -4
  43. package/es/enums/UseCaseModeErrors/index.js +0 -5
  44. package/es/hooks/useSafeMode/index.d.ts +0 -3
  45. package/es/hooks/useSafeMode/index.js +0 -18
  46. package/lib/enums/UseCaseModeErrors/index.js +0 -11
  47. package/lib/hooks/useSafeMode/index.js +0 -24
@@ -17,7 +17,6 @@ var _ = require(".");
17
17
  var _ahooks = require("ahooks");
18
18
  var _react2 = require("react");
19
19
  var _UseCaseModes = require("../../enums/UseCaseModes");
20
- var _UseCaseModeErrors = require("../../enums/UseCaseModeErrors");
21
20
  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; }
22
21
  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; }
23
22
  function _asyncIterator(r) { var n, t, o, e = 2; for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) { if (t && null != (n = r[t])) return n.call(r); if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r)); t = "@@asyncIterator", o = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
@@ -246,12 +245,13 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
246
245
  });
247
246
  (0, _globals.describe)('useUseCase', function () {
248
247
  (0, _globals.describe)('`useUseCase` should work the same as `useRootCoreCollection`', function () {
249
- (0, _globals.test)('check `context.length`', function () {
248
+ (0, _globals.test)('check context type', function () {
250
249
  var _renderHook = (0, _react.renderHook)(function () {
251
250
  return (0, _.useUseCase)(defaultFile, fileUseCase);
252
251
  }),
253
252
  result = _renderHook.result;
254
253
  var cores = result.current;
254
+ (0, _globals.expect)(Array.isArray(cores)).toBe(true);
255
255
  (0, _globals.expect)(cores).toHaveLength(3);
256
256
  });
257
257
  (0, _globals.test)('`entity` should equal `defaultFile`', function () {
@@ -584,81 +584,17 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
584
584
  _react.fireEvent.click(_react.screen.getByText(updateButtonText));
585
585
  (0, _globals.expect)(addReducer).toHaveBeenCalledTimes(3);
586
586
  });
587
- _globals.test.each([{
588
- mode: _UseCaseModes.UseCaseModes.Normal,
589
- toThrow: ''
590
- }, {
591
- mode: _UseCaseModes.UseCaseModes.Global,
592
- toThrow: _UseCaseModeErrors.UseCaseModeErrors.UnsupportedGlobal
593
- }, {
594
- mode: _UseCaseModes.UseCaseModes.Stateless,
595
- toThrow: ''
596
- }])('does not support global mode', function (_ref7) {
597
- var mode = _ref7.mode,
598
- toThrow = _ref7.toThrow;
599
- (0, _react.renderHook)(function () {
600
- (0, _globals.expect)(function () {
601
- (0, _.useUseCase)(defaultFile, fileUseCase, mode);
602
- // 如果上面测试成功,则手动 throw '',保证与 toThrow 的值一致
603
- throw '';
604
- }).toThrow(toThrow);
605
- });
606
- });
607
- (0, _globals.test)('stateless mode should not generate new reducers when `yeild entity`', function () {
608
- var onUpdate = _globals.jest.fn();
609
- var _renderHook12 = (0, _react.renderHook)(function () {
610
- var file = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultFile;
611
- (0, _ahooks.useUpdateEffect)(function () {
612
- onUpdate();
613
- });
614
- return (0, _.useUseCase)(file, fileUseCase, _UseCaseModes.UseCaseModes.Stateless);
615
- }),
616
- result = _renderHook12.result,
617
- rerender = _renderHook12.rerender;
618
- var cores = result.current;
619
- var _cores10 = (0, _slicedToArray2["default"])(cores, 2),
620
- setPath = _cores10[1].setPath;
621
- setPath(PATH_1);
622
- (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
623
- (0, _globals.expect)(result.current[0].path).toBe('');
624
- (0, _globals.expect)(result.current[1].setPath).toBe(setPath);
625
- rerender(_objectSpread(_objectSpread({}, defaultFile), {}, {
626
- path: PATH_1
627
- }));
628
- (0, _globals.expect)(result.current[0].path).toBe(PATH_1);
629
- (0, _globals.expect)(result.current[1].setPath).not.toBe(setPath);
630
- });
631
- (0, _globals.test)('stateless mode should not trigger update when after `yield entity`', function () {
632
- var onUpdate = _globals.jest.fn();
633
- var _renderHook13 = (0, _react.renderHook)(function () {
634
- (0, _ahooks.useUpdateEffect)(function () {
635
- onUpdate();
636
- });
637
- return (0, _.useUseCase)(defaultFile, fileUseCase, _UseCaseModes.UseCaseModes.Stateless);
638
- }),
639
- result = _renderHook13.result;
640
- var cores = result.current;
641
- var _cores11 = (0, _slicedToArray2["default"])(cores, 2),
642
- reducers = _cores11[1];
643
- var setPath = reducers.setPath;
644
- (0, _react.act)(function () {
645
- setPath(PATH_1);
646
- });
647
- (0, _globals.expect)(result.current).toBe(cores);
648
- (0, _globals.expect)(result.current).toEqual(cores);
649
- (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
650
- });
651
587
  (0, _globals.test)('`options.onChange` should be trigger when entity has changed', function () {
652
588
  var onChange = _globals.jest.fn();
653
- var _renderHook14 = (0, _react.renderHook)(function () {
589
+ var _renderHook12 = (0, _react.renderHook)(function () {
654
590
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
655
591
  onChange: onChange
656
592
  });
657
593
  }),
658
- result = _renderHook14.result;
594
+ result = _renderHook12.result;
659
595
  var cores = result.current;
660
- var _cores12 = (0, _slicedToArray2["default"])(cores, 2),
661
- reducers = _cores12[1];
596
+ var _cores10 = (0, _slicedToArray2["default"])(cores, 2),
597
+ reducers = _cores10[1];
662
598
  var setPath = reducers.setPath;
663
599
  (0, _globals.expect)(onChange).toHaveBeenCalledTimes(0);
664
600
  (0, _react.act)(function () {
@@ -671,7 +607,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
671
607
  }), defaultFile);
672
608
  });
673
609
  (0, _globals.test)('`options.options` should override rest options', function () {
674
- var _renderHook15 = (0, _react.renderHook)(function () {
610
+ var _renderHook13 = (0, _react.renderHook)(function () {
675
611
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
676
612
  pathPrefix: 'xyz/',
677
613
  options: {
@@ -679,11 +615,11 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
679
615
  }
680
616
  });
681
617
  }),
682
- result = _renderHook15.result;
618
+ result = _renderHook13.result;
683
619
  var cores = result.current;
684
- var _cores13 = (0, _slicedToArray2["default"])(cores, 2),
685
- path = _cores13[0].path,
686
- reducers = _cores13[1];
620
+ var _cores11 = (0, _slicedToArray2["default"])(cores, 2),
621
+ path = _cores11[0].path,
622
+ reducers = _cores11[1];
687
623
  var setPath = reducers.setPath;
688
624
  (0, _globals.expect)(path).toBe('');
689
625
  (0, _react.act)(function () {
@@ -694,7 +630,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
694
630
  (0, _globals.test)('when `options` has changed, it should not trigger update', function () {
695
631
  var onUpdate = _globals.jest.fn();
696
632
  var onDeepUpdate = _globals.jest.fn();
697
- var _renderHook16 = (0, _react.renderHook)(function () {
633
+ var _renderHook14 = (0, _react.renderHook)(function () {
698
634
  var _useState = (0, _react2.useState)('user/'),
699
635
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
700
636
  pathPrefix = _useState2[0],
@@ -710,7 +646,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
710
646
  }, [context]);
711
647
  return setPathPrefix;
712
648
  }),
713
- result = _renderHook16.result;
649
+ result = _renderHook14.result;
714
650
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
715
651
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
716
652
  (0, _react.act)(function () {
@@ -722,7 +658,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
722
658
  (0, _globals.test)('when `entity` change, it should trigger watchers', function () {
723
659
  var onPathChange = _globals.jest.fn();
724
660
  var onSizeChange = _globals.jest.fn();
725
- var _renderHook17 = (0, _react.renderHook)(function () {
661
+ var _renderHook15 = (0, _react.renderHook)(function () {
726
662
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
727
663
  watch: {
728
664
  path: onPathChange,
@@ -730,10 +666,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
730
666
  }
731
667
  });
732
668
  }),
733
- result = _renderHook17.result;
669
+ result = _renderHook15.result;
734
670
  var cores = result.current;
735
- var _cores14 = (0, _slicedToArray2["default"])(cores, 2),
736
- setPath = _cores14[1].setPath;
671
+ var _cores12 = (0, _slicedToArray2["default"])(cores, 2),
672
+ setPath = _cores12[1].setPath;
737
673
  (0, _globals.expect)(onPathChange).toHaveBeenCalledTimes(0);
738
674
  (0, _react.act)(function () {
739
675
  setPath(PATH_1);
@@ -755,19 +691,19 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
755
691
  var onPathChange1 = _globals.jest.fn();
756
692
  var onPathChange2 = _globals.jest.fn();
757
693
  var onPathChange = onPathChange1;
758
- var _renderHook18 = (0, _react.renderHook)(function () {
694
+ var _renderHook16 = (0, _react.renderHook)(function () {
759
695
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
760
696
  watch: {
761
697
  path: onPathChange
762
698
  }
763
699
  });
764
700
  }),
765
- result = _renderHook18.result;
701
+ result = _renderHook16.result;
766
702
  var cores = result.current;
767
- var _cores15 = (0, _slicedToArray2["default"])(cores, 2),
768
- _cores15$ = _cores15[1],
769
- setPath = _cores15$.setPath,
770
- setEntity = _cores15$.setEntity;
703
+ var _cores13 = (0, _slicedToArray2["default"])(cores, 2),
704
+ _cores13$ = _cores13[1],
705
+ setPath = _cores13$.setPath,
706
+ setEntity = _cores13$.setEntity;
771
707
  onPathChange = onPathChange2;
772
708
  (0, _globals.expect)(onPathChange1).toHaveBeenCalledTimes(0);
773
709
  (0, _react.act)(function () {
@@ -808,7 +744,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
808
744
  (0, _globals.test)('when `deps` has changed, it should trigger update', function () {
809
745
  var onUpdate = _globals.jest.fn();
810
746
  var onDeepUpdate = _globals.jest.fn();
811
- var _renderHook19 = (0, _react.renderHook)(function () {
747
+ var _renderHook17 = (0, _react.renderHook)(function () {
812
748
  var _useState3 = (0, _react2.useState)('user/'),
813
749
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
814
750
  pathPrefix = _useState4[0],
@@ -824,7 +760,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
824
760
  }, [context]);
825
761
  return setPathPrefix;
826
762
  }),
827
- result = _renderHook19.result;
763
+ result = _renderHook17.result;
828
764
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
829
765
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
830
766
  (0, _react.act)(function () {
@@ -836,7 +772,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
836
772
  (0, _globals.test)('empty `deps` should not trigger update', function () {
837
773
  var onUpdate = _globals.jest.fn();
838
774
  var onDeepUpdate = _globals.jest.fn();
839
- var _renderHook20 = (0, _react.renderHook)(function () {
775
+ var _renderHook18 = (0, _react.renderHook)(function () {
840
776
  var _useState5 = (0, _react2.useState)('user/'),
841
777
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
842
778
  pathPrefix = _useState6[0],
@@ -852,7 +788,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
852
788
  }, [context]);
853
789
  return setPathPrefix;
854
790
  }),
855
- result = _renderHook20.result;
791
+ result = _renderHook18.result;
856
792
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
857
793
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
858
794
  (0, _react.act)(function () {
@@ -943,8 +879,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
943
879
  var onChangeB = _globals.jest.fn(updateChangeTimes);
944
880
  var onChangeC = _globals.jest.fn(updateChangeTimes);
945
881
  var buttonText = 'my button';
946
- var A = function A(_ref8) {
947
- var children = _ref8.children;
882
+ var A = function A(_ref7) {
883
+ var children = _ref7.children;
948
884
  (0, _.useUseCase)(fileUseCase, {
949
885
  watch: {
950
886
  ext: onChangeA
@@ -993,7 +929,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
993
929
  (0, _globals.test)('`options.watch` should work with array field path of array', function () {
994
930
  var onExtChange = _globals.jest.fn();
995
931
  var onSizeChange = _globals.jest.fn();
996
- var _renderHook21 = (0, _react.renderHook)(function () {
932
+ var _renderHook19 = (0, _react.renderHook)(function () {
997
933
  return (0, _.useUseCase)({}, fieldPathUseCase, {
998
934
  watch: {
999
935
  'list.ext': onExtChange,
@@ -1001,10 +937,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1001
937
  }
1002
938
  });
1003
939
  }),
1004
- result = _renderHook21.result;
940
+ result = _renderHook19.result;
1005
941
  var cores = result.current;
1006
- var _cores16 = (0, _slicedToArray2["default"])(cores, 2),
1007
- setEntity = _cores16[1].setEntity;
942
+ var _cores14 = (0, _slicedToArray2["default"])(cores, 2),
943
+ setEntity = _cores14[1].setEntity;
1008
944
  (0, _react.act)(function () {
1009
945
  setEntity({
1010
946
  list: [defaultFile]
@@ -1289,7 +1225,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1289
1225
  var lengthUseCase = function lengthUseCase() {
1290
1226
  return (0, _usecases.entityUseCase)();
1291
1227
  };
1292
- var _renderHook22 = (0, _react.renderHook)(function () {
1228
+ var _renderHook20 = (0, _react.renderHook)(function () {
1293
1229
  return (0, _.useUseCase)([], lengthUseCase, {
1294
1230
  watch: {
1295
1231
  length: onEntityLengthChange,
@@ -1297,10 +1233,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1297
1233
  }
1298
1234
  });
1299
1235
  }),
1300
- result = _renderHook22.result;
1236
+ result = _renderHook20.result;
1301
1237
  var cores = result.current;
1302
- var _cores17 = (0, _slicedToArray2["default"])(cores, 2),
1303
- setEntity = _cores17[1].setEntity;
1238
+ var _cores15 = (0, _slicedToArray2["default"])(cores, 2),
1239
+ setEntity = _cores15[1].setEntity;
1304
1240
  (0, _globals.expect)(onEntityLengthChange).toHaveBeenCalledTimes(0);
1305
1241
  (0, _globals.expect)(onListLengthChange).toHaveBeenCalledTimes(0);
1306
1242
  (0, _react.act)(function () {
@@ -1331,17 +1267,17 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1331
1267
  });
1332
1268
  (0, _globals.test)('`options.watch` should work with field path of nested array', function () {
1333
1269
  var onChange = _globals.jest.fn();
1334
- var _renderHook23 = (0, _react.renderHook)(function () {
1270
+ var _renderHook21 = (0, _react.renderHook)(function () {
1335
1271
  return (0, _.useUseCase)({}, fieldPathUseCase, {
1336
1272
  watch: {
1337
1273
  'nestedList.size': onChange
1338
1274
  }
1339
1275
  });
1340
1276
  }),
1341
- result = _renderHook23.result;
1277
+ result = _renderHook21.result;
1342
1278
  var cores = result.current;
1343
- var _cores18 = (0, _slicedToArray2["default"])(cores, 2),
1344
- setEntity = _cores18[1].setEntity;
1279
+ var _cores16 = (0, _slicedToArray2["default"])(cores, 2),
1280
+ setEntity = _cores16[1].setEntity;
1345
1281
  (0, _globals.expect)(onChange).toHaveBeenCalledTimes(0);
1346
1282
  (0, _react.act)(function () {
1347
1283
  setEntity({
@@ -1425,7 +1361,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1425
1361
  (0, _globals.test)('`options.watch` should work with field path of object', function () {
1426
1362
  var onExtChange = _globals.jest.fn();
1427
1363
  var onSizeChange = _globals.jest.fn();
1428
- var _renderHook24 = (0, _react.renderHook)(function () {
1364
+ var _renderHook22 = (0, _react.renderHook)(function () {
1429
1365
  return (0, _.useUseCase)({}, fieldPathUseCase, {
1430
1366
  watch: {
1431
1367
  'obj.file.ext': onExtChange,
@@ -1433,10 +1369,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1433
1369
  }
1434
1370
  });
1435
1371
  }),
1436
- result = _renderHook24.result;
1372
+ result = _renderHook22.result;
1437
1373
  var cores = result.current;
1438
- var _cores19 = (0, _slicedToArray2["default"])(cores, 2),
1439
- setEntity = _cores19[1].setEntity;
1374
+ var _cores17 = (0, _slicedToArray2["default"])(cores, 2),
1375
+ setEntity = _cores17[1].setEntity;
1440
1376
  (0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(0);
1441
1377
  (0, _react.act)(function () {
1442
1378
  setEntity({
@@ -1534,6 +1470,61 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1534
1470
  (0, _globals.expect)(onBooleanMount).toHaveBeenCalledWith(true);
1535
1471
  });
1536
1472
  });
1473
+ (0, _globals.describe)('`useUseCase` should work the same as `ModeCoreCollectionHook`', function () {
1474
+ _globals.test.each([_UseCaseModes.UseCaseModes.Normal, _UseCaseModes.UseCaseModes.Global, _UseCaseModes.UseCaseModes.Stateless, _UseCaseModes.UseCaseModes.StatelessGlobal])('check context type', function (mode) {
1475
+ var _renderHook23 = (0, _react.renderHook)(function () {
1476
+ return (0, _.useUseCase)(defaultFile, fileUseCase, mode);
1477
+ }),
1478
+ result = _renderHook23.result;
1479
+ var cores = result.current;
1480
+ (0, _globals.expect)(Array.isArray(cores)).toBe(true);
1481
+ (0, _globals.expect)(cores).toHaveLength(3);
1482
+ });
1483
+ (0, _globals.test)('stateless mode should not generate new reducers when `yeild entity`', function () {
1484
+ var onUpdate = _globals.jest.fn();
1485
+ var _renderHook24 = (0, _react.renderHook)(function () {
1486
+ var file = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultFile;
1487
+ (0, _ahooks.useUpdateEffect)(function () {
1488
+ onUpdate();
1489
+ });
1490
+ return (0, _.useUseCase)(file, fileUseCase, _UseCaseModes.UseCaseModes.Stateless);
1491
+ }),
1492
+ result = _renderHook24.result,
1493
+ rerender = _renderHook24.rerender;
1494
+ var cores = result.current;
1495
+ var _cores18 = (0, _slicedToArray2["default"])(cores, 2),
1496
+ setPath = _cores18[1].setPath;
1497
+ setPath(PATH_1);
1498
+ (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
1499
+ (0, _globals.expect)(result.current[0].path).toBe('');
1500
+ (0, _globals.expect)(result.current[1].setPath).toBe(setPath);
1501
+ rerender(_objectSpread(_objectSpread({}, defaultFile), {}, {
1502
+ path: PATH_1
1503
+ }));
1504
+ (0, _globals.expect)(result.current[0].path).toBe(PATH_1);
1505
+ (0, _globals.expect)(result.current[1].setPath).not.toBe(setPath);
1506
+ });
1507
+ (0, _globals.test)('stateless mode should not trigger update when after `yield entity`', function () {
1508
+ var onUpdate = _globals.jest.fn();
1509
+ var _renderHook25 = (0, _react.renderHook)(function () {
1510
+ (0, _ahooks.useUpdateEffect)(function () {
1511
+ onUpdate();
1512
+ });
1513
+ return (0, _.useUseCase)(defaultFile, fileUseCase, _UseCaseModes.UseCaseModes.Stateless);
1514
+ }),
1515
+ result = _renderHook25.result;
1516
+ var cores = result.current;
1517
+ var _cores19 = (0, _slicedToArray2["default"])(cores, 2),
1518
+ reducers = _cores19[1];
1519
+ var setPath = reducers.setPath;
1520
+ (0, _react.act)(function () {
1521
+ setPath(PATH_1);
1522
+ });
1523
+ (0, _globals.expect)(result.current).toBe(cores);
1524
+ (0, _globals.expect)(result.current).toEqual(cores);
1525
+ (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
1526
+ });
1527
+ });
1537
1528
  (0, _globals.describe)('`useUseCase` should work the same as useContextualCoreCollection', function () {
1538
1529
  _globals.test.each([void 0, _UseCaseModes.UseCaseModes.Normal])('[mode=%s]: normal mode should trigger Parent & Child to update', function (mode) {
1539
1530
  var onParentUpdate = _globals.jest.fn();
@@ -1818,8 +1809,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1818
1809
  var onChangeB = _globals.jest.fn(updateChangeTimes);
1819
1810
  var onChangeC = _globals.jest.fn(updateChangeTimes);
1820
1811
  var buttonText = 'my button';
1821
- var A = function A(_ref9) {
1822
- var children = _ref9.children;
1812
+ var A = function A(_ref8) {
1813
+ var children = _ref8.children;
1823
1814
  (0, _.useUseCase)(fileUseCase, {
1824
1815
  onChange: onChangeA
1825
1816
  });
@@ -1860,90 +1851,64 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1860
1851
  (0, _globals.expect)(onChangeC).toHaveReturnedWith(3);
1861
1852
  });
1862
1853
  });
1863
- (0, _globals.describe)('`useUseCase` should work the same as `usePseudoCoreCollection`', function () {
1864
- (0, _globals.test)('the return value should be `PseudoCoreCollection`', function () {
1865
- var _renderHook25 = (0, _react.renderHook)(function () {
1866
- return (0, _.useUseCase)(mathUseCase, _UseCaseModes.UseCaseModes.Global);
1854
+ (0, _globals.describe)('`useUseCase` should work the same as `ContextualReducersHook`', function () {
1855
+ (0, _globals.test)('the return value should be `ContextualEntityReducers`', function () {
1856
+ var _renderHook26 = (0, _react.renderHook)(function () {
1857
+ return (0, _.useUseCase)(_objectSpread(_objectSpread({}, defaultFile), {}, {
1858
+ path: PATH_2,
1859
+ ext: EXT_1
1860
+ }), fileUseCase, _UseCaseModes.UseCaseModes.Global);
1867
1861
  }),
1868
- result = _renderHook25.result;
1869
- var current = result.current;
1870
- (0, _globals.expect)(current).toEqual([_globals.expect.any(Object), _globals.expect.any(Function)]);
1871
- });
1872
- _globals.test.each([{
1873
- mode: _UseCaseModes.UseCaseModes.Normal,
1874
- toThrow: ''
1875
- }, {
1876
- mode: _UseCaseModes.UseCaseModes.Global,
1877
- toThrow: ''
1878
- }, {
1879
- mode: _UseCaseModes.UseCaseModes.Stateless,
1880
- toThrow: _UseCaseModeErrors.UseCaseModeErrors.UnsupportedStateless
1881
- }])('does not support stateless mode', function (_ref10) {
1882
- var mode = _ref10.mode,
1883
- toThrow = _ref10.toThrow;
1884
- (0, _react.renderHook)(function () {
1885
- (0, _globals.expect)(function () {
1886
- (0, _.useUseCase)(mathUseCase, mode);
1887
- // 如果上面测试成功,则手动 throw '',保证与 toThrow 的值一致
1888
- throw '';
1889
- }).toThrow(toThrow);
1890
- });
1891
- });
1892
- (0, _globals.test)('the return value should be `reducers` object at child component', function () {
1893
- var onMountA = _globals.jest.fn();
1894
- var A = function A() {
1895
- var reducers = (0, _.useUseCase)(mathUseCase);
1896
- (0, _ahooks.useMount)(function () {
1897
- onMountA(reducers);
1898
- });
1899
- return null;
1900
- };
1901
- var B = function B() {
1902
- var _useUseCase46 = (0, _.useUseCase)(mathUseCase, _UseCaseModes.UseCaseModes.Global),
1903
- _useUseCase47 = (0, _slicedToArray2["default"])(_useUseCase46, 2),
1904
- Provider = _useUseCase47[1];
1905
- return (0, _jsxRuntime.jsx)(Provider, {
1906
- children: (0, _jsxRuntime.jsx)(A, {})
1907
- });
1908
- };
1909
- (0, _react.render)((0, _jsxRuntime.jsx)(B, {}));
1910
- (0, _globals.expect)(onMountA).toHaveBeenCalledWith(_globals.expect.any(Object));
1862
+ rootResult = _renderHook26.result;
1863
+ var _rootResult$current = (0, _slicedToArray2["default"])(rootResult.current, 3),
1864
+ Provider = _rootResult$current[2];
1865
+ var _renderHook27 = (0, _react.renderHook)(function () {
1866
+ return (0, _.useUseCase)(fileUseCase);
1867
+ }, {
1868
+ wrapper: Provider
1869
+ }),
1870
+ contextualResult = _renderHook27.result;
1871
+ var current = contextualResult.current;
1872
+ (0, _globals.expect)(Array.isArray(current)).toBe(false);
1873
+ (0, _globals.expect)((0, _typeof2["default"])(current)).toBe('object');
1874
+ var isImage = current.isImage;
1875
+ (0, _globals.expect)(isImage()).toBe(true);
1911
1876
  });
1912
1877
  });
1913
1878
  (0, _globals.describe)('`useUseCase` should work the same as `useReducers`', function () {
1914
1879
  (0, _globals.test)('`entity` should equal `defaultFile`', function () {
1915
- var _renderHook26 = (0, _react.renderHook)(function () {
1880
+ var _renderHook28 = (0, _react.renderHook)(function () {
1916
1881
  return (0, _.useUseCase)(mathUseCase);
1917
1882
  }),
1918
- result = _renderHook26.result;
1883
+ result = _renderHook28.result;
1919
1884
  var reducers = result.current;
1920
1885
  (0, _globals.expect)(Array.isArray(reducers)).toBe(false);
1921
1886
  });
1922
1887
  (0, _globals.test)('returned reducer should work', function () {
1923
- var _renderHook27 = (0, _react.renderHook)(function () {
1888
+ var _renderHook29 = (0, _react.renderHook)(function () {
1924
1889
  return (0, _.useUseCase)(mathUseCase);
1925
1890
  }),
1926
- result = _renderHook27.result;
1891
+ result = _renderHook29.result;
1927
1892
  var reducers = result.current;
1928
1893
  var add = reducers.add;
1929
1894
  (0, _globals.expect)(add(1, 2)).toBe(3);
1930
1895
  });
1931
1896
  (0, _globals.test)('`usecase` should be called only once if deps has not provided', function () {
1932
1897
  var mockUseCase = _globals.jest.fn(mathUseCase);
1933
- var _renderHook28 = (0, _react.renderHook)(function () {
1898
+ var _renderHook30 = (0, _react.renderHook)(function () {
1934
1899
  return (0, _.useUseCase)(mockUseCase);
1935
1900
  }),
1936
- rerender = _renderHook28.rerender;
1901
+ rerender = _renderHook30.rerender;
1937
1902
  (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
1938
1903
  rerender();
1939
1904
  (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
1940
1905
  });
1941
1906
  (0, _globals.test)('`usecase` should be called only once if deps has not changed', function () {
1942
1907
  var mockUseCase = _globals.jest.fn(mathUseCase);
1943
- var _renderHook29 = (0, _react.renderHook)(function () {
1908
+ var _renderHook31 = (0, _react.renderHook)(function () {
1944
1909
  return (0, _.useUseCase)(mockUseCase, {}, [1, 'x']);
1945
1910
  }),
1946
- rerender = _renderHook29.rerender;
1911
+ rerender = _renderHook31.rerender;
1947
1912
  (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
1948
1913
  rerender();
1949
1914
  (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
@@ -1951,10 +1916,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1951
1916
  (0, _globals.test)('`usecase` should be called if deps has changed', function () {
1952
1917
  var i = 0;
1953
1918
  var mockUseCase = _globals.jest.fn(mathUseCase);
1954
- var _renderHook30 = (0, _react.renderHook)(function () {
1919
+ var _renderHook32 = (0, _react.renderHook)(function () {
1955
1920
  return (0, _.useUseCase)(mockUseCase, {}, [i++, 'x']);
1956
1921
  }),
1957
- rerender = _renderHook30.rerender;
1922
+ rerender = _renderHook32.rerender;
1958
1923
  (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
1959
1924
  rerender();
1960
1925
  (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(2);
@@ -1962,8 +1927,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1962
1927
  (0, _globals.test)('reducer call should not be cached if component is at rendering phase', function () {
1963
1928
  var buttonText = 'button';
1964
1929
  var CacheTestComponent = function CacheTestComponent() {
1965
- var _useUseCase48 = (0, _.useUseCase)(mathUseCase),
1966
- subtraction = _useUseCase48.subtraction;
1930
+ var _useUseCase46 = (0, _.useUseCase)(mathUseCase),
1931
+ subtraction = _useUseCase46.subtraction;
1967
1932
  var update = (0, _ahooks.useUpdate)();
1968
1933
  var onClick = function onClick() {
1969
1934
  update();
@@ -1986,8 +1951,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1986
1951
  (0, _globals.test)('reducer call should not be cached if component is not at rendering phase', function () {
1987
1952
  var buttonText = 'button';
1988
1953
  var CacheTestComponent = function CacheTestComponent() {
1989
- var _useUseCase49 = (0, _.useUseCase)(mathUseCase),
1990
- subtraction = _useUseCase49.subtraction;
1954
+ var _useUseCase47 = (0, _.useUseCase)(mathUseCase),
1955
+ subtraction = _useUseCase47.subtraction;
1991
1956
  var onClick = function onClick() {
1992
1957
  subtraction(5, 3);
1993
1958
  };
@@ -2015,8 +1980,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2015
1980
  var count = 0;
2016
1981
  var buttonText = 'button';
2017
1982
  var StringUseCaseTestComponent = function StringUseCaseTestComponent() {
2018
- var _useUseCase50 = (0, _.useUseCase)(mathUseCase),
2019
- subtraction = _useUseCase50.subtraction;
1983
+ var _useUseCase48 = (0, _.useUseCase)(mathUseCase),
1984
+ subtraction = _useUseCase48.subtraction;
2020
1985
  var update = (0, _ahooks.useUpdate)();
2021
1986
  subtraction(5, count++);
2022
1987
  var onUpdate = function onUpdate() {
@@ -2038,12 +2003,12 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2038
2003
  (0, _globals.expect)(subtractionReducer).toHaveReturnedWith(4);
2039
2004
  });
2040
2005
  (0, _globals.test)('`options.extraValue` should be added after call `add` method', function () {
2041
- var _renderHook31 = (0, _react.renderHook)(function () {
2006
+ var _renderHook33 = (0, _react.renderHook)(function () {
2042
2007
  return (0, _.useUseCase)(mathUseCase, {
2043
2008
  extraValue: 5
2044
2009
  });
2045
2010
  }),
2046
- result = _renderHook31.result;
2011
+ result = _renderHook33.result;
2047
2012
  var reducers = result.current;
2048
2013
  var add = reducers.add;
2049
2014
  (0, _globals.expect)(add(1, 2)).toBe(8);
@@ -2051,7 +2016,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2051
2016
  (0, _globals.test)('when `options` has changed, it should not trigger update', function () {
2052
2017
  var onUpdate = _globals.jest.fn();
2053
2018
  var onDeepUpdate = _globals.jest.fn();
2054
- var _renderHook32 = (0, _react.renderHook)(function () {
2019
+ var _renderHook34 = (0, _react.renderHook)(function () {
2055
2020
  var _useState7 = (0, _react2.useState)(0),
2056
2021
  _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
2057
2022
  extraValue = _useState8[0],
@@ -2067,7 +2032,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2067
2032
  }, [reducers]);
2068
2033
  return setExtraValue;
2069
2034
  }),
2070
- result = _renderHook32.result;
2035
+ result = _renderHook34.result;
2071
2036
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
2072
2037
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
2073
2038
  (0, _react.act)(function () {
@@ -2079,7 +2044,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2079
2044
  (0, _globals.test)('when `deps` change, it should update reducers', function () {
2080
2045
  var onUpdate = _globals.jest.fn();
2081
2046
  var onDeepUpdate = _globals.jest.fn();
2082
- var _renderHook33 = (0, _react.renderHook)(function () {
2047
+ var _renderHook35 = (0, _react.renderHook)(function () {
2083
2048
  var _useState9 = (0, _react2.useState)(0),
2084
2049
  _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
2085
2050
  extraValue = _useState10[0],
@@ -2095,7 +2060,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2095
2060
  }, [reducers]);
2096
2061
  return setExtraValue;
2097
2062
  }),
2098
- result = _renderHook33.result;
2063
+ result = _renderHook35.result;
2099
2064
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
2100
2065
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
2101
2066
  (0, _react.act)(function () {
@@ -2107,7 +2072,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2107
2072
  (0, _globals.test)('empty `deps` should not update reducers', function () {
2108
2073
  var onUpdate = _globals.jest.fn();
2109
2074
  var onDeepUpdate = _globals.jest.fn();
2110
- var _renderHook34 = (0, _react.renderHook)(function () {
2075
+ var _renderHook36 = (0, _react.renderHook)(function () {
2111
2076
  var _useState11 = (0, _react2.useState)(0),
2112
2077
  _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
2113
2078
  extraValue = _useState12[0],
@@ -2123,7 +2088,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2123
2088
  }, [reducers]);
2124
2089
  return setExtraValue;
2125
2090
  }),
2126
- result = _renderHook34.result;
2091
+ result = _renderHook36.result;
2127
2092
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
2128
2093
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
2129
2094
  (0, _react.act)(function () {
@@ -9,11 +9,9 @@ var _useCaseContextReferenceMap = require("../../configs/useCaseContextReference
9
9
  var _react = require("react");
10
10
  var _ahooks = require("ahooks");
11
11
  var _UseCaseArgumentTypes = require("../../enums/UseCaseArgumentTypes");
12
- var _UseCaseModes = require("../../enums/UseCaseModes");
13
12
  var _defaultUseCaseContext = require("../../configs/defaultUseCaseContext");
14
13
  var useUseCaseContext = exports.useUseCaseContext = function useUseCaseContext(usecase) {
15
14
  var argumentTypes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _UseCaseArgumentTypes.UseCaseArgumentTypes.None;
16
- var mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _UseCaseModes.UseCaseModes.Normal;
17
15
  var map = _useCaseContextReferenceMap.usecaseContextReferenceMap;
18
16
  var context = (0, _useConstant.useConstant)(function () {
19
17
  if (map.has(usecase)) {
@@ -26,12 +24,8 @@ var useUseCaseContext = exports.useUseCaseContext = function useUseCaseContext(u
26
24
  });
27
25
  return value;
28
26
  }
29
- switch (true) {
30
- case (mode & _UseCaseModes.UseCaseModes.Global) === _UseCaseModes.UseCaseModes.Global:
31
- case (argumentTypes & _UseCaseArgumentTypes.UseCaseArgumentTypes.Entity) === _UseCaseArgumentTypes.UseCaseArgumentTypes.Entity:
32
- break;
33
- default:
34
- return _defaultUseCaseContext.defaultUseCaseContext;
27
+ if ((argumentTypes & _UseCaseArgumentTypes.UseCaseArgumentTypes.Entity) !== _UseCaseArgumentTypes.UseCaseArgumentTypes.Entity) {
28
+ return _defaultUseCaseContext.defaultUseCaseContext;
35
29
  }
36
30
  var ctx = (0, _react.createContext)(null);
37
31
  map.set(usecase, {