@mic-rexjs/usecases-react 2.12.2 → 2.13.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 (42) hide show
  1. package/README.md +3 -12
  2. package/dist/index.min.js +1 -1
  3. package/es/hooks/useContext/index.d.ts +2 -2
  4. package/es/hooks/useContextualItem/index.js +0 -1
  5. package/es/hooks/useEntity/index.d.ts +2 -3
  6. package/es/hooks/useEntity/index.js +19 -72
  7. package/es/hooks/useFullArguments/types.d.ts +3 -3
  8. package/es/hooks/useIsRenderingRef/index.d.ts +1 -1
  9. package/es/hooks/useProvider/index.d.ts +2 -2
  10. package/es/hooks/useReducers/index.d.ts +6 -0
  11. package/es/hooks/useReducers/index.js +40 -0
  12. package/es/hooks/useStatuses/index.d.ts +2 -2
  13. package/es/hooks/useStatuses/index.js +3 -1
  14. package/es/hooks/useStore/index.d.ts +6 -0
  15. package/es/hooks/useStore/index.js +68 -0
  16. package/es/hooks/useUseCase/index.js +11 -47
  17. package/es/hooks/useUseCase/index.test.js +222 -107
  18. package/es/hooks/useUseCase/types.d.ts +3 -4
  19. package/es/methods/initStore/index.d.ts +3 -0
  20. package/es/methods/initStore/index.js +23 -0
  21. package/es/types.d.ts +5 -1
  22. package/es/usecases/contextUseCase/types.d.ts +12 -12
  23. package/es/usecases/entityRuntimeUseCase/index.d.ts +2 -0
  24. package/es/usecases/entityRuntimeUseCase/index.js +16 -0
  25. package/es/usecases/entityRuntimeUseCase/types.d.ts +8 -0
  26. package/es/usecases/entityRuntimeUseCase/types.js +1 -0
  27. package/es/usecases/valueUseCase/index.js +1 -1
  28. package/lib/hooks/useContextualItem/index.js +0 -1
  29. package/lib/hooks/useEntity/index.js +19 -73
  30. package/lib/hooks/useReducers/index.js +50 -0
  31. package/lib/hooks/useStatuses/index.js +3 -1
  32. package/lib/hooks/useStore/index.js +75 -0
  33. package/lib/hooks/useUseCase/index.js +12 -48
  34. package/lib/hooks/useUseCase/index.test.js +283 -126
  35. package/lib/methods/initStore/index.js +29 -0
  36. package/lib/usecases/entityRuntimeUseCase/index.js +25 -0
  37. package/lib/usecases/entityRuntimeUseCase/types.js +5 -0
  38. package/lib/usecases/valueUseCase/index.js +1 -1
  39. package/package.json +3 -3
  40. package/es/hooks/useRuntimeEntity/index.d.ts +0 -5
  41. package/es/hooks/useRuntimeEntity/index.js +0 -22
  42. package/lib/hooks/useRuntimeEntity/index.js +0 -28
@@ -2,9 +2,9 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
5
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
7
6
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
7
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
10
10
  var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/awaitAsyncGenerator"));
@@ -37,7 +37,7 @@ var defaultFile = {
37
37
  };
38
38
  var fileUseCase = function fileUseCase() {
39
39
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
40
- var entityReducers = (0, _usecases.objectUseCase)();
40
+ var entityReducers = (0, _usecases.entityUseCase)();
41
41
  var _options$pathPrefix = options.pathPrefix,
42
42
  pathPrefix = _options$pathPrefix === void 0 ? '' : _options$pathPrefix,
43
43
  onPathChange = options.onPathChange;
@@ -135,7 +135,7 @@ var mathUseCase = function mathUseCase() {
135
135
  };
136
136
  };
137
137
  var fieldPathUseCase = function fieldPathUseCase() {
138
- return (0, _usecases.objectUseCase)();
138
+ return (0, _usecases.entityUseCase)();
139
139
  };
140
140
  var Child = function Child(_ref) {
141
141
  var _ref$textPrefix = _ref.textPrefix,
@@ -327,7 +327,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
327
327
  path: PATH_2
328
328
  }));
329
329
  });
