@mic-rexjs/usecases-react 1.6.0 → 1.6.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.
package/dist/index.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! For license information please see index.min.js.LICENSE.txt */
|
|
2
|
-
!function(e,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r(require("react"),require("ahooks"),require("@mic-rexjs/usecases"));else if("function"==typeof define&&define.amd)define(["react","ahooks","@mic-rexjs/usecases"],r);else{var t="object"==typeof exports?r(require("react"),require("ahooks"),require("@mic-rexjs/usecases")):r(e.react,e.ahooks,e["@mic-rexjs/usecases"]);for(var n in t)("object"==typeof exports?exports:e)[n]=t[n]}}(this,((e,r,t)=>(()=>{"use strict";var n={251:(e,r,t)=>{var n=t(156),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};r.jsx=function(e,r,t){var n,c={},f=null,s=null;for(n in void 0!==t&&(f=""+t),void 0!==r.key&&(f=""+r.key),void 0!==r.ref&&(s=r.ref),r)u.call(r,n)&&!a.hasOwnProperty(n)&&(c[n]=r[n]);if(e&&e.defaultProps)for(n in r=e.defaultProps)void 0===c[n]&&(c[n]=r[n]);return{$$typeof:o,type:e,key:f,ref:s,props:c,_owner:i.current}}},893:(e,r,t)=>{e.exports=t(251)},112:e=>{e.exports=t},749:e=>{e.exports=r},156:r=>{r.exports=e}},o={};function u(e){var r=o[e];if(void 0!==r)return r.exports;var t=o[e]={exports:{}};return n[e](t,t.exports,u),t.exports}u.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return u.d(r,{a:r}),r},u.d=(e,r)=>{for(var t in r)u.o(r,t)&&!u.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},u.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),u.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{u.r(i),u.d(i,{UseCaseFragment:()=>C,useUseCase:()=>
|
|
2
|
+
!function(e,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r(require("react"),require("ahooks"),require("@mic-rexjs/usecases"));else if("function"==typeof define&&define.amd)define(["react","ahooks","@mic-rexjs/usecases"],r);else{var t="object"==typeof exports?r(require("react"),require("ahooks"),require("@mic-rexjs/usecases")):r(e.react,e.ahooks,e["@mic-rexjs/usecases"]);for(var n in t)("object"==typeof exports?exports:e)[n]=t[n]}}(this,((e,r,t)=>(()=>{"use strict";var n={251:(e,r,t)=>{var n=t(156),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};r.jsx=function(e,r,t){var n,c={},f=null,s=null;for(n in void 0!==t&&(f=""+t),void 0!==r.key&&(f=""+r.key),void 0!==r.ref&&(s=r.ref),r)u.call(r,n)&&!a.hasOwnProperty(n)&&(c[n]=r[n]);if(e&&e.defaultProps)for(n in r=e.defaultProps)void 0===c[n]&&(c[n]=r[n]);return{$$typeof:o,type:e,key:f,ref:s,props:c,_owner:i.current}}},893:(e,r,t)=>{e.exports=t(251)},112:e=>{e.exports=t},749:e=>{e.exports=r},156:r=>{r.exports=e}},o={};function u(e){var r=o[e];if(void 0!==r)return r.exports;var t=o[e]={exports:{}};return n[e](t,t.exports,u),t.exports}u.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return u.d(r,{a:r}),r},u.d=(e,r)=>{for(var t in r)u.o(r,t)&&!u.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},u.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),u.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{u.r(i),u.d(i,{UseCaseFragment:()=>C,useUseCase:()=>P});var e=u(893),r=u(156),t=u.n(r);function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function a(e,r){if(e){if("string"==typeof e)return o(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?o(e,r):void 0}}function c(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,o,u,i,a=[],c=!0,f=!1;try{if(u=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;c=!1}else for(;!(c=(n=u.call(t)).done)&&(a.push(n.value),a.length!==r);c=!0);}catch(e){f=!0,o=e}finally{try{if(!c&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(f)throw o}}return a}}(e,r)||a(e,r)||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.")}()}var f=u(749),s=function(e){return c((0,r.useState)(e),1)[0]},l=function(e,r){var t=e.length;if(t!==r.length)return!1;for(var n=0;n<t;n++)if(e[n]!==r[n])return!1;return!0};function y(e,r,t){return(r=function(e){var r=function(e,r){if("object"!==n(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,"string");if("object"!==n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===n(r)?r:String(r)}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}var p=u(112),v=["stateless","watch","onChange","options"];function b(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function d(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?b(Object(t),!0).forEach((function(r){y(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):b(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}var m=function(e,r){var t=e.indexOf(r);-1!==t&&e.splice(t,1)};function h(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||a(e)||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.")}()}var O=function(e,r){return"object"===n(e)&&null!==e&&Object.hasOwn(e,r)},g=function e(r,t,n,o){var u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],i=void 0,a=c(n.match(/^([^.]+)\.(.+)$/)||[],3),f=a[1],s=void 0===f?n:f,l=a[2],y=void 0===l?"":l,p=O(r,s),v=O(t,s),b=[].concat(h(u),[s]);if(p||v){var d=p?r[s]:i,m=v?t[s]:i;if(y)return void e(d,m,y,o,b);if(d===m)return;o(d,m,b)}else if(!/^\d+^/.test(s))for(var g=Array.isArray(r)?r:[],j=Array.isArray(t)?t:[],S=g.length,w=j.length,x=Math.max(S,w),P=0;P<x;P++)e(g[P],j[P],n,o,[].concat(h(u),["".concat(P)]))},j=function(e,r,t){for(var n=function(){var e=c(u[o],2),n=e[0],i=e[1];g(t,r,n,(function(e,n,o){i({fieldPaths:o,newEntity:r,oldEntity:t,newValue:n,oldValue:e})}))},o=0,u=Object.entries(e);o<u.length;o++)n()},S=new Map,w=(0,r.createContext)({}),x=function(e,r){for(var t={},n={},o=function(){var e=c(i[u],2),o=e[0],a=e[1];n[o]=function(){for(var e=t[o],n=r(),u=arguments.length,i=new Array(u),c=0;c<u;c++)i[c]=arguments[c];if(e&&n){var f=e.parameters,s=e.returnValue;if(l(f,i))return s}var y=a.apply(void 0,i);return n&&(t[o]={parameters:i,returnValue:y}),y}},u=0,i=Object.entries(e);u<i.length;u++)o();return n},P=function(e,o,u,i){var a,y,b,h,O,g,P,C=s("function"==typeof o),_=(C?u:o)||{},E=_.stateless,A=c((0,r.useState)(C&&!E?e:null),2),R=A[0],k=A[1],I=(b=(C?i:u)||[],h=(0,r.useRef)(0),O=(0,r.useRef)([]),g=O.current,P=l(b,g),O.current=b,h.current+=P?0:1,h.current),M=((a=(0,r.useRef)(!0)).current=!0,(0,r.useEffect)((function(){a.current=!1})),a),T=(y=C?o:e,c((0,r.useState)((function(){return y})),1)[0]),U=T,q=function(e,t){return s((function(){var n=S;if(n.has(e))return n.get(e);if(t)return t;var o=(0,r.createContext)({});return n.set(e,o),o}))}(U,C?null:w),D=(0,r.useContext)(q),F=D.entity,L=D.reducers,V=D.optionsRefCollection,$="object"===n(V),z=C||$,N=function(e,r,t){var n=(0,f.useLatest)(t),o=(0,f.useCreation)((function(){return e?[]:r}),[r,e]),u=(0,f.usePrevious)(o);return(0,f.useCreation)((function(){u&&m(u,n),o.push(n)}),[n,o,u]),(0,f.useUnmount)((function(){m(o,n)})),o}(C||!$,V||null,_),B=(0,f.useCreation)((function(){return C?function(e,r,t){return t?"function"==typeof r?r():r:e}(R,e,E):F}),[C,F,E,R,e]),G=(0,f.useMemoizedFn)((function(e,r){E||k(e),function(e,r,t){for(var n=e.length;n>0;n--){var o=e[n-1].current;if(o){var u=o.onChange,i=o.watch;i&&j(i,r,t),null==u||u(r,t)}}}(N,e,r)})),W=(0,f.useMemoizedFn)((function(){var e={},r={};return C?r=function(e,r,t,n){var o=(0,p.entityReducerUseCase)().createEntityReducers,u=(t.stateless,t.watch,t.onChange,t.options);return o(e,r,d(d(d({},function(e,r){if(null==e)return{};var t,n,o=function(e,r){if(null==e)return{};var t,n,o={},u=Object.keys(e);for(n=0;n<u.length;n++)t=u[n],r.indexOf(t)>=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(n=0;n<u.length;n++)t=u[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(t,v)),u),{},{onChange:n,onGenerate:function(e,r){return r}}))}(B,U,_,G):L?r=L:e=T(_),[e,r]})),Y=C?B:L,H=c((0,f.useCreation)((function(){return W()}),[W,I,Y]),2),J=H[0],K=H[1],Q=function(e,r,n,o){var u=(0,f.useCreation)((function(){return{entity:r,reducers:n,optionsRefCollection:o}}),[r,n,o]),i=(0,f.useLatest)(u);return s((function(){return function(r){var n=r.children,o=e.Provider;return t().createElement(o,{value:i.current},n)}}))}(q,B,K,N),X=(0,f.useMemoizedFn)((function(e,r){return[e,x(r,(function(){return M.current})),C?Q:null]}));return(0,f.useCreation)((function(){return z?X(B,K):J}),[z,B,K,J,X])},C=function(t){var n=t.usecase,o=t.watch,u=t.onChange;return P(n,{watch:o,onChange:u}),(0,e.jsx)(r.Fragment,{})}})(),i})()));
|
|
@@ -69,18 +69,19 @@ export const useUseCase = (arg1, arg2, arg3, arg4) => {
|
|
|
69
69
|
return createReducers();
|
|
70
70
|
}, [createReducers, depsKey, createReducersDep]);
|
|
71
71
|
const Provider = useProvider(context, entity, entityReducers, optionsRefCollection);
|
|
72
|
-
const
|
|
73
|
-
return
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
const createCoreCollection = useMemoizedFn((coreEntity, coreReducers) => {
|
|
73
|
+
return [
|
|
74
|
+
coreEntity,
|
|
75
|
+
cacheReducerCalls(coreReducers, () => {
|
|
76
|
+
return isRenderingRef.current;
|
|
77
|
+
}),
|
|
78
|
+
hasInitialEntity ? Provider : null,
|
|
79
|
+
];
|
|
76
80
|
});
|
|
77
|
-
const coreCollection = useCreation(() => {
|
|
78
|
-
return [entity, enableCache(entityReducers), hasInitialEntity ? Provider : null];
|
|
79
|
-
}, [hasInitialEntity, entity, entityReducers, Provider, enableCache]);
|
|
80
81
|
return useCreation(() => {
|
|
81
82
|
if (isContextMode) {
|
|
82
|
-
return
|
|
83
|
+
return createCoreCollection(entity, entityReducers);
|
|
83
84
|
}
|
|
84
|
-
return
|
|
85
|
-
}, [isContextMode,
|
|
85
|
+
return reducers;
|
|
86
|
+
}, [isContextMode, entity, entityReducers, reducers, createCoreCollection]);
|
|
86
87
|
};
|
|
@@ -1077,7 +1077,7 @@ describe('useUseCase', () => {
|
|
|
1077
1077
|
const { add } = reducers;
|
|
1078
1078
|
expect(add(1, 2)).toBe(3);
|
|
1079
1079
|
});
|
|
1080
|
-
test('reducer call should be cached if component is at rendering phase', () => {
|
|
1080
|
+
test('reducer call should not be cached if component is at rendering phase', () => {
|
|
1081
1081
|
const buttonText = 'button';
|
|
1082
1082
|
const CacheTestComponent = () => {
|
|
1083
1083
|
const { subtraction } = useUseCase(mathUseCase);
|
|
@@ -1093,7 +1093,9 @@ describe('useUseCase', () => {
|
|
|
1093
1093
|
expect(subtractionReducer).toHaveBeenCalledWith(5, 3);
|
|
1094
1094
|
expect(subtractionReducer).toHaveReturnedWith(2);
|
|
1095
1095
|
fireEvent.click(screen.getByText(buttonText));
|
|
1096
|
-
expect(subtractionReducer).toHaveBeenCalledTimes(
|
|
1096
|
+
expect(subtractionReducer).toHaveBeenCalledTimes(2);
|
|
1097
|
+
fireEvent.click(screen.getByText(buttonText));
|
|
1098
|
+
expect(subtractionReducer).toHaveBeenCalledTimes(3);
|
|
1097
1099
|
});
|
|
1098
1100
|
test('reducer call should not be cached if component is not at rendering phase', () => {
|
|
1099
1101
|
const buttonText = 'button';
|
|
@@ -83,19 +83,16 @@ var useUseCase = function useUseCase(arg1, arg2, arg3, arg4) {
|
|
|
83
83
|
reducers = _useCreation2[0],
|
|
84
84
|
entityReducers = _useCreation2[1];
|
|
85
85
|
var Provider = (0, _useProvider.useProvider)(context, entity, entityReducers, optionsRefCollection);
|
|
86
|
-
var
|
|
87
|
-
return (0, _cacheReducerCalls.cacheReducerCalls)(
|
|
86
|
+
var createCoreCollection = (0, _ahooks.useMemoizedFn)(function (coreEntity, coreReducers) {
|
|
87
|
+
return [coreEntity, (0, _cacheReducerCalls.cacheReducerCalls)(coreReducers, function () {
|
|
88
88
|
return isRenderingRef.current;
|
|
89
|
-
});
|
|
89
|
+
}), hasInitialEntity ? Provider : null];
|
|
90
90
|
});
|
|
91
|
-
var coreCollection = (0, _ahooks.useCreation)(function () {
|
|
92
|
-
return [entity, enableCache(entityReducers), hasInitialEntity ? Provider : null];
|
|
93
|
-
}, [hasInitialEntity, entity, entityReducers, Provider, enableCache]);
|
|
94
91
|
return (0, _ahooks.useCreation)(function () {
|
|
95
92
|
if (isContextMode) {
|
|
96
|
-
return
|
|
93
|
+
return createCoreCollection(entity, entityReducers);
|
|
97
94
|
}
|
|
98
|
-
return
|
|
99
|
-
}, [isContextMode,
|
|
95
|
+
return reducers;
|
|
96
|
+
}, [isContextMode, entity, entityReducers, reducers, createCoreCollection]);
|
|
100
97
|
};
|
|
101
98
|
exports.useUseCase = useUseCase;
|
|
@@ -1431,7 +1431,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1431
1431
|
var add = reducers.add;
|
|
1432
1432
|
(0, _globals.expect)(add(1, 2)).toBe(3);
|
|
1433
1433
|
});
|
|
1434
|
-
(0, _globals.test)('reducer call should be cached if component is at rendering phase', function () {
|
|
1434
|
+
(0, _globals.test)('reducer call should not be cached if component is at rendering phase', function () {
|
|
1435
1435
|
var buttonText = 'button';
|
|
1436
1436
|
var CacheTestComponent = function CacheTestComponent() {
|
|
1437
1437
|
var _useUseCase16 = (0, _.useUseCase)(mathUseCase),
|
|
@@ -1451,7 +1451,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1451
1451
|
(0, _globals.expect)(subtractionReducer).toHaveBeenCalledWith(5, 3);
|
|
1452
1452
|
(0, _globals.expect)(subtractionReducer).toHaveReturnedWith(2);
|
|
1453
1453
|
_react.fireEvent.click(_react.screen.getByText(buttonText));
|
|
1454
|
-
(0, _globals.expect)(subtractionReducer).toHaveBeenCalledTimes(
|
|
1454
|
+
(0, _globals.expect)(subtractionReducer).toHaveBeenCalledTimes(2);
|
|
1455
|
+
_react.fireEvent.click(_react.screen.getByText(buttonText));
|
|
1456
|
+
(0, _globals.expect)(subtractionReducer).toHaveBeenCalledTimes(3);
|
|
1455
1457
|
});
|
|
1456
1458
|
(0, _globals.test)('reducer call should not be cached if component is not at rendering phase', function () {
|
|
1457
1459
|
var buttonText = 'button';
|