@mic-rexjs/usecases-react 2.9.2 → 2.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.min.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see index.min.js.LICENSE.txt */
2
- (()=>{var t={20:(t,e,n)=>{"use strict";var r=n(594),o=Symbol.for("react.element"),u=(Symbol.for("react.fragment"),Object.prototype.hasOwnProperty),a=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,i={key:!0,ref:!0,__self:!0,__source:!0};e.jsx=function(t,e,n){var r,c={},l=null,f=null;for(r in void 0!==n&&(l=""+n),void 0!==e.key&&(l=""+e.key),void 0!==e.ref&&(f=e.ref),e)u.call(e,r)&&!i.hasOwnProperty(r)&&(c[r]=e[r]);if(t&&t.defaultProps)for(r in e=t.defaultProps)void 0===c[r]&&(c[r]=e[r]);return{$$typeof:o,type:t,key:l,ref:f,props:c,_owner:a.current}}},848:(t,e,n)=>{"use strict";t.exports=n(20)},594:t=>{"use strict";t.exports=React}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var u=e[r]={exports:{}};return t[r](u,u.exports,n),u.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var r={};(()=>{"use strict";n.r(r),n.d(r,{UseCaseFragment:()=>x,useUseCase:()=>_});var t=n(848),e=n(594),o=n.n(e);function u(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function a(t,e){if(t){if("string"==typeof t)return u(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(t,e):void 0}}function i(t){return function(t){if(Array.isArray(t))return u(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||a(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,u,a,i=[],c=!0,l=!1;try{if(u=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=u.call(n)).done)&&(i.push(r.value),i.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(l)throw o}}return i}}(t,e)||a(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}const l=ahooks;var f=function(t){return c((0,e.useState)((function(){return t})),1)[0]},s=function(t){return c((0,e.useState)(t),1)[0]};const y=usecases;var v,d;!function(t){t[t.None=0]="None",t[t.Entity=2]="Entity"}(v||(v={})),function(t){t[t.None=0]="None",t[t.RootEnabled=2]="RootEnabled",t[t.ContextEnabled=4]="ContextEnabled",t[t.EntityEnabled=8]="EntityEnabled",t[t.ContextRootEnabled=6]="ContextRootEnabled",t[t.EntityRootEnabled=14]="EntityRootEnabled"}(d||(d={}));var b=(0,y.createUseCase)((function(){var t=new Map,n=(0,e.createContext)(null);return function(){return{createContextValue:function(t,e,n){return(n&d.EntityEnabled)===d.EntityEnabled?{store:t,reducers:e,statuses:n}:{reducers:e,statuses:n}},registerUseCase:function(r,o){if(t.has(r)){var u=t.get(r),a=u.value,i=u.times;return t.set(r,{value:a,times:i+1}),a}if((o&v.Entity)!==v.Entity)return n;var c=(0,e.createContext)(null);return t.set(r,{value:c,times:1}),c},unregisterUseCase:function(e,n){if((n&v.Entity)!==v.Entity)return!1;if(!t.has(e))return!1;var r=t.get(e),o=r.value,u=r.times;return 1===u?t.delete(e):t.set(e,{value:o,times:u-1}),!0}}}})),p=function(){return s((function(){return b()}))};function E(t){return E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},E(t)}function m(t){var e=function(t,e){if("object"!=E(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,"string");if("object"!=E(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==E(e)?e:String(e)}var h=["watch","onChange","options"];function g(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function O(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?g(Object(n),!0).forEach((function(e){var r,o,u;r=t,o=e,u=n[e],(o=m(o))in r?Object.defineProperty(r,o,{value:u,enumerable:!0,configurable:!0,writable:!0}):r[o]=u})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}var w=function(t,e){var n=t.length;if(n!==e.length)return!1;for(var r=0;r<n;r++)if(t[r]!==e[r])return!1;return!0},j=function(t,e){var n,r=e||{},o=r.onShouldCache,u=void 0===o?function(){return!0}:o,a=r.onCompare,i=void 0===a?function(t,e){return w(t,e)}:a;return function(){for(var e=u(),r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];if(n&&e){var c=n,l=c.parameters,f=c.returnValue;if(i(l,o))return f}var s=t.apply(void 0,o);return e&&(n={parameters:o,returnValue:s}),s}},S=function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=(0,l.useLatest)(n),u=(0,l.useCreation)((function(){return j(o.current,{onCompare:function(){return!0}})}),[r,o]);return(0,l.useCreation)((function(){return(e&d.RootEnabled)!==d.RootEnabled&&t?t:u()}),[e,t,u])},C=function(t,e){return"object"===E(t)&&null!==t&&Object.hasOwn(t,e)},R=function t(e,n,r,o){var u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],a=void 0,l=c(r.match(/^([^.]+)\.(.+)$/)||[],3),f=l[1],s=void 0===f?r:f,y=l[2],v=void 0===y?"":y,d=C(e,s),b=C(n,s),p=[].concat(i(u),[s]);if(d||b){var E=d?e[s]:a,m=b?n[s]:a;if(v)return void t(E,m,v,o,p);if(E===m)return;o(E,m,p)}else if(!/^\d+^/.test(s))for(var h=Array.isArray(e)?e:[],g=Array.isArray(n)?n:[],O=h.length,w=g.length,j=Math.max(O,w),S=0;S<j;S++)t(h[S],g[S],r,o,[].concat(i(u),["".concat(S)]))},P=function(t,e,n){for(var r=function(){var t=c(u[o],2),r=t[0],a=t[1];R(n,e,r,(function(t,r,o){a({fieldPaths:o,newEntity:e,oldEntity:n,newValue:r,oldValue:t})}))},o=0,u=Object.entries(t);o<u.length;o++)r()},_=function(){for(var t,n=((t=(0,e.useRef)(!0)).current=!0,(0,e.useEffect)((function(){t.current=!1})),t),r=arguments.length,u=new Array(r),a=0;a<r;a++)u[a]=arguments[a];var b=function(t){return s((function(){var e=v.None;return"function"===E(c(t,2)[1])&&(e|=v.Entity),e}))}(u),m=function(t,e){var n=c(t,4),r=n[0],o=n[1],u=n[2],a=n[3];return(e&v.Entity)!==v.Entity?[null,r,o||{},u||[]]:[r,o,u||{},a||[]]}(u,b),g=c(m,4),C=g[0],R=g[1],_=g[2],x=g[3],A=f(R),U=A,M=A,N=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:v.None,n=p(),r=n.registerUseCase,o=n.unregisterUseCase,u=s((function(){return r(t,e)}));return(0,l.useUnmount)((function(){o(t,e)})),u}(A,b),I=(0,e.useContext)(N),k=I,T=function(t,e){return(0,l.useCreation)((function(){var n=d.None,r=(e||{}).store;return(t&v.Entity)===v.Entity&&(n|=d.EntityRootEnabled),n|=e?d.ContextEnabled:d.RootEnabled,r&&(n|=d.EntityEnabled),n}),[t,e])}(b,I),L=(0,l.useLatest)(_),D=function(t){var n=(0,e.useRef)(0),r=(0,e.useRef)([]),o=r.current,u=w(t,o);return r.current=t,n.current+=u?0:1,n.current}(x),V=(I||{}).reducers,F=void 0===V?null:V,$=(k||{}).store,z=c(function(t,n,r,o,u){var a=(0,l.useUpdate)(),i=(0,e.useRef)(),c=(0,l.useLatest)(o),f=r?r.value:null,s=(t&d.EntityEnabled)===d.EntityEnabled,v=(t&d.EntityRootEnabled)===d.EntityRootEnabled,b=S(r,t,(function(){var t;if(v){var e,r="function"==typeof n?n(null===(e=i.current)||void 0===e?void 0:e.value):n;t=new y.EntityStore(r)}else t=new y.EntityStore(null);return i.current=t,t}),u),p=function(t,n,r,o){var u=(0,e.useRef)(n);if((o&d.EntityRootEnabled)!==d.EntityRootEnabled)return r;var a="function"==typeof n,i=u.current;switch(!0){case a:case i===n:return t.value}return u.current=n,n}(b,n,f,t),E=(0,l.useMemoizedFn)((function(t,e){var n=c.current,r=n.onChange,o=n.watch;o&&P(o,t,e),null==r||r(t,e),v&&a()}));return v&&(b.value=p),(0,l.useCreation)((function(){s&&b.watch(E)}),[s,b,E]),(0,e.useEffect)((function(){return function(){b.unwatch(E)}}),[s,b,E]),(0,l.useCreation)((function(){return[p,b]}),[p,b])}(T,C,void 0===$?null:$,_,D),2),B=z[0],G=z[1],W=S(F,T,(function(){var t,e,n,r=(t=_,e=function(t,e){var n,r;return null===(n=(r=L.current)[t])||void 0===n?void 0:n.call.apply(n,[r].concat(i(e)))},n={},Object.keys(t).forEach((function(r){var o=t[r];n[r]="function"!=typeof o?o:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return e(r,n)}})),n);return(T&d.EntityEnabled)!==d.EntityEnabled?U(r):function(t,e,n){n.watch,n.onChange;var r=n.options,o=function(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n,r,o={},u=Object.keys(t);for(r=0;r<u.length;r++)n=u[r],e.indexOf(n)>=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r<u.length;r++)n=u[r],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}(n,h);return(0,y.createEntityReducers)(e,t,O(O(O({},o),r),{},{onGenerate:function(t,e){return e}}))}(M,G,r)}),D),Y=function(t,n,r,u){var a=r.value,i=p().createContextValue,c=(0,e.useMemo)((function(){return i(r,u,t)}),[t,a,r,u,i]),s=(0,l.useLatest)(c);return f((function(t){var e=t.children,r=t.with,u=void 0===r?[]:r,a=n.Provider,i=s.current;return o().createElement(a,{value:i},u.reduceRight((function(t,e){return o().createElement(e,{},t)}),e))}))}(T,N,G,W);return(0,l.useCreation)((function(){if((T&d.EntityEnabled)!==d.EntityEnabled)return W;var t=(T&d.RootEnabled)===d.RootEnabled,e=function(t,e){var n={};return Object.entries(t).forEach((function(t){var r=c(t,2),o=r[0],u=r[1];n[o]=j(u,e)})),n}(W,{onShouldCache:function(){return n.current}});return t?[B,e,Y]:[B,e]}),[T,B,W,Y,n])},x=function(n){var r=n.usecase,o=n.watch,u=n.onChange;return _(r,{watch:o,onChange:u}),(0,t.jsx)(e.Fragment,{})}})();var o=usecases="undefined"==typeof usecases?{}:usecases;for(var u in r)o[u]=r[u];r.__esModule&&Object.defineProperty(o,"__esModule",{value:!0})})();
2
+ (()=>{var t={20:(t,e,r)=>{"use strict";var n=r(594),o=Symbol.for("react.element"),u=(Symbol.for("react.fragment"),Object.prototype.hasOwnProperty),i=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,a={key:!0,ref:!0,__self:!0,__source:!0};e.jsx=function(t,e,r){var n,c={},f=null,l=null;for(n in void 0!==r&&(f=""+r),void 0!==e.key&&(f=""+e.key),void 0!==e.ref&&(l=e.ref),e)u.call(e,n)&&!a.hasOwnProperty(n)&&(c[n]=e[n]);if(t&&t.defaultProps)for(n in e=t.defaultProps)void 0===c[n]&&(c[n]=e[n]);return{$$typeof:o,type:t,key:f,ref:l,props:c,_owner:i.current}}},848:(t,e,r)=>{"use strict";t.exports=r(20)},594:t=>{"use strict";t.exports=React}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var u=e[n]={exports:{}};return t[n](u,u.exports,r),u.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};(()=>{"use strict";r.r(n),r.d(n,{UseCaseFragment:()=>A,useUseCase:()=>x});var t=r(848),e=r(594),o=r.n(e);function u(t){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u(t)}function i(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=u(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=u(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==u(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function c(t,e){if(t){if("string"==typeof t)return a(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(t,e):void 0}}function f(t){return function(t){if(Array.isArray(t))return a(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||c(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,u,i,a=[],c=!0,f=!1;try{if(u=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=u.call(r)).done)&&(a.push(n.value),a.length!==e);c=!0);}catch(t){f=!0,o=t}finally{try{if(!c&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(f)throw o}}return a}}(t,e)||c(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}const s=ahooks;var y=function(t){return l((0,e.useState)((function(){return t})),1)[0]},v=function(t){return l((0,e.useState)(t),1)[0]};const b=usecases;var d,p;!function(t){t[t.None=0]="None",t[t.Entity=2]="Entity"}(d||(d={})),function(t){t[t.None=0]="None",t[t.RootEnabled=2]="RootEnabled",t[t.ContextEnabled=4]="ContextEnabled",t[t.EntityEnabled=8]="EntityEnabled",t[t.ContextRootEnabled=6]="ContextRootEnabled",t[t.EntityRootEnabled=14]="EntityRootEnabled"}(p||(p={}));var E=(0,b.createUseCase)((function(){var t=new Map,r=(0,e.createContext)(null);return function(){return{createContextValue:function(t,e,r){return(r&p.EntityEnabled)===p.EntityEnabled?{store:t,reducers:e,statuses:r}:{reducers:e,statuses:r}},registerUseCase:function(n,o){if(t.has(n)){var u=t.get(n),i=u.value,a=u.times;return t.set(n,{value:i,times:a+1}),i}if((o&d.Entity)!==d.Entity)return r;var c=(0,e.createContext)(null);return t.set(n,{value:c,times:1}),c},unregisterUseCase:function(e,r){if((r&d.Entity)!==d.Entity)return!1;if(!t.has(e))return!1;var n=t.get(e),o=n.value,u=n.times;return 1===u?t.delete(e):t.set(e,{value:o,times:u-1}),!0}}}})),h=function(){return v((function(){return E()}))};var m=["watch","onChange","options"];function O(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function g(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?O(Object(r),!0).forEach((function(e){i(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):O(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}var j=function(t,e){var r=t.length;if(r!==e.length)return!1;for(var n=0;n<r;n++)if(t[n]!==e[n])return!1;return!0},w=function(t,e){var r,n=e||{},o=n.onShouldCache,u=void 0===o?function(){return!0}:o,i=n.onCompare,a=void 0===i?function(t,e){return j(t,e)}:i;return function(){for(var e=u(),n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];if(r&&e){var c=r,f=c.parameters,l=c.returnValue;if(a(f,o))return l}var s=t.apply(void 0,o);return e&&(r={parameters:o,returnValue:s}),s}},S=function(t,e,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=(0,s.useLatest)(r),u=(0,s.useCreation)((function(){return w(o.current,{onCompare:function(){return!0}})}),[n,o]);return(0,s.useCreation)((function(){return(e&p.RootEnabled)!==p.RootEnabled&&t?t:u()}),[e,t,u])},C=function(t,e){return"object"===u(t)&&null!==t&&Object.hasOwn(t,e)},P=function t(e,r,n,o){var u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],i=void 0,a=l(n.match(/^([^.]+)\.(.+)$/)||[],3),c=a[1],s=void 0===c?n:c,y=a[2],v=void 0===y?"":y,b=C(e,s),d=C(r,s),p=[].concat(f(u),[s]);if(b||d){var E=b?e[s]:i,h=d?r[s]:i;if(v)return void t(E,h,v,o,p);if(E===h)return;o(E,h,p)}else if(!/^\d+^/.test(s))for(var m=Array.isArray(e)?e:[],O=Array.isArray(r)?r:[],g=m.length,j=O.length,w=Math.max(g,j),S=0;S<w;S++)t(m[S],O[S],n,o,[].concat(f(u),["".concat(S)]))},R=function(t,e,r){for(var n=function(){var t=l(u[o],2),n=t[0],i=t[1];P(r,e,n,(function(t,n,o){i({fieldPaths:o,newEntity:e,oldEntity:r,newValue:n,oldValue:t})}))},o=0,u=Object.entries(t);o<u.length;o++)n()};function _(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}var x=function(){for(var t,r=((t=(0,e.useRef)(!0)).current=!0,(0,e.useEffect)((function(){t.current=!1})),t),n=arguments.length,a=new Array(n),c=0;c<n;c++)a[c]=arguments[c];var E=function(t){return v((function(){var e=d.None;return"function"===u(l(t,2)[1])&&(e|=d.Entity),e}))}(a),O=function(t,e){var r=l(t,4),n=r[0],o=r[1],u=r[2],i=r[3];return(e&d.Entity)!==d.Entity?[null,n,o||{},u||[]]:[n,o,u||{},i||[]]}(a,E),C=l(O,4),P=C[0],x=C[1],A=C[2],U=C[3],D=y(x),M=D,N=D,k=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:d.None,r=h(),n=r.registerUseCase,o=r.unregisterUseCase,u=v((function(){return n(t,e)}));return(0,s.useUnmount)((function(){o(t,e)})),u}(D,E),I=(0,e.useContext)(k),T=I,L=function(t,e){return(0,s.useCreation)((function(){var r=p.None,n=(e||{}).store;return(t&d.Entity)===d.Entity&&(r|=p.EntityRootEnabled),r|=e?p.ContextEnabled:p.RootEnabled,n&&(r|=p.EntityEnabled),r}),[t,e])}(E,I),V=(0,s.useLatest)(A),F=function(t){var r=(0,e.useRef)(0),n=(0,e.useRef)([]),o=n.current,u=j(t,o);return n.current=t,r.current+=u?0:1,r.current}(U),$=(I||{}).reducers,z=void 0===$?null:$,B=(T||{}).store,G=l(function(t,r,n,o,u){var i=(0,s.useUpdate)(),a=(0,e.useRef)(),c=(0,s.useLatest)(o),f=n?n.value:null,l=(t&p.EntityEnabled)===p.EntityEnabled,y=(t&p.EntityRootEnabled)===p.EntityRootEnabled,v=S(n,t,(function(){var t;if(y){var e,n="function"==typeof r?r(null===(e=a.current)||void 0===e?void 0:e.value):r;t=new b.EntityStore(n)}else t=new b.EntityStore(null);return a.current=t,t}),u),d=function(t,r,n,o){var u=(0,e.useRef)(r);if((o&p.EntityRootEnabled)!==p.EntityRootEnabled)return n;var i="function"==typeof r,a=u.current;switch(!0){case i:case a===r:return t.value}return u.current=r,r}(v,r,f,t),E=(0,s.useMemoizedFn)((function(t,e){var r=c.current,n=r.onChange,o=r.watch;o&&R(o,t,e),null==n||n(t,e),y&&i()}));return y&&(v.value=d),(0,s.useCreation)((function(){l&&v.watch(E)}),[l,v,E]),(0,e.useEffect)((function(){return function(){v.unwatch(E)}}),[l,v,E]),(0,s.useCreation)((function(){return[d,v]}),[d,v])}(L,P,void 0===B?null:B,A,F),2),W=G[0],Y=G[1],q=S(z,L,(function(){var t,e,r,n=(t=A,e=function(t,e){var r,n;return null===(r=(n=V.current)[t])||void 0===r?void 0:r.call.apply(r,[n].concat(f(e)))},r={},Object.keys(t).forEach((function(n){var o=t[n];r[n]="function"!=typeof o?o:function(){for(var t=arguments.length,r=new Array(t),o=0;o<t;o++)r[o]=arguments[o];return e(n,r)}})),r);return(L&p.EntityEnabled)!==p.EntityEnabled?M(n):function(t,e,r){r.watch,r.onChange;var n=r.options,o=function(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r,n,o={},u=Object.keys(t);for(n=0;n<u.length;n++)r=u[n],e.indexOf(r)>=0||(o[r]=t[r]);return o}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(n=0;n<u.length;n++)r=u[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}(r,m);return(0,b.createEntityReducers)(e,t,g(g(g({},o),n),{},{onGenerate:function(t,e){return e}}))}(N,Y,n)}),F),H=function(t,r,n,u){var i=n.value,a=h().createContextValue,c=(0,e.useMemo)((function(){return a(n,u,t)}),[t,i,n,u,a]),f=(0,s.useLatest)(c);return y((function(t){var e=t.children,n=t.with,u=void 0===n?[]:n,i=r.Provider,a=f.current;return o().createElement(i,{value:a},u.reduceRight((function(t,e){return o().createElement(e,{},t)}),e))}))}(L,k,Y,q);return(0,s.useCreation)((function(){if((L&p.EntityEnabled)!==p.EntityEnabled)return q;var t=(L&p.RootEnabled)===p.RootEnabled,e=function(t,e){var r={};return Object.entries(t).forEach((function(t){var n=l(t,2),o=n[0],u=n[1];r[o]=w(u,e)})),r}(q,{onShouldCache:function(){return r.current}}),n="object"===u(W)&&null!==W?function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?_(Object(r),!0).forEach((function(e){i(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):_(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}({},W):W;return t?[n,e,H]:[n,e]}),[L,W,q,H,r])},A=function(r){var n=r.usecase,o=r.watch,u=r.onChange;return x(n,{watch:o,onChange:u}),(0,t.jsx)(e.Fragment,{})}})();var o=usecases="undefined"==typeof usecases?{}:usecases;for(var u in n)o[u]=n[u];n.__esModule&&Object.defineProperty(o,"__esModule",{value:!0})})();
@@ -52,9 +52,12 @@ export const useUseCase = ((...args) => {
52
52
  return isRenderingRef.current;
53
53
  },
54
54
  });
55
+ const isObjectEntity = typeof entity === 'object' && entity !== null;
56
+ // 这里是为了让访问器 `getter` 的值保持唯一性,否则每次 `getter` 返回的对象都是新对象,无法用于 `deps`
57
+ const newEntity = isObjectEntity ? { ...entity } : entity;
55
58
  if (rootEnabled) {
56
- return [entity, cachedReducers, Provider];
59
+ return [newEntity, cachedReducers, Provider];
57
60
  }
58
- return [entity, cachedReducers];
61
+ return [newEntity, cachedReducers];
59
62
  }, [statuses, entity, reducers, Provider, isRenderingRef]);
60
63
  });
@@ -4,7 +4,7 @@ import { beforeEach, describe, expect, jest, test } from '@jest/globals';
4
4
  import { renderHook, act, render, fireEvent, screen } from '@testing-library/react';
5
5
  import { useUseCase } from '.';
6
6
  import { useDeepCompareEffect, useMemoizedFn, useMount, useUpdate, useUpdateEffect } from 'ahooks';
7
- import { Fragment, useEffect, useRef, useState } from 'react';
7
+ import { Fragment, useEffect, useMemo, useRef, useState } from 'react';
8
8
  const EXT_1 = '.png';
9
9
  const EXT_2 = '.jpg';
10
10
  const PATH_1 = `hello${EXT_1}`;
@@ -141,7 +141,7 @@ describe('useUseCase', () => {
141
141
  });
142
142
  const { current: cores } = result;
143
143
  const [entity] = cores;
144
- expect(entity).toBe(defaultFile);
144
+ expect(entity).toEqual(defaultFile);
145
145
  });
146
146
  test('Should return the `EntityStore.value` if root entity has not changed', () => {
147
147
  const { result } = renderHook(() => {
@@ -189,8 +189,57 @@ describe('useUseCase', () => {
189
189
  const { current: [currentFile], } = result;
190
190
  expect(currentFile).toEqual(file);
191
191
  });
192
+ test('Entity property getter should always return the same object if nothing changed after component update', () => {
193
+ let updateTimes = 0;
194
+ const data = {
195
+ x: 1,
196
+ get obj() {
197
+ return {};
198
+ },
199
+ };
200
+ const { rerender } = renderHook(() => {
201
+ const collection = useUseCase(data, objectUseCase);
202
+ const [{ obj }] = collection;
203
+ useMemo(() => {
204
+ void obj;
205
+ updateTimes++;
206
+ }, [obj]);
207
+ return collection;
208
+ });
209
+ expect(updateTimes).toEqual(1);
210
+ act(() => {
211
+ rerender();
212
+ });
213
+ expect(updateTimes).toEqual(1);
214
+ });
215
+ test('Entity property getter should always return a new object if something changed after component update', () => {
216
+ let updateTimes = 0;
217
+ const data = {
218
+ x: 1,
219
+ get obj() {
220
+ return {};
221
+ },
222
+ };
223
+ const { result } = renderHook(() => {
224
+ const collection = useUseCase(data, objectUseCase);
225
+ const [{ obj }] = collection;
226
+ useMemo(() => {
227
+ void obj;
228
+ updateTimes++;
229
+ }, [obj]);
230
+ return collection;
231
+ });
232
+ const { current } = result;
233
+ const [, { setEntity }] = current;
234
+ expect(updateTimes).toEqual(1);
235
+ act(() => {
236
+ setEntity({ x: 2 });
237
+ });
238
+ expect(updateTimes).toEqual(2);
239
+ });
192
240
  test('Entity getter should provide the first argument with current entity when deps has change.', () => {
193
241
  let entityArg;
242
+ let times = 0;
194
243
  const file = defaultFile;
195
244
  const { result } = renderHook(() => {
196
245
  return useUseCase((entity = file) => {
@@ -200,7 +249,7 @@ describe('useUseCase', () => {
200
249
  ...entity,
201
250
  path: path + '1',
202
251
  };
203
- }, fileUseCase, {}, [Date.now()]);
252
+ }, fileUseCase, {}, [times++]);
204
253
  });
205
254
  const { current: collection1 } = result;
206
255
  const [currentFile1, { setPath }] = collection1;
@@ -5,6 +5,8 @@ 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
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
8
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
12
  var _ahooks = require("ahooks");
@@ -23,6 +25,8 @@ var _cacheCalls = require("../../methods/cacheCalls");
23
25
  var _useCompareDeps = require("../useCompareDeps");
24
26
  var _captureCalls = require("../../methods/captureCalls");
25
27
  var _useFullArguments = require("../useFullArguments");
28
+ 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
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26
30
  var useUseCase = exports.useUseCase = function useUseCase() {
27
31
  var isRenderingRef = (0, _useIsRenderingRef.useIsRenderingRef)();
28
32
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
@@ -76,9 +80,12 @@ var useUseCase = exports.useUseCase = function useUseCase() {
76
80
  return isRenderingRef.current;
77
81
  }
78
82
  });
83
+ var isObjectEntity = (0, _typeof2["default"])(entity) === 'object' && entity !== null;
84
+ // 这里是为了让访问器 `getter` 的值保持唯一性,否则每次 `getter` 返回的对象都是新对象,无法用于 `deps`
85
+ var newEntity = isObjectEntity ? _objectSpread({}, entity) : entity;
79
86
  if (rootEnabled) {
80
- return [entity, cachedReducers, Provider];
87
+ return [newEntity, cachedReducers, Provider];
81
88
  }
82
- return [entity, cachedReducers];
89
+ return [newEntity, cachedReducers];
83
90
  }, [statuses, entity, reducers, Provider, isRenderingRef]);
84
91
  };
@@ -265,7 +265,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
265
265
  var cores = result.current;
266
266
  var _cores = (0, _slicedToArray2["default"])(cores, 1),
267
267
  entity = _cores[0];
268
- (0, _globals.expect)(entity).toBe(defaultFile);
268
+ (0, _globals.expect)(entity).toEqual(defaultFile);
269
269
  });
270
270
  (0, _globals.test)('Should return the `EntityStore.value` if root entity has not changed', function () {
271
271
  var _renderHook3 = (0, _react.renderHook)(function () {
@@ -334,10 +334,66 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
334
334
  currentFile = _result$current[0];
335
335
  (0, _globals.expect)(currentFile).toEqual(file);
336
336
  });
337
+ (0, _globals.test)('Entity property getter should always return the same object if nothing changed after component update', function () {
338
+ var updateTimes = 0;
339
+ var data = {
340
+ x: 1,
341
+ get obj() {
342
+ return {};
343
+ }
344
+ };
345
+ var _renderHook7 = (0, _react.renderHook)(function () {
346
+ var collection = (0, _.useUseCase)(data, _usecases.objectUseCase);
347
+ var _collection3 = (0, _slicedToArray2["default"])(collection, 1),
348
+ obj = _collection3[0].obj;
349
+ (0, _react2.useMemo)(function () {
350
+ void obj;
351
+ updateTimes++;
352
+ }, [obj]);
353
+ return collection;
354
+ }),
355
+ rerender = _renderHook7.rerender;
356
+ (0, _globals.expect)(updateTimes).toEqual(1);
357
+ (0, _react.act)(function () {
358
+ rerender();
359
+ });
360
+ (0, _globals.expect)(updateTimes).toEqual(1);
361
+ });
362
+ (0, _globals.test)('Entity property getter should always return a new object if something changed after component update', function () {
363
+ var updateTimes = 0;
364
+ var data = {
365
+ x: 1,
366
+ get obj() {
367
+ return {};
368
+ }
369
+ };
370
+ var _renderHook8 = (0, _react.renderHook)(function () {
371
+ var collection = (0, _.useUseCase)(data, _usecases.objectUseCase);
372
+ var _collection4 = (0, _slicedToArray2["default"])(collection, 1),
373
+ obj = _collection4[0].obj;
374
+ (0, _react2.useMemo)(function () {
375
+ void obj;
376
+ updateTimes++;
377
+ }, [obj]);
378
+ return collection;
379
+ }),
380
+ result = _renderHook8.result;
381
+ var current = result.current;
382
+ var _current = (0, _slicedToArray2["default"])(current, 2),
383
+ setEntity = _current[1].setEntity;
384
+ (0, _globals.expect)(updateTimes).toEqual(1);
385
+ (0, _react.act)(function () {
386
+ setEntity({
387
+ x: 2
388
+ });
389
+ });
390
+ (0, _globals.expect)(updateTimes).toEqual(2);
391
+ });
337
392
  (0, _globals.test)('Entity getter should provide the first argument with current entity when deps has change.', function () {
338
393
  var entityArg;
394
+ var times = 0;
339
395
  var file = defaultFile;
340
- var _renderHook7 = (0, _react.renderHook)(function () {
396
+ var _renderHook9 = (0, _react.renderHook)(function () {
341
397
  return (0, _.useUseCase)(function () {
342
398
  var entity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : file;
343
399
  var path = entity.path;
@@ -345,13 +401,13 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
345
401
  return _objectSpread(_objectSpread({}, entity), {}, {
346
402
  path: path + '1'
347
403
  });
348
- }, fileUseCase, {}, [Date.now()]);
404
+ }, fileUseCase, {}, [times++]);
349
405
  }),
350
- result = _renderHook7.result;
406
+ result = _renderHook9.result;
351
407
  var collection1 = result.current;
352
- var _collection3 = (0, _slicedToArray2["default"])(collection1, 2),
353
- currentFile1 = _collection3[0],
354
- setPath = _collection3[1].setPath;
408
+ var _collection5 = (0, _slicedToArray2["default"])(collection1, 2),
409
+ currentFile1 = _collection5[0],
410
+ setPath = _collection5[1].setPath;
355
411
  (0, _globals.expect)(entityArg).toEqual(defaultFile);
356
412
  (0, _globals.expect)(currentFile1).toEqual(_objectSpread(_objectSpread({}, defaultFile), {}, {
357
413
  path: '1'
@@ -360,8 +416,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
360
416
  setPath('2');
361
417
  });
362
418
  var collection2 = result.current;
363
- var _collection4 = (0, _slicedToArray2["default"])(collection2, 1),
364
- currentFile2 = _collection4[0];
419
+ var _collection6 = (0, _slicedToArray2["default"])(collection2, 1),
420
+ currentFile2 = _collection6[0];
365
421
  (0, _globals.expect)(entityArg).toEqual(_objectSpread(_objectSpread({}, defaultFile), {}, {
366
422
  path: '2'
367
423
  }));
@@ -370,20 +426,20 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
370
426
  }));
371
427
  });
372
428
  (0, _globals.test)('`reducers` should be returned as an object', function () {
373
- var _renderHook8 = (0, _react.renderHook)(function () {
429
+ var _renderHook10 = (0, _react.renderHook)(function () {
374
430
  return (0, _.useUseCase)(defaultFile, fileUseCase);
375
431
  }),
376
- result = _renderHook8.result;
432
+ result = _renderHook10.result;
377
433
  var cores = result.current;
378
434
  var _cores2 = (0, _slicedToArray2["default"])(cores, 2),
379
435
  reducers = _cores2[1];
380
436
  (0, _globals.expect)((0, _typeof2["default"])(reducers)).toBe('object');
381
437
  });
382
438
  (0, _globals.test)('`Provider` should be returned as a function', function () {
383
- var _renderHook9 = (0, _react.renderHook)(function () {
439
+ var _renderHook11 = (0, _react.renderHook)(function () {
384
440
  return (0, _.useUseCase)(defaultFile, fileUseCase);
385
441
  }),
386
- result = _renderHook9.result;
442
+ result = _renderHook11.result;
387
443
  var cores = result.current;
388
444
  var _cores3 = (0, _slicedToArray2["default"])(cores, 3),
389
445
  Provider = _cores3[2];
@@ -391,11 +447,11 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
391
447
  });
392
448
  (0, _globals.test)('`usecase` should be called only once if deps has not provided', function () {
393
449
  var mockUseCase = _globals.jest.fn(fileUseCase);
394
- var _renderHook10 = (0, _react.renderHook)(function () {
450
+ var _renderHook12 = (0, _react.renderHook)(function () {
395
451
  return (0, _.useUseCase)(defaultFile, mockUseCase);
396
452
  }),
397
- result = _renderHook10.result,
398
- rerender = _renderHook10.rerender;
453
+ result = _renderHook12.result,
454
+ rerender = _renderHook12.rerender;
399
455
  var cores = result.current;
400
456
  var _cores4 = (0, _slicedToArray2["default"])(cores, 2),
401
457
  setEntity = _cores4[1].setEntity;
@@ -408,11 +464,11 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
408
464
  });
409
465
  (0, _globals.test)('`usecase` should be called only once if deps has not changed', function () {
410
466
  var mockUseCase = _globals.jest.fn(fileUseCase);
411
- var _renderHook11 = (0, _react.renderHook)(function () {
467
+ var _renderHook13 = (0, _react.renderHook)(function () {
412
468
  return (0, _.useUseCase)(defaultFile, mockUseCase, {}, [1, 'x']);
413
469
  }),
414
- result = _renderHook11.result,
415
- rerender = _renderHook11.rerender;
470
+ result = _renderHook13.result,
471
+ rerender = _renderHook13.rerender;
416
472
  var cores = result.current;
417
473
  var _cores5 = (0, _slicedToArray2["default"])(cores, 2),
418
474
  setEntity = _cores5[1].setEntity;
@@ -426,11 +482,11 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
426
482
  (0, _globals.test)('`usecase` should be called if deps has changed', function () {
427
483
  var i = 0;
428
484
  var mockUseCase = _globals.jest.fn(fileUseCase);
429
- var _renderHook12 = (0, _react.renderHook)(function () {
485
+ var _renderHook14 = (0, _react.renderHook)(function () {
430
486
  return (0, _.useUseCase)(defaultFile, mockUseCase, {}, [i++, 'x']);
431
487
  }),
432
- result = _renderHook12.result,
433
- rerender = _renderHook12.rerender;
488
+ result = _renderHook14.result,
489
+ rerender = _renderHook14.rerender;
434
490
  var cores = result.current;
435
491
  var _cores6 = (0, _slicedToArray2["default"])(cores, 2),
436
492
  setEntity = _cores6[1].setEntity;
@@ -445,7 +501,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
445
501
  (0, _globals.test)('after call non-generator reducer, it should not trigger update', function () {
446
502
  var onUpdate = _globals.jest.fn();
447
503
  var onDeepUpdate = _globals.jest.fn();
448
- var _renderHook13 = (0, _react.renderHook)(function () {
504
+ var _renderHook15 = (0, _react.renderHook)(function () {
449
505
  var context = (0, _.useUseCase)(defaultFile, fileUseCase);
450
506
  var _context4 = (0, _slicedToArray2["default"])(context, 2),
451
507
  reducers = _context4[1];
@@ -465,7 +521,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
465
521
  update();
466
522
  };
467
523
  }),
468
- result = _renderHook13.result;
524
+ result = _renderHook15.result;
469
525
  (0, _react.act)(function () {
470
526
  result.current();
471
527
  });
@@ -479,13 +535,13 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
479
535
  });
480
536
  (0, _globals.test)('after `yield entity`, it should trigger update', function () {
481
537
  var onUpdate = _globals.jest.fn();
482
- var _renderHook14 = (0, _react.renderHook)(function () {
538
+ var _renderHook16 = (0, _react.renderHook)(function () {
483
539
  (0, _ahooks.useUpdateEffect)(function () {
484
540
  onUpdate();
485
541
  });
486
542
  return (0, _.useUseCase)(defaultFile, fileUseCase);
487
543
  }),
488
- result = _renderHook14.result;
544
+ result = _renderHook16.result;
489
545
  var cores = result.current;
490
546
  var _cores7 = (0, _slicedToArray2["default"])(cores, 2),
491
547
  entity = _cores7[0],
@@ -510,17 +566,17 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
510
566
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(1);
511
567
  });
512
568
  (0, _globals.test)('after `yield entity` on async mode, it should trigger update', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
513
- var onUpdate, _renderHook15, result, cores, _cores8, entity, reducers, readFile, promise;
569
+ var onUpdate, _renderHook17, result, cores, _cores8, entity, reducers, readFile, promise;
514
570
  return _regenerator["default"].wrap(function _callee3$(_context5) {
515
571
  while (1) switch (_context5.prev = _context5.next) {
516
572
  case 0:
517
573
  onUpdate = _globals.jest.fn();
518
- _renderHook15 = (0, _react.renderHook)(function () {
574
+ _renderHook17 = (0, _react.renderHook)(function () {
519
575
  (0, _ahooks.useUpdateEffect)(function () {
520
576
  onUpdate();
521
577
  });
522
578
  return (0, _.useUseCase)(defaultFile, fileUseCase);
523
- }), result = _renderHook15.result;
579
+ }), result = _renderHook17.result;
524
580
  cores = result.current;
525
581
  _cores8 = (0, _slicedToArray2["default"])(cores, 2), entity = _cores8[0], reducers = _cores8[1];
526
582
  readFile = reducers.readFile;
@@ -548,13 +604,13 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
548
604
  })));
549
605
  (0, _globals.test)('after `yield entity` callbacks, it should trigger update', function () {
550
606
  var onUpdate = _globals.jest.fn();
551
- var _renderHook16 = (0, _react.renderHook)(function () {
607
+ var _renderHook18 = (0, _react.renderHook)(function () {
552
608
  (0, _ahooks.useUpdateEffect)(function () {
553
609
  onUpdate();
554
610
  });
555
611
  return (0, _.useUseCase)(defaultFile, fileUseCase);
556
612
  }),
557
- result = _renderHook16.result;
613
+ result = _renderHook18.result;
558
614
  var cores = result.current;
559
615
  var _cores9 = (0, _slicedToArray2["default"])(cores, 2),
560
616
  reducers = _cores9[1];
@@ -691,12 +747,12 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
691
747
  });
692
748
  (0, _globals.test)('`options.onChange` should be trigger when entity has changed', function () {
693
749
  var onChange = _globals.jest.fn();
694
- var _renderHook17 = (0, _react.renderHook)(function () {
750
+ var _renderHook19 = (0, _react.renderHook)(function () {
695
751
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
696
752
  onChange: onChange
697
753
  });
698
754
  }),
699
- result = _renderHook17.result;
755
+ result = _renderHook19.result;
700
756
  var cores = result.current;
701
757
  var _cores10 = (0, _slicedToArray2["default"])(cores, 2),
702
758
  reducers = _cores10[1];
@@ -715,12 +771,12 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
715
771
  var onChange1 = _globals.jest.fn();
716
772
  var onChange2 = _globals.jest.fn();
717
773
  var onChange = onChange1;
718
- var _renderHook18 = (0, _react.renderHook)(function () {
774
+ var _renderHook20 = (0, _react.renderHook)(function () {
719
775
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
720
776
  onChange: onChange
721
777
  }, []);
722
778
  }),
723
- result = _renderHook18.result;
779
+ result = _renderHook20.result;
724
780
  var cores = result.current;
725
781
  var _cores11 = (0, _slicedToArray2["default"])(cores, 2),
726
782
  reducers = _cores11[1];
@@ -750,7 +806,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
750
806
  }));
751
807
  });
752
808
  (0, _globals.test)('`options.options` should override rest options', function () {
753
- var _renderHook19 = (0, _react.renderHook)(function () {
809
+ var _renderHook21 = (0, _react.renderHook)(function () {
754
810
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
755
811
  pathPrefix: 'xyz/',
756
812
  options: {
@@ -758,7 +814,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
758
814
  }
759
815
  });
760
816
  }),
761
- result = _renderHook19.result;
817
+ result = _renderHook21.result;
762
818
  var cores = result.current;
763
819
  var _cores12 = (0, _slicedToArray2["default"])(cores, 2),
764
820
  path = _cores12[0].path,
@@ -773,7 +829,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
773
829
  (0, _globals.test)('when `options` has changed, it should not trigger update', function () {
774
830
  var onUpdate = _globals.jest.fn();
775
831
  var onDeepUpdate = _globals.jest.fn();
776
- var _renderHook20 = (0, _react.renderHook)(function () {
832
+ var _renderHook22 = (0, _react.renderHook)(function () {
777
833
  var _useState = (0, _react2.useState)('user/'),
778
834
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
779
835
  pathPrefix = _useState2[0],
@@ -789,7 +845,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
789
845
  }, [context]);
790
846
  return setPathPrefix;
791
847
  }),
792
- result = _renderHook20.result;
848
+ result = _renderHook22.result;
793
849
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
794
850
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
795
851
  (0, _react.act)(function () {
@@ -801,7 +857,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
801
857
  (0, _globals.test)('when `deps` has changed, it should trigger update', function () {
802
858
  var onUpdate = _globals.jest.fn();
803
859
  var onDeepUpdate = _globals.jest.fn();
804
- var _renderHook21 = (0, _react.renderHook)(function () {
860
+ var _renderHook23 = (0, _react.renderHook)(function () {
805
861
  var _useState3 = (0, _react2.useState)('user/'),
806
862
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
807
863
  pathPrefix = _useState4[0],
@@ -817,7 +873,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
817
873
  }, [context]);
818
874
  return setPathPrefix;
819
875
  }),
820
- result = _renderHook21.result;
876
+ result = _renderHook23.result;
821
877
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
822
878
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
823
879
  (0, _react.act)(function () {
@@ -829,7 +885,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
829
885
  (0, _globals.test)('empty `deps` should not trigger update', function () {
830
886
  var onUpdate = _globals.jest.fn();
831
887
  var onDeepUpdate = _globals.jest.fn();
832
- var _renderHook22 = (0, _react.renderHook)(function () {
888
+ var _renderHook24 = (0, _react.renderHook)(function () {
833
889
  var _useState5 = (0, _react2.useState)('user/'),
834
890
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
835
891
  pathPrefix = _useState6[0],
@@ -845,7 +901,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
845
901
  }, [context]);
846
902
  return setPathPrefix;
847
903
  }),
848
- result = _renderHook22.result;
904
+ result = _renderHook24.result;
849
905
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
850
906
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
851
907
  (0, _react.act)(function () {
@@ -858,12 +914,12 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
858
914
  var onPathChange1 = _globals.jest.fn();
859
915
  var onPathChange2 = _globals.jest.fn();
860
916
  var onPathChange = onPathChange1;
861
- var _renderHook23 = (0, _react.renderHook)(function () {
917
+ var _renderHook25 = (0, _react.renderHook)(function () {
862
918
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
863
919
  onPathChange: onPathChange
864
920
  });
865
921
  }),
866
- result = _renderHook23.result;
922
+ result = _renderHook25.result;
867
923
  var context = result.current;
868
924
  var _context6 = (0, _slicedToArray2["default"])(context, 2),
869
925
  setPath = _context6[1].setPath;
@@ -884,7 +940,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
884
940
  (0, _globals.test)('`options.watch` should be trigger after entity changed', function () {
885
941
  var onPathChange = _globals.jest.fn();
886
942
  var onSizeChange = _globals.jest.fn();
887
- var _renderHook24 = (0, _react.renderHook)(function () {
943
+ var _renderHook26 = (0, _react.renderHook)(function () {
888
944
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
889
945
  watch: {
890
946
  path: onPathChange,
@@ -892,7 +948,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
892
948
  }
893
949
  });
894
950
  }),
895
- result = _renderHook24.result;
951
+ result = _renderHook26.result;
896
952
  var cores = result.current;
897
953
  var _cores13 = (0, _slicedToArray2["default"])(cores, 2),
898
954
  setPath = _cores13[1].setPath;
@@ -917,14 +973,14 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
917
973
  var onPathChange1 = _globals.jest.fn();
918
974
  var onPathChange2 = _globals.jest.fn();
919
975
  var onPathChange = onPathChange1;
920
- var _renderHook25 = (0, _react.renderHook)(function () {
976
+ var _renderHook27 = (0, _react.renderHook)(function () {
921
977
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
922
978
  watch: {
923
979
  path: onPathChange
924
980
  }
925
981
  });
926
982
  }),
927
- result = _renderHook25.result;
983
+ result = _renderHook27.result;
928
984
  var cores = result.current;
929
985
  var _cores14 = (0, _slicedToArray2["default"])(cores, 2),
930
986
  _cores14$ = _cores14[1],
@@ -972,7 +1028,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
972
1028
  var initialData = {};
973
1029
  var onExtChange = _globals.jest.fn();
974
1030
  var onSizeChange = _globals.jest.fn();
975
- var _renderHook26 = (0, _react.renderHook)(function () {
1031
+ var _renderHook28 = (0, _react.renderHook)(function () {
976
1032
  return (0, _.useUseCase)(initialData, fieldPathUseCase, {
977
1033
  watch: {
978
1034
  'list.ext': onExtChange,
@@ -980,7 +1036,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
980
1036
  }
981
1037
  });
982
1038
  }),
983
- result = _renderHook26.result;
1039
+ result = _renderHook28.result;
984
1040
  var cores = result.current;
985
1041
  var _cores15 = (0, _slicedToArray2["default"])(cores, 2),
986
1042
  setEntity = _cores15[1].setEntity;
@@ -1268,7 +1324,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1268
1324
  var lengthUseCase = function lengthUseCase() {
1269
1325
  return (0, _usecases.entityUseCase)();
1270
1326
  };
1271
- var _renderHook27 = (0, _react.renderHook)(function () {
1327
+ var _renderHook29 = (0, _react.renderHook)(function () {
1272
1328
  return (0, _.useUseCase)([], lengthUseCase, {
1273
1329
  watch: {
1274
1330
  length: onEntityLengthChange,
@@ -1276,7 +1332,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1276
1332
  }
1277
1333
  });
1278
1334
  }),
1279
- result = _renderHook27.result;
1335
+ result = _renderHook29.result;
1280
1336
  var cores = result.current;
1281
1337
  var _cores16 = (0, _slicedToArray2["default"])(cores, 2),
1282
1338
  setEntity = _cores16[1].setEntity;
@@ -1311,14 +1367,14 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1311
1367
  (0, _globals.test)('`options.watch` should work with field path of nested array', function () {
1312
1368
  var initialData = {};
1313
1369
  var onChange = _globals.jest.fn();
1314
- var _renderHook28 = (0, _react.renderHook)(function () {
1370
+ var _renderHook30 = (0, _react.renderHook)(function () {
1315
1371
  return (0, _.useUseCase)(initialData, fieldPathUseCase, {
1316
1372
  watch: {
1317
1373
  'nestedList.size': onChange
1318
1374
  }
1319
1375
  });
1320
1376
  }),
1321
- result = _renderHook28.result;
1377
+ result = _renderHook30.result;
1322
1378
  var cores = result.current;
1323
1379
  var _cores17 = (0, _slicedToArray2["default"])(cores, 2),
1324
1380
  setEntity = _cores17[1].setEntity;
@@ -1406,7 +1462,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1406
1462
  var initialData = {};
1407
1463
  var onExtChange = _globals.jest.fn();
1408
1464
  var onSizeChange = _globals.jest.fn();
1409
- var _renderHook29 = (0, _react.renderHook)(function () {
1465
+ var _renderHook31 = (0, _react.renderHook)(function () {
1410
1466
  return (0, _.useUseCase)(initialData, fieldPathUseCase, {
1411
1467
  watch: {
1412
1468
  'obj.file.ext': onExtChange,
@@ -1414,7 +1470,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1414
1470
  }
1415
1471
  });
1416
1472
  }),
1417
- result = _renderHook29.result;
1473
+ result = _renderHook31.result;
1418
1474
  var cores = result.current;
1419
1475
  var _cores18 = (0, _slicedToArray2["default"])(cores, 2),
1420
1476
  setEntity = _cores18[1].setEntity;
@@ -1968,38 +2024,38 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1968
2024
  });
1969
2025
  (0, _globals.describe)('`useUseCase` should work the same as `useReducers`', function () {
1970
2026
  (0, _globals.test)('`entity` should equal `defaultFile`', function () {
1971
- var _renderHook30 = (0, _react.renderHook)(function () {
2027
+ var _renderHook32 = (0, _react.renderHook)(function () {
1972
2028
  return (0, _.useUseCase)(mathUseCase);
1973
2029
  }),
1974
- result = _renderHook30.result;
2030
+ result = _renderHook32.result;
1975
2031
  var reducers = result.current;
1976
2032
  (0, _globals.expect)(Array.isArray(reducers)).toBe(false);
1977
2033
  });
1978
2034
  (0, _globals.test)('returned reducer should work', function () {
1979
- var _renderHook31 = (0, _react.renderHook)(function () {
2035
+ var _renderHook33 = (0, _react.renderHook)(function () {
1980
2036
  return (0, _.useUseCase)(mathUseCase);
1981
2037
  }),
1982
- result = _renderHook31.result;
2038
+ result = _renderHook33.result;
1983
2039
  var reducers = result.current;
1984
2040
  var add = reducers.add;
1985
2041
  (0, _globals.expect)(add(1, 2)).toBe(3);
1986
2042
  });
1987
2043
  (0, _globals.test)('`usecase` should be called only once if deps has not provided', function () {
1988
2044
  var mockUseCase = _globals.jest.fn(mathUseCase);
1989
- var _renderHook32 = (0, _react.renderHook)(function () {
2045
+ var _renderHook34 = (0, _react.renderHook)(function () {
1990
2046
  return (0, _.useUseCase)(mockUseCase);
1991
2047
  }),
1992
- rerender = _renderHook32.rerender;
2048
+ rerender = _renderHook34.rerender;
1993
2049
  (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
1994
2050
  rerender();
1995
2051
  (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
1996
2052
  });
1997
2053
  (0, _globals.test)('`usecase` should be called only once if deps has not changed', function () {
1998
2054
  var mockUseCase = _globals.jest.fn(mathUseCase);
1999
- var _renderHook33 = (0, _react.renderHook)(function () {
2055
+ var _renderHook35 = (0, _react.renderHook)(function () {
2000
2056
  return (0, _.useUseCase)(mockUseCase, {}, [1, 'x']);
2001
2057
  }),
2002
- rerender = _renderHook33.rerender;
2058
+ rerender = _renderHook35.rerender;
2003
2059
  (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
2004
2060
  rerender();
2005
2061
  (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
@@ -2007,10 +2063,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2007
2063
  (0, _globals.test)('`usecase` should be called if deps has changed', function () {
2008
2064
  var i = 0;
2009
2065
  var mockUseCase = _globals.jest.fn(mathUseCase);
2010
- var _renderHook34 = (0, _react.renderHook)(function () {
2066
+ var _renderHook36 = (0, _react.renderHook)(function () {
2011
2067
  return (0, _.useUseCase)(mockUseCase, {}, [i++, 'x']);
2012
2068
  }),
2013
- rerender = _renderHook34.rerender;
2069
+ rerender = _renderHook36.rerender;
2014
2070
  (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
2015
2071
  rerender();
2016
2072
  (0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(2);
@@ -2094,12 +2150,12 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2094
2150
  (0, _globals.expect)(subtractionReducer).toHaveReturnedWith(4);
2095
2151
  });
2096
2152
  (0, _globals.test)('`options.extraValue` should be added after call `add` method', function () {
2097
- var _renderHook35 = (0, _react.renderHook)(function () {
2153
+ var _renderHook37 = (0, _react.renderHook)(function () {
2098
2154
  return (0, _.useUseCase)(mathUseCase, {
2099
2155
  extraValue: 5
2100
2156
  });
2101
2157
  }),
2102
- result = _renderHook35.result;
2158
+ result = _renderHook37.result;
2103
2159
  var reducers = result.current;
2104
2160
  var add = reducers.add;
2105
2161
  (0, _globals.expect)(add(1, 2)).toBe(8);
@@ -2107,7 +2163,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2107
2163
  (0, _globals.test)('when `options` has changed, it should not trigger update', function () {
2108
2164
  var onUpdate = _globals.jest.fn();
2109
2165
  var onDeepUpdate = _globals.jest.fn();
2110
- var _renderHook36 = (0, _react.renderHook)(function () {
2166
+ var _renderHook38 = (0, _react.renderHook)(function () {
2111
2167
  var _useState7 = (0, _react2.useState)(0),
2112
2168
  _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
2113
2169
  extraValue = _useState8[0],
@@ -2123,7 +2179,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2123
2179
  }, [reducers]);
2124
2180
  return setExtraValue;
2125
2181
  }),
2126
- result = _renderHook36.result;
2182
+ result = _renderHook38.result;
2127
2183
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
2128
2184
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
2129
2185
  (0, _react.act)(function () {
@@ -2135,7 +2191,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2135
2191
  (0, _globals.test)('when `deps` change, it should update reducers', function () {
2136
2192
  var onUpdate = _globals.jest.fn();
2137
2193
  var onDeepUpdate = _globals.jest.fn();
2138
- var _renderHook37 = (0, _react.renderHook)(function () {
2194
+ var _renderHook39 = (0, _react.renderHook)(function () {
2139
2195
  var _useState9 = (0, _react2.useState)(0),
2140
2196
  _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
2141
2197
  extraValue = _useState10[0],
@@ -2151,7 +2207,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2151
2207
  }, [reducers]);
2152
2208
  return setExtraValue;
2153
2209
  }),
2154
- result = _renderHook37.result;
2210
+ result = _renderHook39.result;
2155
2211
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
2156
2212
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
2157
2213
  (0, _react.act)(function () {
@@ -2163,7 +2219,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2163
2219
  (0, _globals.test)('empty `deps` should not update reducers', function () {
2164
2220
  var onUpdate = _globals.jest.fn();
2165
2221
  var onDeepUpdate = _globals.jest.fn();
2166
- var _renderHook38 = (0, _react.renderHook)(function () {
2222
+ var _renderHook40 = (0, _react.renderHook)(function () {
2167
2223
  var _useState11 = (0, _react2.useState)(0),
2168
2224
  _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
2169
2225
  extraValue = _useState12[0],
@@ -2179,7 +2235,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2179
2235
  }, [reducers]);
2180
2236
  return setExtraValue;
2181
2237
  }),
2182
- result = _renderHook38.result;
2238
+ result = _renderHook40.result;
2183
2239
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
2184
2240
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
2185
2241
  (0, _react.act)(function () {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mic-rexjs/usecases-react",
3
- "version": "2.9.2",
3
+ "version": "2.9.3",
4
4
  "description": "React-based solution for use usecases of Clean Architecture",
5
5
  "private": false,
6
6
  "sideEffects": false,