330
- (0, _globals.test)('Should support entity getter', function () {
330
+ (0, _globals.test)('Should support entity initializer', function () {
331
331
  var file = defaultFile;
332
332
  var _renderHook6 = (0, _react.renderHook)(function () {
333
333
  return (0, _.useUseCase)(function () {
@@ -339,26 +339,165 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
339
339
  currentFile = _result$current[0];
340
340
  (0, _globals.expect)(currentFile).toEqual(file);
341
341
  });
342
- (0, _globals.test)('Entity getter should provide the current entity', function () {
342
+ (0, _globals.test)('Should support entity initializer with generator', function () {
343
+ var file = defaultFile;
344
+ var onChange = _globals.jest.fn();
345
+ var _renderHook7 = (0, _react.renderHook)(function () {
346
+ return (0, _.useUseCase)(function () {
347
+ var currentFile = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultFile;
348
+ return /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
349
+ return _regenerator["default"].wrap(function (_context6) {
350
+ while (1) switch (_context6.prev = _context6.next) {
351
+ case 0:
352
+ _context6.next = 1;
353
+ return _objectSpread(_objectSpread({}, currentFile), {}, {
354
+ size: 5000
355
+ });
356
+ case 1:
357
+ case "end":
358
+ return _context6.stop();
359
+ }
360
+ }, _callee3);
361
+ })();
362
+ }, fileUseCase, {
363
+ onChange: onChange
364
+ });
365
+ }),
366
+ result = _renderHook7.result;
367
+ var _result$current2 = (0, _slicedToArray2["default"])(result.current, 1),
368
+ currentFile = _result$current2[0];
369
+ (0, _globals.expect)(currentFile).toEqual(_objectSpread(_objectSpread({}, file), {}, {
370
+ size: 5000
371
+ }));
372
+ (0, _globals.expect)(onChange).toHaveBeenCalledTimes(0);
373
+ });
374
+ (0, _globals.test)('Should support entity initializer with async callback generator', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7() {
375
+ var file, onChange, onUpate, _Promise$withResolver, promise, resolve, _renderHook8, result, _result$current3, currentFile1, newFile1, newFile2, newFile3;
376
+ return _regenerator["default"].wrap(function (_context0) {
377
+ while (1) switch (_context0.prev = _context0.next) {
378
+ case 0:
379
+ file = defaultFile;
380
+ onChange = _globals.jest.fn();
381
+ onUpate = _globals.jest.fn();
382
+ _Promise$withResolver = Promise.withResolvers(), promise = _Promise$withResolver.promise, resolve = _Promise$withResolver.resolve;
383
+ _renderHook8 = (0, _react.renderHook)(function () {
384
+ (0, _react2.useEffect)(function () {
385
+ onUpate();
386
+ });
387
+ return (0, _.useUseCase)(function () {
388
+ var entity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultFile;
389
+ return /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
390
+ var newEntity1, newEntity2;
391
+ return _regenerator["default"].wrap(function (_context8) {
392
+ while (1) switch (_context8.prev = _context8.next) {
393
+ case 0:
394
+ _context8.next = 1;
395
+ return _objectSpread(_objectSpread({}, entity), {}, {
396
+ size: 1
397
+ });
398
+ case 1:
399
+ newEntity1 = _context8.sent;
400
+ _context8.next = 2;
401
+ return _objectSpread(_objectSpread({}, newEntity1), {}, {
402
+ size: newEntity1.size + 1
403
+ });
404
+ case 2:
405
+ _context8.next = 3;
406
+ return /*#__PURE__*/function () {
407
+ var _ref9 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(currentEntity) {
408
+ return _regenerator["default"].wrap(function (_context7) {
409
+ while (1) switch (_context7.prev = _context7.next) {
410
+ case 0:
411
+ _context7.next = 1;
412
+ return promise;
413
+ case 1:
414
+ return _context7.abrupt("return", _objectSpread(_objectSpread({}, currentEntity), {}, {
415
+ size: currentEntity.size + 1
416
+ }));
417
+ case 2:
418
+ case "end":
419
+ return _context7.stop();
420
+ }
421
+ }, _callee4);
422
+ }));
423
+ return function (_x3) {
424
+ return _ref9.apply(this, arguments);
425
+ };
426
+ }();
427
+ case 3:
428
+ newEntity2 = _context8.sent;
429
+ _context8.next = 4;
430
+ return _objectSpread(_objectSpread({}, newEntity2), {}, {
431
+ size: newEntity2.size + 1
432
+ });
433
+ case 4:
434
+ case "end":
435
+ return _context8.stop();
436
+ }
437
+ }, _callee5);
438
+ })();
439
+ }, fileUseCase, {
440
+ onChange: onChange
441
+ });
442
+ }), result = _renderHook8.result;
443
+ _result$current3 = (0, _slicedToArray2["default"])(result.current, 1), currentFile1 = _result$current3[0];
444
+ newFile1 = _objectSpread(_objectSpread({}, file), {}, {
445
+ size: 2
446
+ });
447
+ (0, _globals.expect)(currentFile1).toEqual(newFile1);
448
+ (0, _globals.expect)(onChange).toHaveBeenCalledTimes(0);
449
+ (0, _globals.expect)(onUpate).toHaveBeenCalledTimes(1);
450
+ _context0.next = 1;
451
+ return (0, _react.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6() {
452
+ return _regenerator["default"].wrap(function (_context9) {
453
+ while (1) switch (_context9.prev = _context9.next) {
454
+ case 0:
455
+ resolve();
456
+ _context9.next = 1;
457
+ return promise;
458
+ case 1:
459
+ case "end":
460
+ return _context9.stop();
461
+ }
462
+ }, _callee6);
463
+ })));
464
+ case 1:
465
+ newFile2 = _objectSpread(_objectSpread({}, file), {}, {
466
+ size: 3
467
+ });
468
+ newFile3 = _objectSpread(_objectSpread({}, file), {}, {
469
+ size: 4
470
+ });
471
+ (0, _globals.expect)(onChange).toHaveBeenCalledTimes(2);
472
+ (0, _globals.expect)(onUpate).toHaveBeenCalledTimes(2);
473
+ (0, _globals.expect)(onChange).toHaveBeenNthCalledWith(1, newFile2, newFile1);
474
+ (0, _globals.expect)(onChange).toHaveBeenNthCalledWith(2, newFile3, newFile2);
475
+ case 2:
476
+ case "end":
477
+ return _context0.stop();
478
+ }
479
+ }, _callee7);
480
+ })));
481
+ (0, _globals.test)('Entity initializer should provide the current entity', function () {
343
482
  var updateIndex = 0;
344
483
  var file = defaultFile;
345
484
  var onFile = _globals.jest.fn();
346
- var _renderHook7 = (0, _react.renderHook)(function () {
485
+ var _renderHook9 = (0, _react.renderHook)(function () {
347
486
  return (0, _.useUseCase)(function (currentFile) {
348
487
  onFile(currentFile);
349
488
  return currentFile !== null && currentFile !== void 0 ? currentFile : file;
350
489
  }, fileUseCase, {}, [updateIndex++]);
351
490
  }),
352
- result = _renderHook7.result;
353
- var _result$current2 = (0, _slicedToArray2["default"])(result.current, 2),
354
- setPath1 = _result$current2[1].setPath;
491
+ result = _renderHook9.result;
492
+ var _result$current4 = (0, _slicedToArray2["default"])(result.current, 2),
493
+ setPath1 = _result$current4[1].setPath;
355
494
  (0, _globals.expect)(onFile).toHaveBeenCalledTimes(1);
356
495
  (0, _globals.expect)(onFile).toHaveBeenCalledWith(void 0);
357
496
  (0, _react.act)(function () {
358
497
  setPath1(PATH_1);
359
498
  });
360
- var _result$current3 = (0, _slicedToArray2["default"])(result.current, 2),
361
- setPath2 = _result$current3[1].setPath;
499
+ var _result$current5 = (0, _slicedToArray2["default"])(result.current, 2),
500
+ setPath2 = _result$current5[1].setPath;
362
501
  (0, _globals.expect)(onFile).toHaveBeenCalledTimes(2);
363
502
  (0, _globals.expect)(onFile).toHaveBeenCalledWith(_objectSpread(_objectSpread({}, file), {}, {
364
503
  ext: EXT_1,
@@ -373,12 +512,12 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
373
512
  path: PATH_2
374
513
  }));
375
514
  });
376
- (0, _globals.test)('Entity getter should provide the changed deps', function () {
515
+ (0, _globals.test)('Entity initializer should provide the changed deps', function () {
377
516
  var updateIndex = 0;
378
517
  var file = defaultFile;
379
518
  var symbol = Symbol('changedDep');
380
519
  var onChangedDeps = _globals.jest.fn();
381
- var _renderHook8 = (0, _react.renderHook)(function () {
520
+ var _renderHook0 = (0, _react.renderHook)(function () {
382
521
  return (0, _.useUseCase)(function () {
383
522
  var currentFile = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : file;
384
523
  var changedDeps = arguments.length > 1 ? arguments[1] : undefined;
@@ -407,9 +546,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
407
546
  return currentFile;
408
547
  }, fileUseCase, {}, [updateIndex++, 0, updateIndex++, 'xyz', updateIndex++, false]);
409
548
  }),
410
- result = _renderHook8.result;
411
- var _result$current4 = (0, _slicedToArray2["default"])(result.current, 2),
412
- setPath = _result$current4[1].setPath;
549
+ result = _renderHook0.result;
550
+ var _result$current6 = (0, _slicedToArray2["default"])(result.current, 2),
551
+ setPath = _result$current6[1].setPath;
413
552
  (0, _globals.expect)(onChangedDeps).toHaveBeenCalledTimes(1);
414
553
  (0, _globals.expect)(onChangedDeps).toHaveBeenCalledWith([symbol, symbol, symbol, symbol, symbol, symbol]);
415
554
  (0, _react.act)(function () {
@@ -426,8 +565,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
426
565
  return {};
427
566
  }
428
567
  };
429
- var _renderHook9 = (0, _react.renderHook)(function () {
430
- var collection = (0, _.useUseCase)(data, _usecases.objectUseCase);
568
+ var _renderHook1 = (0, _react.renderHook)(function () {
569
+ var collection = (0, _.useUseCase)(data, _usecases.entityUseCase);
431
570
  var _collection3 = (0, _slicedToArray2["default"])(collection, 1),
432
571
  obj = _collection3[0].obj;
433
572
  (0, _react2.useMemo)(function () {
@@ -436,7 +575,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
436
575
  }, [obj]);
437
576
  return collection;
438
577
  }),
439
- rerender = _renderHook9.rerender;
578
+ rerender = _renderHook1.rerender;
440
579
  (0, _globals.expect)(updateTimes).toEqual(1);
441
580
  (0, _react.act)(function () {
442
581
  rerender();
@@ -451,8 +590,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
451
590
  return {};
452
591
  }
453
592
  };
454
- var _renderHook0 = (0, _react.renderHook)(function () {
455
- var collection = (0, _.useUseCase)(data, _usecases.objectUseCase);
593
+ var _renderHook10 = (0, _react.renderHook)(function () {
594
+ var collection = (0, _.useUseCase)(data, _usecases.entityUseCase);
456
595
  var _collection4 = (0, _slicedToArray2["default"])(collection, 1),
457
596
  obj = _collection4[0].obj;
458
597
  (0, _react2.useMemo)(function () {
@@ -461,7 +600,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
461
600
  }, [obj]);
462
601
  return collection;
463
602
  }),
464
- result = _renderHook0.result;
603
+ result = _renderHook10.result;
465
604
  var current = result.current;
466
605
  var _current = (0, _slicedToArray2["default"])(current, 2),
467
606
  setEntity = _current[1].setEntity;
@@ -473,11 +612,11 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
473
612
  });
474
613
  (0, _globals.expect)(updateTimes).toEqual(2);
475
614
  });
476
- (0, _globals.test)('Entity getter should provide the first argument with current entity when deps has change.', function () {
615
+ (0, _globals.test)('Entity initializer should provide the first argument with current entity when deps has change.', function () {
477
616
  var entityArg;
478
617
  var times = 0;
479
618
  var file = defaultFile;
480
- var _renderHook1 = (0, _react.renderHook)(function () {
619
+ var _renderHook11 = (0, _react.renderHook)(function () {
481
620
  return (0, _.useUseCase)(function () {
482
621
  var entity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : file;
483
622
  var path = entity.path;
@@ -487,7 +626,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
487
626
  });
488
627
  }, fileUseCase, {}, [times++]);
489
628
  }),
490
- result = _renderHook1.result;
629
+ result = _renderHook11.result;
491
630
  var collection1 = result.current;
492
631
  var _collection5 = (0, _slicedToArray2["default"])(collection1, 2),
493
632
  currentFile1 = _collection5[0],
@@ -510,20 +649,20 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
510
649
  }));
511
650
  });
512
651
  (0, _globals.test)('`reducers` should be returned as an object', function () {
513
- var _renderHook10 = (0, _react.renderHook)(function () {
652
+ var _renderHook12 = (0, _react.renderHook)(function () {
514
653
  return (0, _.useUseCase)(defaultFile, fileUseCase);
515
654
  }),
516
- result = _renderHook10.result;
655
+ result = _renderHook12.result;
517
656
  var cores = result.current;
518
657
  var _cores2 = (0, _slicedToArray2["default"])(cores, 2),
519
658
  reducers = _cores2[1];
520
659
  (0, _globals.expect)((0, _typeof2["default"])(reducers)).toBe('object');
521
660
  });
522
661
  (0, _globals.test)('`Provider` should be returned as a function', function () {
523
- var _renderHook11 = (0, _react.renderHook)(function () {
662
+ var _renderHook13 = (0, _react.renderHook)(function () {
524
663
  return (0, _.useUseCase)(defaultFile, fileUseCase);
525
664
  }),
526
- result = _renderHook11.result;
665
+ result = _renderHook13.result;
527
666
  var cores = result.current;
528
667
  var _cores3 = (0, _slicedToArray2["default"])(cores, 3),
529
668
  Provider = _cores3[2];
@@ -531,11 +670,11 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
531
670
  });
532
671
  (0, _globals.test)('`usecase` should be called only once if deps has not provided', function () {
533
672
  var mockUseCase = _globals.jest.fn(fileUseCase);
534
- var _renderHook12 = (0, _react.renderHook)(function () {
673
+ var _renderHook14 = (0, _react.renderHook)(function () {
535
674
  return (0, _.useUseCase)(defaultFile, mockUseCase);
536
675
  }),
537
- result = _renderHook12.result,
538
- rerender = _renderHook12.rerender;
676
+ result = _renderHook14.result,
677
+ rerender = _renderHook14.rerender;
539
678
  var cores = result.current;
540
679
  var _cores4 = (0, _slicedToArray2["default"])(cores, 2),
541
680
  setEntity = _cores4[1].setEntity;
@@ -548,11 +687,11 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
548
687
  });
549
688
  (0, _globals.test)('`usecase` should be called only once if deps has not changed', function () {
550
689
  var mockUseCase = _globals.jest.fn(fileUseCase);
551
- var _renderHook13 = (0, _react.renderHook)(function () {
690
+ var _renderHook15 = (0, _react.renderHook)(function () {
552
691
  return (0, _.useUseCase)(defaultFile, mockUseCase, {}, [1, 'x']);
553
692
  }),
554
- result = _renderHook13.result,
555
- rerender = _renderHook13.rerender;
693
+ result = _renderHook15.result,
694
+ rerender = _renderHook15.rerender;
556
695
  var cores = result.current;
557
696
  var _cores5 = (0, _slicedToArray2["default"])(cores, 2),
558
697
  setEntity = _cores5[1].setEntity;
@@ -566,11 +705,11 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
566
705
  (0, _globals.test)('`usecase` should be called if deps has changed', function () {
567
706
  var i = 0;
568
707
  var mockUseCase = _globals.jest.fn(fileUseCase);
569
- var _renderHook14 = (0, _react.renderHook)(function () {
708
+ var _renderHook16 = (0, _react.renderHook)(function () {
570
709
  return (0, _.useUseCase)(defaultFile, mockUseCase, {}, [i++, 'x']);
571
710
  }),
572
- result = _renderHook14.result,
573
- rerender = _renderHook14.rerender;
711
+ result = _renderHook16.result,
712
+ rerender = _renderHook16.rerender;
574
713
  var cores = result.current;
575
714
  var _cores6 = (0, _slicedToArray2["default"])(cores, 2),
576
715
  setEntity = _cores6[1].setEntity;
@@ -585,7 +724,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
585
724
  (0, _globals.test)('after call non-generator reducer, it should not trigger update', function () {
586
725
  var onUpdate = _globals.jest.fn();
587
726
  var onDeepUpdate = _globals.jest.fn();
588
- var _renderHook15 = (0, _react.renderHook)(function () {
727
+ var _renderHook17 = (0, _react.renderHook)(function () {
589
728
  var context = (0, _.useUseCase)(defaultFile, fileUseCase);
590
729
  var _context = (0, _slicedToArray2["default"])(context, 2),
591
730
  reducers = _context[1];
@@ -605,7 +744,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
605
744
  update();
606
745
  };
607
746
  }),
608
- result = _renderHook15.result;
747
+ result = _renderHook17.result;
609
748
  (0, _react.act)(function () {
610
749
  result.current();
611
750
  });
@@ -619,13 +758,13 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
619
758
  });
620
759
  (0, _globals.test)('after `yield entity`, it should trigger update', function () {
621
760
  var onUpdate = _globals.jest.fn();
622
- var _renderHook16 = (0, _react.renderHook)(function () {
761
+ var _renderHook18 = (0, _react.renderHook)(function () {
623
762
  (0, _ahooks.useUpdateEffect)(function () {
624
763
  onUpdate();
625
764
  });
626
765
  return (0, _.useUseCase)(defaultFile, fileUseCase);
627
766
  }),
628
- result = _renderHook16.result;
767
+ result = _renderHook18.result;
629
768
  var cores = result.current;
630
769
  var _cores7 = (0, _slicedToArray2["default"])(cores, 2),
631
770
  entity = _cores7[0],
@@ -649,18 +788,18 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
649
788
  }));
650
789
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(1);
651
790
  });
652
- (0, _globals.test)('after `yield entity` on async mode, it should trigger update', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
653
- var onUpdate, _renderHook17, result, cores, _cores8, entity, reducers, readFile, promise;
654
- return _regenerator["default"].wrap(function (_context6) {
655
- while (1) switch (_context6.prev = _context6.next) {
791
+ (0, _globals.test)('after `yield entity` on async mode, it should trigger update', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8() {
792
+ var onUpdate, _renderHook19, result, cores, _cores8, entity, reducers, readFile, promise;
793
+ return _regenerator["default"].wrap(function (_context1) {
794
+ while (1) switch (_context1.prev = _context1.next) {
656
795
  case 0:
657
796
  onUpdate = _globals.jest.fn();
658
- _renderHook17 = (0, _react.renderHook)(function () {
797
+ _renderHook19 = (0, _react.renderHook)(function () {
659
798
  (0, _ahooks.useUpdateEffect)(function () {
660
799
  onUpdate();
661
800
  });
662
801
  return (0, _.useUseCase)(defaultFile, fileUseCase);
663
- }), result = _renderHook17.result;
802
+ }), result = _renderHook19.result;
664
803
  cores = result.current;
665
804
  _cores8 = (0, _slicedToArray2["default"])(cores, 2), entity = _cores8[0], reducers = _cores8[1];
666
805
  readFile = reducers.readFile;
@@ -670,7 +809,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
670
809
  (0, _globals.expect)(result.current).toBe(cores);
671
810
  (0, _globals.expect)(result.current).toEqual(cores);
672
811
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
673
- _context6.next = 1;
812
+ _context1.next = 1;
674
813
  return promise;
675
814
  case 1:
676
815
  (0, _globals.expect)(result.current[0]).not.toBe(entity);
@@ -682,19 +821,19 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
682
821
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(1);
683
822
  case 2:
684
823
  case "end":
685
- return _context6.stop();
824
+ return _context1.stop();
686
825
  }
687
- }, _callee3);
826
+ }, _callee8);
688
827
  })));
689
828
  (0, _globals.test)('after `yield entity` callbacks, it should trigger update', function () {
690
829
  var onUpdate = _globals.jest.fn();
691
- var _renderHook18 = (0, _react.renderHook)(function () {
830
+ var _renderHook20 = (0, _react.renderHook)(function () {
692
831
  (0, _ahooks.useUpdateEffect)(function () {
693
832
  onUpdate();
694
833
  });
695
834
  return (0, _.useUseCase)(defaultFile, fileUseCase);
696
835
  }),
697
- result = _renderHook18.result;
836
+ result = _renderHook20.result;
698
837
  var cores = result.current;
699
838
  var _cores9 = (0, _slicedToArray2["default"])(cores, 2),
700
839
  reducers = _cores9[1];
@@ -831,12 +970,12 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
831
970
  });
832
971
  (0, _globals.test)('`options.onChange` should be trigger when entity has changed', function () {
833
972
  var onChange = _globals.jest.fn();
834
- var _renderHook19 = (0, _react.renderHook)(function () {
973
+ var _renderHook21 = (0, _react.renderHook)(function () {
835
974
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
836
975
  onChange: onChange
837
976
  });
838
977
  }),
839
- result = _renderHook19.result;
978
+ result = _renderHook21.result;
840
979
  var cores = result.current;
841
980
  var _cores0 = (0, _slicedToArray2["default"])(cores, 2),
842
981
  reducers = _cores0[1];
@@ -855,12 +994,12 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
855
994
  var onChange1 = _globals.jest.fn();
856
995
  var onChange2 = _globals.jest.fn();
857
996
  var onChange = onChange1;
858
- var _renderHook20 = (0, _react.renderHook)(function () {
997
+ var _renderHook22 = (0, _react.renderHook)(function () {
859
998
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
860
999
  onChange: onChange
861
1000
  }, []);
862
1001
  }),
863
- result = _renderHook20.result;
1002
+ result = _renderHook22.result;
864
1003
  var cores = result.current;
865
1004
  var _cores1 = (0, _slicedToArray2["default"])(cores, 2),
866
1005
  reducers = _cores1[1];
@@ -890,7 +1029,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
890
1029
  }));
891
1030
  });
892
1031
  (0, _globals.test)('`options.options` should override rest options', function () {
893
- var _renderHook21 = (0, _react.renderHook)(function () {
1032
+ var _renderHook23 = (0, _react.renderHook)(function () {
894
1033
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
895
1034
  pathPrefix: 'xyz/',
896
1035
  options: {
@@ -898,7 +1037,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
898
1037
  }
899
1038
  });
900
1039
  }),
901
- result = _renderHook21.result;
1040
+ result = _renderHook23.result;
902
1041
  var cores = result.current;
903
1042
  var _cores10 = (0, _slicedToArray2["default"])(cores, 2),
904
1043
  path = _cores10[0].path,
@@ -911,14 +1050,14 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
911
1050
  (0, _globals.expect)(result.current[0].path).toBe('123/' + PATH_1);
912
1051
  });
913
1052
  (0, _globals.test)('Option functions: use `T` (not `S`) when `S extends T`', function () {
914
- var testObjectUseCase = function testObjectUseCase() {
1053
+ var testUseCase = function testUseCase() {
915
1054
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
916
- var objectReducers = (0, _usecases.objectUseCase)();
1055
+ var entityReducers = (0, _usecases.entityUseCase)();
917
1056
  void options;
918
- return _objectSpread({}, objectReducers);
1057
+ return _objectSpread({}, entityReducers);
919
1058
  };
920
1059
  (0, _react.renderHook)(function () {
921
- (0, _.useUseCase)(defaultFile, testObjectUseCase, {
1060
+ (0, _.useUseCase)(defaultFile, testUseCase, {
922
1061
  onUpdate: function onUpdate(data) {
923
1062
  void data;
924
1063
  return Promise.reject();
@@ -931,7 +1070,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
931
1070
  (0, _globals.test)('when `options` has changed, it should not trigger update', function () {
932
1071
  var onUpdate = _globals.jest.fn();
933
1072
  var onDeepUpdate = _globals.jest.fn();
934
- var _renderHook22 = (0, _react.renderHook)(function () {
1073
+ var _renderHook24 = (0, _react.renderHook)(function () {
935
1074
  var _useState = (0, _react2.useState)('user/'),
936
1075
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
937
1076
  pathPrefix = _useState2[0],
@@ -947,7 +1086,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
947
1086
  }, [context]);
948
1087
  return setPathPrefix;
949
1088
  }),
950
- result = _renderHook22.result;
1089
+ result = _renderHook24.result;
951
1090
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
952
1091
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
953
1092
  (0, _react.act)(function () {
@@ -959,7 +1098,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
959
1098
  (0, _globals.test)('when `deps` has changed, it should trigger update', function () {
960
1099
  var onUpdate = _globals.jest.fn();
961
1100
  var onDeepUpdate = _globals.jest.fn();
962
- var _renderHook23 = (0, _react.renderHook)(function () {
1101
+ var _renderHook25 = (0, _react.renderHook)(function () {
963
1102
  var _useState3 = (0, _react2.useState)('user/'),
964
1103
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
965
1104
  pathPrefix = _useState4[0],
@@ -975,7 +1114,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
975
1114
  }, [context]);
976
1115
  return setPathPrefix;
977
1116
  }),
978
- result = _renderHook23.result;
1117
+ result = _renderHook25.result;
979
1118
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
980
1119
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
981
1120
  (0, _react.act)(function () {
@@ -987,7 +1126,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
987
1126
  (0, _globals.test)('empty `deps` should not trigger update', function () {
988
1127
  var onUpdate = _globals.jest.fn();
989
1128
  var onDeepUpdate = _globals.jest.fn();
990
- var _renderHook24 = (0, _react.renderHook)(function () {
1129
+ var _renderHook26 = (0, _react.renderHook)(function () {
991
1130
  var _useState5 = (0, _react2.useState)('user/'),
992
1131
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
993
1132
  pathPrefix = _useState6[0],
@@ -1003,7 +1142,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1003
1142
  }, [context]);
1004
1143
  return setPathPrefix;
1005
1144
  }),
1006
- result = _renderHook24.result;
1145
+ result = _renderHook26.result;
1007
1146
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
1008
1147
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
1009
1148
  (0, _react.act)(function () {
@@ -1016,12 +1155,12 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1016
1155
  var onPathChange1 = _globals.jest.fn();
1017
1156
  var onPathChange2 = _globals.jest.fn();
1018
1157
  var onPathChange = onPathChange1;
1019
- var _renderHook25 = (0, _react.renderHook)(function () {
1158
+ var _renderHook27 = (0, _react.renderHook)(function () {
1020
1159
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
1021
1160
  onPathChange: onPathChange
1022
1161
  });
1023
1162
  }),
1024
- result = _renderHook25.result;
1163
+ result = _renderHook27.result;
1025
1164
  var context = result.current;
1026
1165
  var _context2 = (0, _slicedToArray2["default"])(context, 2),
1027
1166
  setPath = _context2[1].setPath;
@@ -1042,7 +1181,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1042
1181
  (0, _globals.test)('`options.watch` should be trigger after entity changed', function () {
1043
1182
  var onPathChange = _globals.jest.fn();
1044
1183
  var onSizeChange = _globals.jest.fn();
1045
- var _renderHook26 = (0, _react.renderHook)(function () {
1184
+ var _renderHook28 = (0, _react.renderHook)(function () {
1046
1185
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
1047
1186
  watch: {
1048
1187
  path: onPathChange,
@@ -1050,7 +1189,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1050
1189
  }
1051
1190
  });
1052
1191
  }),
1053
- result = _renderHook26.result;
1192
+ result = _renderHook28.result;
1054
1193
  var cores = result.current;
1055
1194
  var _cores11 = (0, _slicedToArray2["default"])(cores, 2),
1056
1195
  setPath = _cores11[1].setPath;
@@ -1075,14 +1214,14 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1075
1214
  var onPathChange1 = _globals.jest.fn();
1076
1215
  var onPathChange2 = _globals.jest.fn();
1077
1216
  var onPathChange = onPathChange1;
1078
- var _renderHook27 = (0, _react.renderHook)(function () {
1217
+ var _renderHook29 = (0, _react.renderHook)(function () {
1079
1218
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
1080
1219
  watch: {
1081
1220
  path: onPathChange
1082
1221
  }
1083
1222
  });
1084
1223
  }),
1085
- result = _renderHook27.result;
1224
+ result = _renderHook29.result;
1086
1225
  var cores = result.current;
1087
1226
  var _cores12 = (0, _slicedToArray2["default"])(cores, 2),
1088
1227
  _cores12$ = _cores12[1],
@@ -1130,7 +1269,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1130
1269
  var initialData = {};
1131
1270
  var onExtChange = _globals.jest.fn();
1132
1271
  var onSizeChange = _globals.jest.fn();
1133
- var _renderHook28 = (0, _react.renderHook)(function () {
1272
+ var _renderHook30 = (0, _react.renderHook)(function () {
1134
1273
  return (0, _.useUseCase)(initialData, fieldPathUseCase, {
1135
1274
  watch: {
1136
1275
  'list.ext': onExtChange,
@@ -1138,7 +1277,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1138
1277
  }
1139
1278
  });
1140
1279
  }),
1141
- result = _renderHook28.result;
1280
+ result = _renderHook30.result;
1142
1281
  var cores = result.current;
1143
1282
  var _cores13 = (0, _slicedToArray2["default"])(cores, 2),
1144
1283
  setEntity = _cores13[1].setEntity;
@@ -1261,7 +1400,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1261
1400
  ext: EXT_2
1262
1401
  }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1263
1402
  ext: EXT_1
1264
- }), defaultFile]
1403
+ }), defaultFile],
1404
+ nestedList: []
1265
1405
  },
1266
1406
  oldEntity: {
1267
1407
  list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
@@ -1281,7 +1421,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1281
1421
  ext: EXT_2
1282
1422
  }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1283
1423
  ext: EXT_1
1284
- }), defaultFile]
1424
+ }), defaultFile],
1425
+ nestedList: []
1285
1426
  },
1286
1427
  oldEntity: {
1287
1428
  list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
@@ -1301,7 +1442,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1301
1442
  ext: EXT_2
1302
1443
  }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1303
1444
  ext: EXT_1
1304
- }), defaultFile]
1445
+ }), defaultFile],
1446
+ nestedList: []
1305
1447
  },
1306
1448
  oldEntity: {
1307
1449
  list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
@@ -1321,7 +1463,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1321
1463
  ext: EXT_2
1322
1464
  }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1323
1465
  ext: EXT_1
1324
- }), defaultFile]
1466
+ }), defaultFile],
1467
+ nestedList: []
1325
1468
  },
1326
1469
  oldEntity: {
1327
1470
  list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
@@ -1336,86 +1479,92 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1336
1479
  });
1337
1480
  (0, _react.act)(function () {
1338
1481
  setEntity(function () {
1339
- return {};
1482
+ return {
1483
+ list: []
1484
+ };
1340
1485
  });
1341
1486
  });
1342
1487
  (0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(9);
1343
1488
  (0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(6);
1489
+ var newEntity1 = {
1490
+ list: [],
1491
+ nestedList: []
1492
+ };
1344
1493
  (0, _globals.expect)(onExtChange).toHaveBeenNthCalledWith(7, {
1345
1494
  fieldPaths: ['list', '0', 'ext'],
1346
- newEntity: {},
1347
- oldEntity: {
1495
+ newEntity: newEntity1,
1496
+ oldEntity: _objectSpread(_objectSpread({}, newEntity1), {}, {
1348
1497
  list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1349
1498
  ext: EXT_2
1350
1499
  }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1351
1500
  ext: EXT_1
1352
1501
  }), defaultFile]
1353
- },
1502
+ }),
1354
1503
  newValue: void 0,
1355
1504
  oldValue: EXT_2
1356
1505
  });
1357
1506
  (0, _globals.expect)(onExtChange).toHaveBeenNthCalledWith(8, {
1358
1507
  fieldPaths: ['list', '1', 'ext'],
1359
- newEntity: {},
1360
- oldEntity: {
1508
+ newEntity: newEntity1,
1509
+ oldEntity: _objectSpread(_objectSpread({}, newEntity1), {}, {
1361
1510
  list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1362
1511
  ext: EXT_2
1363
1512
  }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1364
1513
  ext: EXT_1
1365
1514
  }), defaultFile]
1366
- },
1515
+ }),
1367
1516
  newValue: void 0,
1368
1517
  oldValue: EXT_1
1369
1518
  });
1370
1519
  (0, _globals.expect)(onExtChange).toHaveBeenNthCalledWith(9, {
1371
1520
  fieldPaths: ['list', '2', 'ext'],
1372
- newEntity: {},
1373
- oldEntity: {
1521
+ newEntity: newEntity1,
1522
+ oldEntity: _objectSpread(_objectSpread({}, newEntity1), {}, {
1374
1523
  list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1375
1524
  ext: EXT_2
1376
1525
  }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1377
1526
  ext: EXT_1
1378
1527
  }), defaultFile]
1379
- },
1528
+ }),
1380
1529
  newValue: void 0,
1381
1530
  oldValue: ''
1382
1531
  });
1383
1532
  (0, _globals.expect)(onSizeChange).toHaveBeenNthCalledWith(4, {
1384
1533
  fieldPaths: ['list', '0', 'size'],
1385
- newEntity: {},
1386
- oldEntity: {
1534
+ newEntity: newEntity1,
1535
+ oldEntity: _objectSpread(_objectSpread({}, newEntity1), {}, {
1387
1536
  list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1388
1537
  ext: EXT_2
1389
1538
  }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1390
1539
  ext: EXT_1
1391
1540
  }), defaultFile]
1392
- },
1541
+ }),
1393
1542
  newValue: void 0,
1394
1543
  oldValue: 0
1395
1544
  });
1396
1545
  (0, _globals.expect)(onSizeChange).toHaveBeenNthCalledWith(5, {
1397
1546
  fieldPaths: ['list', '1', 'size'],
1398
- newEntity: {},
1399
- oldEntity: {
1547
+ newEntity: newEntity1,
1548
+ oldEntity: _objectSpread(_objectSpread({}, newEntity1), {}, {
1400
1549
  list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1401
1550
  ext: EXT_2
1402
1551
  }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1403
1552
  ext: EXT_1
1404
1553
  }), defaultFile]
1405
- },
1554
+ }),
1406
1555
  newValue: void 0,
1407
1556
  oldValue: 0
1408
1557
  });
1409
1558
  (0, _globals.expect)(onSizeChange).toHaveBeenNthCalledWith(6, {
1410
1559
  fieldPaths: ['list', '2', 'size'],
1411
- newEntity: {},
1412
- oldEntity: {
1560
+ newEntity: newEntity1,
1561
+ oldEntity: _objectSpread(_objectSpread({}, newEntity1), {}, {
1413
1562
  list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1414
1563
  ext: EXT_2
1415
1564
  }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1416
1565
  ext: EXT_1
1417
1566
  }), defaultFile]
1418
- },
1567
+ }),
1419
1568
  newValue: void 0,
1420
1569
  oldValue: 0
1421
1570
  });
@@ -1426,7 +1575,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1426
1575
  var lengthUseCase = function lengthUseCase() {
1427
1576
  return (0, _usecases.entityUseCase)();
1428
1577
  };
1429
- var _renderHook29 = (0, _react.renderHook)(function () {
1578
+ var _renderHook31 = (0, _react.renderHook)(function () {
1430
1579
  return (0, _.useUseCase)([], lengthUseCase, {
1431
1580
  watch: {
1432
1581
  length: onEntityLengthChange,
@@ -1434,7 +1583,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1434
1583
  }
1435
1584
  });
1436
1585
  }),
1437
- result = _renderHook29.result;
1586
+ result = _renderHook31.result;
1438
1587
  var cores = result.current;
1439
1588
  var _cores14 = (0, _slicedToArray2["default"])(cores, 2),
1440
1589
  setEntity = _cores14[1].setEntity;
@@ -1469,14 +1618,14 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1469
1618
  (0, _globals.test)('`options.watch` should work with field path of nested array', function () {
1470
1619
  var initialData = {};
1471
1620
  var onChange = _globals.jest.fn();
1472
- var _renderHook30 = (0, _react.renderHook)(function () {
1621
+ var _renderHook32 = (0, _react.renderHook)(function () {
1473
1622
  return (0, _.useUseCase)(initialData, fieldPathUseCase, {
1474
1623
  watch: {
1475
1624
  'nestedList.size': onChange
1476
1625
  }
1477
1626
  });
1478
1627
  }),
1479
- result = _renderHook30.result;
1628
+ result = _renderHook32.result;
1480
1629
  var cores = result.current;
1481
1630
  var _cores15 = (0, _slicedToArray2["default"])(cores, 2),
1482
1631
  setEntity = _cores15[1].setEntity;
@@ -1564,7 +1713,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1564
1713
  var initialData = {};
1565
1714
  var onExtChange = _globals.jest.fn();
1566
1715
  var onSizeChange = _globals.jest.fn();
1567
- var _renderHook31 = (0, _react.renderHook)(function () {
1716
+ var _renderHook33 = (0, _react.renderHook)(function () {
1568
1717
  return (0, _.useUseCase)(initialData, fieldPathUseCase, {
1569
1718
  watch: {
1570
1719
  'obj.file.ext': onExtChange,
@@ -1572,7 +1721,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1572
1721
  }
1573
1722
  });
1574
1723
  }),
1575
- result = _renderHook31.result;
1724
+ result = _renderHook33.result;
1576
1725
  var cores = result.current;
1577
1726
  var _cores16 = (0, _slicedToArray2["default"])(cores, 2),
1578
1727
  setEntity = _cores16[1].setEntity;
@@ -1603,14 +1752,22 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1603
1752
  });
1604
1753
  (0, _react.act)(function () {
1605
1754
  setEntity(function () {
1606
- return {};
1755
+ return {
1756
+ obj: {
1757
+ file: {}
1758
+ }
1759
+ };
1607
1760
  });
1608
1761
  });
1609
1762
  (0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(2);
1610
1763
  (0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(0);
1611
1764
  (0, _globals.expect)(onExtChange).toHaveBeenCalledWith({
1612
1765
  fieldPaths: ['obj', 'file', 'ext'],
1613
- newEntity: {},
1766
+ newEntity: {
1767
+ obj: {
1768
+ file: {}
1769
+ }
1770
+ },
1614
1771
  oldEntity: {
1615
1772
  obj: {
1616
1773
  file: {
@@ -2220,38 +2377,38 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2220
2377
  });
2221
2378
  (0, _globals.describe)('`useUseCase` should work the same as `useReducers`', function () {
2222
2379
  (0, _globals.test)('`entity` should equal `defaultFile`', function () {
2223
- var _renderHook32 = (0, _react.renderHook)(function () {
2380
+ var _renderHook34 = (0, _react.renderHook)(function () {
2224
2381
  return (0, _.useUseCase)(mathUseCase);
2225
2382
  }),
2226
- result = _renderHook32.result;
2383
+ result = _renderHook34.result;
2227
2384
  var reducers = result.current;
2228
2385
  (0, _globals.expect)(Array.isArray(reducers)).toBe(false);
2229
2386
  });
2230
2387
  (0, _globals.test)('returned reducer should work', function () {
2231
- var _renderHook33 = (0, _react.renderHook)(function () {
2388
+ var _renderHook35 = (0, _react.renderHook)(function () {
2232
2389
  return (0, _.useUseCase)(mathUseCase);
2233
2390
  }),
2234
- result = _renderHook33.result;
2391
+ result = _renderHook35.result;
2235
2392
  var reducers = result.current;
2236
2393
  var add = reducers.add;
2237
2394
  (0, _globals.expect)(add(1, 2)).toBe(3);
2238
2395
  });
2239
2396
  (0, _globals.test)('`usecase` should be called only once if deps has not provided', function () {
2240
2397
  var mockUseCase = _globals.jest.fn(mathUseCase);
2241
- var _renderHook34 = (0, _react.renderHook)(function () {
2398
+ var _renderHook36 = (0, _react.renderHook)(function () {
2242
2399
  return (0, _.useUseCase)(mockUseCase);
2243
2400
  }),
2244
- rerender = _renderHook34.rerender;
2401
+ rerender = _renderHook36.rerender;
2245
2402
  (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
2246
2403
  rerender();
2247
2404
  (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
2248
2405
  });
2249
2406
  (0, _globals.test)('`usecase` should be called only once if deps has not changed', function () {
2250
2407
  var mockUseCase = _globals.jest.fn(mathUseCase);
2251
- var _renderHook35 = (0, _react.renderHook)(function () {
2408
+ var _renderHook37 = (0, _react.renderHook)(function () {
2252
2409
  return (0, _.useUseCase)(mockUseCase, {}, [1, 'x']);
2253
2410
  }),
2254
- rerender = _renderHook35.rerender;
2411
+ rerender = _renderHook37.rerender;
2255
2412
  (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
2256
2413
  rerender();
2257
2414
  (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
@@ -2259,10 +2416,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2259
2416
  (0, _globals.test)('`usecase` should be called if deps has changed', function () {
2260
2417
  var i = 0;
2261
2418
  var mockUseCase = _globals.jest.fn(mathUseCase);
2262
- var _renderHook36 = (0, _react.renderHook)(function () {
2419
+ var _renderHook38 = (0, _react.renderHook)(function () {
2263
2420
  return (0, _.useUseCase)(mockUseCase, {}, [i++, 'x']);
2264
2421
  }),
2265
- rerender = _renderHook36.rerender;
2422
+ rerender = _renderHook38.rerender;
2266
2423
  (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
2267
2424
  rerender();
2268
2425
  (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(2);
@@ -2346,12 +2503,12 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2346
2503
  (0, _globals.expect)(subtractionReducer).toHaveReturnedWith(4);
2347
2504
  });
2348
2505
  (0, _globals.test)('`options.extraValue` should be added after call `add` method', function () {
2349
- var _renderHook37 = (0, _react.renderHook)(function () {
2506
+ var _renderHook39 = (0, _react.renderHook)(function () {
2350
2507
  return (0, _.useUseCase)(mathUseCase, {
2351
2508
  extraValue: 5
2352
2509
  });
2353
2510
  }),
2354
- result = _renderHook37.result;
2511
+ result = _renderHook39.result;
2355
2512
  var reducers = result.current;
2356
2513
  var add = reducers.add;
2357
2514
  (0, _globals.expect)(add(1, 2)).toBe(8);
@@ -2359,7 +2516,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2359
2516
  (0, _globals.test)('when `options` has changed, it should not trigger update', function () {
2360
2517
  var onUpdate = _globals.jest.fn();
2361
2518
  var onDeepUpdate = _globals.jest.fn();
2362
- var _renderHook38 = (0, _react.renderHook)(function () {
2519
+ var _renderHook40 = (0, _react.renderHook)(function () {
2363
2520
  var _useState7 = (0, _react2.useState)(0),
2364
2521
  _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
2365
2522
  extraValue = _useState8[0],
@@ -2375,7 +2532,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2375
2532
  }, [reducers]);
2376
2533
  return setExtraValue;
2377
2534
  }),
2378
- result = _renderHook38.result;
2535
+ result = _renderHook40.result;
2379
2536
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
2380
2537
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
2381
2538
  (0, _react.act)(function () {
@@ -2387,7 +2544,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2387
2544
  (0, _globals.test)('when `deps` change, it should update reducers', function () {
2388
2545
  var onUpdate = _globals.jest.fn();
2389
2546
  var onDeepUpdate = _globals.jest.fn();
2390
- var _renderHook39 = (0, _react.renderHook)(function () {
2547
+ var _renderHook41 = (0, _react.renderHook)(function () {
2391
2548
  var _useState9 = (0, _react2.useState)(0),
2392
2549
  _useState0 = (0, _slicedToArray2["default"])(_useState9, 2),
2393
2550
  extraValue = _useState0[0],
@@ -2403,7 +2560,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2403
2560
  }, [reducers]);
2404
2561
  return setExtraValue;
2405
2562
  }),
2406
- result = _renderHook39.result;
2563
+ result = _renderHook41.result;
2407
2564
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
2408
2565
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
2409
2566
  (0, _react.act)(function () {
@@ -2415,7 +2572,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2415
2572
  (0, _globals.test)('empty `deps` should not update reducers', function () {
2416
2573
  var onUpdate = _globals.jest.fn();
2417
2574
  var onDeepUpdate = _globals.jest.fn();
2418
- var _renderHook40 = (0, _react.renderHook)(function () {
2575
+ var _renderHook42 = (0, _react.renderHook)(function () {
2419
2576
  var _useState1 = (0, _react2.useState)(0),
2420
2577
  _useState10 = (0, _slicedToArray2["default"])(_useState1, 2),
2421
2578
  extraValue = _useState10[0],
@@ -2431,7 +2588,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2431
2588
  }, [reducers]);
2432
2589
  return setExtraValue;
2433
2590
  }),
2434
- result = _renderHook40.result;
2591
+ result = _renderHook42.result;
2435
2592
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
2436
2593
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
2437
2594
  (0, _react.act)(function () {