@airma/react-state
Advanced tools
Comparing version 18.3.0-alpha.7 to 18.3.0-alpha.8
@@ -1,1 +0,1 @@ | ||
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react"),require("@airma/react-hooks-core")):"function"==typeof define&&define.amd?define(["react","@airma/react-hooks-core"],e):"object"==typeof exports?exports["@airma/react-state"]=e(require("react"),require("@airma/react-hooks-core")):t["@airma/react-state"]=e(t.react,t["@airma/react-hooks-core"])}(self,(function(t,e){return function(){"use strict";var n={309:function(t){t.exports=e},156:function(e){e.exports=t}},r={};function o(t){var e=r[t];if(void 0!==e)return e.exports;var c=r[t]={exports:{}};return n[t](c,c.exports,o),c.exports}o.d=function(t,e){for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var c={};return function(){function t(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 e(e,n){if(e){if("string"==typeof e)return t(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}}function n(t,n){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,c=[],u=!0,i=!1;try{for(n=n.call(t);!(u=(r=n.next()).done)&&(c.push(r.value),!e||c.length!==e);u=!0);}catch(t){i=!0,o=t}finally{try{u||null==n.return||n.return()}finally{if(i)throw o}}return c}}(t,n)||e(t,n)||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.")}()}function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function u(n){return function(e){if(Array.isArray(e))return t(e)}(n)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(n)||e(n)||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.")}()}o.r(c),o.d(c,{ConfigProvider:function(){return W},ModelProvider:function(){return _},Provider:function(){return T},StoreProvider:function(){return U},createKey:function(){return N},createKeyDangerously:function(){return Q},model:function(){return X},provide:function(){return B},shallowEqual:function(){return J},useControlledModel:function(){return q},useIsModelMatchedInStore:function(){return H},useModel:function(){return K},useRealtimeInstance:function(){return G},useRefresh:function(){return F},useRefreshModel:function(){return V},useSelector:function(){return $}});var i=o(156),a=o(309);function f(t){return f="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},f(t)}function s(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 l(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?s(Object(n),!0).forEach((function(e){r(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function p(t,e,n,r){var o=Object.keys(n),c={};return o.forEach((function(n){c[n]={get:function(){return r.get?r.get(t,n,e):t[n]},set:function(o){if(r.set){if(!r.set(t,n,o,e))throw new Error("".concat(n," in proxy target is not mutable"))}else t[n]=o}}})),c}var d=function(t,e){return"function"!=typeof Proxy?function(t,e){var n={},r=p(t,n,t,e),o=p(t,n,Object.getPrototypeOf(t),e);return Object.defineProperties(n,l(l({},o),r)),n}(t,e):new Proxy(t,e)};function y(t){return t&&"object"===f(t)}function v(t,e){if(Object.is(t,e))return!0;if(!y(t)||!y(e))return!1;var n=Object.keys(t),r=Object.keys(e);if(n.length!==r.length)return!1;var o=t,c=e;return!n.some((function(t){return!Object.prototype.hasOwnProperty.call(c,t)}))&&!r.some((function(t){var e=c[t],n=o[t];return!Object.is(e,n)}))}function h(t){var e={};return t.forEach((function(t){var r=n(t,2),o=r[0],c=r[1];e[o]=c})),{get:function(t){return e[t]}}}function g(){}function b(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 m(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?b(Object(n),!0).forEach((function(e){r(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):b(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function O(t,e){t.forEach((function(t){t(e)}))}var j={context:null};function S(t,e,n){n.start(),j.context=n.context;var r=t(e);return j.context=null,n.end(),r}function w(t,e){return function(n){var r=t.dispatching;if(function(e){var n=t.dispatching;if(!n){var r={value:e};return r.tail=r,void(t.dispatching=r)}var o=n.tail,c={prev:o,value:e};o.next=c,n.tail=c}(n),!r)for(var o=function(){var n=function(){var e=t.dispatching;if(e){var n=e.next,r=e.tail;if(r===e||!n)return t.dispatching=void 0,e;n.prev=void 0;var o=n;return o.tail=r,t.dispatching=o,e}}();if(n){var r=u(t.dispatches);try{"function"==typeof e?e((function(){O(r,n.value)})):O(r,n.value)}catch(e){throw t.dispatching=void 0,e}}else t.dispatching=void 0};t.dispatching;)o()}}function P(t,e,r){var o,c,i=(o={data:[],current:0,initialized:!1,working:!1},{context:{ref:c=function(t){var e=o.data,n=o.initialized;if(!o.working)throw new Error("Context hook only can be used in model refreshing time.");var r=o.current,c=e[r];if(o.current+=1,c)return c;if(n)throw new Error("Context hook should be used everytime, when model is refreshing.");var u={current:t};return e[r]=u,u},memo:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=c(void 0),o=function(){if(null==r.current)return[t(),e];var o=n(r.current,2),c=o[0];return v(o[1],e)?[c,void 0]:[t(),e]}(),u=n(o,2),i=u[0],a=u[1];return a&&(r.current=[i,a]),i}},start:function(){o.working=!0,o.current=0},end:function(){o.working=!1,o.initialized=!0}}),a=S(t,e,i),f=r||{},s=f.controlled,l=f.batchUpdate,p={current:a,reducer:t,dispatch:null,dispatches:[],cacheMethods:{},state:e,cacheState:null,controlled:!!s,notify:g};function y(t,e){var n=p.state,r=!(!e||!e.isDefault),o=!(!e||!e.ignoreDispatch);if(!r||!p.cacheState){var c=e?e.state:n;p.reducer=t,p.state=c,p.cacheState=e&&e.cache?{state:e.state}:p.cacheState,p.current=S(t,p.state,i),n===p.state||r||o||p.notify({state:p.state,type:""})}}function h(t){var e=p.dispatches,n=p.controlled,r=u(e);return!(r.indexOf(t)>=0)&&(n?(p.dispatches=[t],!1):(p.dispatches=r.concat(t),!0))}function b(t){t({state:p.state,type:""})}function O(t){if(t){var e=u(p.dispatches);p.dispatches=e.filter((function(e){return e!==t}))}else p.dispatches=[]}p.notify=w(p,l);var j=d(a,{get:function(t,e){var n=p.current[e];return Object.prototype.hasOwnProperty.call(p.current,e)&&"function"==typeof n?function(t,e,n){if(t.cacheMethods[e])return t.cacheMethods[e];var r=function(){for(var r=arguments.length,o=new Array(r),c=0;c<r;c++)o[c]=arguments[c];var u=t.current[e].apply(void 0,o),i=t.reducer,a=t.controlled,f={type:e,state:u};return a?(t.notify(f),u):(t.current=S(i,u,n),t.state=u,t.cacheState={state:u},t.notify({type:e,state:u}),u)};return t.cacheMethods[e]=r,r}(p,e,i):n}});return{agent:j,getCacheState:function(){return p.cacheState},getState:function(){return p.state},getCurrent:function(){if(Array.isArray(p.current))return p.current.map((function(t,e){return"function"==typeof t?j[e]:t}));var t=Object.keys(p.current),e=m({},p.current);return t.forEach((function(t){"function"==typeof e[t]&&(e[t]=j[t])})),e},getListeners:function(){return p.dispatches},update:y,updateState:function(t){y(p.reducer,{state:t,cache:!0})},notice:function(){b(p.notify)},tunnel:function(t){return{connect:function(){h(t)&&b(t)},disconnect:function(){O(t)}}},connect:function(t){h(t)&&b(t)},disconnect:O}}function k(t,e){var n=function(e){return t(e)};return n.creation=function(t){return P(n,e,t)},n.pipe=function(t){var e=function(e){return t(e)};return e.getSourceFrom=function(){return n},e},n}function x(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if("function"==typeof t&&"function"==typeof t.creation)return[{key:n.join("."),keys:n,factory:t,connection:t.creation(e)}];if(!t||"object"!==f(t))return[];var r=[],o=t;return Object.keys(o).forEach((function(t){var c=x(o[t],e,n.concat(t));r.push.apply(r,u(c))})),r}function E(t,e){var n=t;function r(t){var e=t.map((function(t){return t.connection})),n=function(t){return{get:function(e){var n=t.find((function(t){return t.factory===e||t.sourceFactory===e}));return n?n.connection:void 0}}}(t);return{collections:t,connections:e,instances:n}}var o=x(t,e),c=r(o),i={update:function(n){if(n===t)return m({},i);var a=x(n,e),f=r(function(t,e){var n=h(e.map((function(t){return[t.key,{connection:t.connection,factory:t.factory}]}))),r=h(t.map((function(t){return[t.key,{connection:t.connection,factory:t.factory}]}))),o=e.filter((function(t){var e=t.key;return!r.get(e)})),c=t.filter((function(t){var e=t.key;return!n.get(e)})),i=t.map((function(t){var e=t.key,r=t.connection,o=n.get(e);if(o){var c=o.connection,u=null==r.getCacheState()?c.getState():r.getState();return r.update(o.factory,{state:u}),m(m({},t),{},{factory:o.factory,sourceFactory:t.factory})}})).filter((function(t){return!!t}));return c.forEach((function(t){return t.connection.disconnect()})),[].concat(u(o),u(i))}(o,a)),s=f.instances,l=f.connections,p=f.collections;return c.instances=s,c.connections=l,c.collections=p,m({},i)},get:function(t){return c.instances.get(t)},equal:function(t){return t===n},destroy:function(){c.connections.forEach((function(t){return t.disconnect()}))}};return m({},i)}function C(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 D(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?C(Object(n),!0).forEach((function(e){r(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):C(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}var M="@@_airmaReactStateRealtimeInstancePropertyV18_@@",A=(0,i.createContext)(void 0);function I(t,e,n,r){var o=(r||{}).disabled,c=(0,i.useRef)(t),u=(0,i.useMemo)((function(){return P(t,e,{controlled:!0})}),[]);o||e===u.getState()&&t===c.current||(u.update(t,{state:e,ignoreDispatch:!0}),c.current=t);var f=(0,a.usePersistFn)((function(t){var r=t.state;e!==r&&(o||n(r))}));return u.connect(f),(0,i.useEffect)((function(){return u.connect(f),function(){u.disconnect(f)}}),[]),d(u.getCurrent(),{get:function(t,e,n){var r=t[e];return e===M?u.agent:r}})}function q(t,e,n){return I(t,e,n)}function F(t,e){var n=Array.isArray(e),r=n?e:e?e.refreshDeps:void 0,o=n?e:e&&e.variables||[],c=(0,a.usePersistFn)(t);(0,i.useEffect)((function(){var t=c.apply(void 0,u(o));return"function"==typeof t?t:function(){}}),r)}var R=(0,i.createContext)(null),T=function(t){var e=t.keys,n=t.value,r=t.children,o=null!=e?e:n;if(null==o)throw new Error("You need to provide keys to `Provider`");var c=((0,i.useContext)(A)||{}).batchUpdate,u=(0,i.useContext)(R),a=(0,i.useMemo)((function(){return E(o,{batchUpdate:c})}),[]),f=(0,i.useMemo)((function(){return D(D({},a.update(o)),{},{parent:u})}),[u,o]);return(0,i.createElement)(R.Provider,{value:f},r)},U=T,_=T;function z(t,e){var n=t.get(e);return!n&&t.parent?z(t.parent,e):n}function L(t,e,r){var o=t.getSourceFrom,c="function"==typeof o?o():void 0,u=function(t,e,r){var o=D(D({},{refresh:!1,required:!1,autoLink:!1,realtimeInstance:!1}),r),c=o.refresh,u=o.required,f=o.autoLink,s=o.useDefaultState,l=o.realtimeInstance,p=(0,i.useContext)(R),y=p&&u?z(p,t):void 0;if(u&&!f&&!y)throw new Error("The model in usage is a `store key`, it should match with a store created by `StoreProvider`.");var v=(0,i.useRef)(t),h=(0,i.useRef)((0,i.useMemo)((function(){return y||P(t,e)}),[])).current,g=y||h,b=null!=y&&!!s&&null==y.getCacheState();b&&y.update(t,{state:e,cache:!0,ignoreDispatch:!0}),v.current===t||y||(v.current=t,g.update(t));var m=n((0,i.useState)(g.getCurrent()),2),O=m[0],j=m[1],S=(0,a.usePersistFn)((function(){j(g.getCurrent())})),w=(0,i.useRef)({state:e});(0,i.useEffect)((function(){var n=w.current;w.current={state:e},c&&n.state!==e&&g.update(t,{state:e,cache:!0})}),[e]);var k=g.tunnel(S);if((0,i.useEffect)((function(){return k.connect(),function(){k.disconnect()}}),[]),(0,i.useEffect)((function(){b&&g.notice()}),[b]),l)return[g.getState(),g.agent,g.updateState];var x=d(O,{get:function(t,e,n){var r=t[e];return e===M?g.agent:r}});return[g.getState(),x,g.updateState]}(c||t,e,r),f=n(u,3),s=f[0],l=f[1],p=I(t,s,f[2],{disabled:!c});return[s,c?p:l]}function K(t,e,r){var o=t.pipe,c=t.getSourceFrom;return n(L(t,e,D({required:"function"==typeof o||"function"==typeof c,useDefaultState:arguments.length>1},r)),2)[1]}function V(t,e,n){return K(t,e,D(D({},n),{},{refresh:!0}))}var Y=function(t){return'API "'.concat(t,'" can not work, there is no matched StoreProvider with its store key.')};function $(t,e,r){var o=(0,i.useContext)(R),c=o?z(o,t):null;if(!c)throw new Error(Y("useSelector"));var u=e(c.getCurrent()),f=n((0,i.useState)({data:u}),2),s=f[0],l=f[1],p=(0,a.usePersistFn)((function(){var t=e(c.getCurrent());(function(t,e){return r?r(t,e):Object.is(t,e)})(s.data,t)||l({data:t})})),d=c.tunnel(p);return(0,i.useEffect)((function(){return d.connect(),function(){d.disconnect()}}),[]),s.data}function B(t){return function(e){return function(n){return(0,i.createElement)(U,{value:t},(0,i.createElement)(e,n))}}}function G(t){var e=t[M];return e||t}function H(t){var e=t.pipe,n=(0,i.useContext)(R);return"function"==typeof e&&null!=(n?z(n,t):null)}var J=v,N=k,Q=k,W=function(t){var e=t.value,n=t.children;return(0,i.createElement)(A.Provider,{value:e},n)},X=function(t){var e=function e(n,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],c=null==r?N(t,n):r,a={key:c,keys:o,useModel:function(t){var e=arguments.length?[c,t]:[c];return K.apply(void 0,e)},useSelector:function(t,e){return $(c,t,e)},provide:function(){return B([c].concat(u(o)))},provideTo:function(t){return B([c].concat(u(o)))(t)},Provider:function(t){var e=t.children;return(0,i.createElement)(T,{value:[c].concat(u(o))},e)}};return D(D({},a),{},{with:function(){for(var t=arguments.length,r=new Array(t),u=0;u<t;u++)r[u]=arguments[u];var i=o.concat(r.map((function(t){return"function"==typeof t?t:t.key})));return e(n,c,i)}})};return Object.assign(t,{useModel:function(e){var n=arguments.length?[t,e]:[t];return K.apply(void 0,n)},useControlledModel:function(e,n){return q(t,e,n)},store:e,storeDangerously:e})};X.context=function(){var t=j.context;if(null==t)throw new Error("Can not use context out of the model refresh time.");return t}}(),c}()})); | ||
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react"),require("@airma/react-hooks-core")):"function"==typeof define&&define.amd?define(["react","@airma/react-hooks-core"],e):"object"==typeof exports?exports["@airma/react-state"]=e(require("react"),require("@airma/react-hooks-core")):t["@airma/react-state"]=e(t.react,t["@airma/react-hooks-core"])}(self,(function(t,e){return function(){"use strict";var n={309:function(t){t.exports=e},156:function(e){e.exports=t}},r={};function o(t){var e=r[t];if(void 0!==e)return e.exports;var c=r[t]={exports:{}};return n[t](c,c.exports,o),c.exports}o.d=function(t,e){for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var c={};return function(){function t(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 e(e,n){if(e){if("string"==typeof e)return t(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}}function n(t,n){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,c=[],u=!0,i=!1;try{for(n=n.call(t);!(u=(r=n.next()).done)&&(c.push(r.value),!e||c.length!==e);u=!0);}catch(t){i=!0,o=t}finally{try{u||null==n.return||n.return()}finally{if(i)throw o}}return c}}(t,n)||e(t,n)||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.")}()}function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function u(n){return function(e){if(Array.isArray(e))return t(e)}(n)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(n)||e(n)||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.")}()}o.r(c),o.d(c,{ConfigProvider:function(){return X},ModelProvider:function(){return L},Provider:function(){return U},StoreProvider:function(){return _},createKey:function(){return W},model:function(){return Z},provide:function(){return H},shallowEqual:function(){return Q},useControlledModel:function(){return R},useIsModelMatchedInStore:function(){return N},useModel:function(){return Y},useRealtimeInstance:function(){return J},useRefresh:function(){return z},useRefreshModel:function(){return $},useSelector:function(){return G}});var i=o(156),a=o(309);function f(t){return f="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},f(t)}function s(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 l(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?s(Object(n),!0).forEach((function(e){r(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function p(t,e,n,r){var o=Object.keys(n),c={};return o.forEach((function(n){c[n]={get:function(){return r.get?r.get(t,n,e):t[n]},set:function(o){if(r.set){if(!r.set(t,n,o,e))throw new Error("".concat(n," in proxy target is not mutable"))}else t[n]=o}}})),c}var d=function(t,e){return"function"!=typeof Proxy?function(t,e){var n={},r=p(t,n,t,e),o=p(t,n,Object.getPrototypeOf(t),e);return Object.defineProperties(n,l(l({},o),r)),n}(t,e):new Proxy(t,e)};function v(t){return t&&"object"===f(t)}function y(t,e){if(Object.is(t,e))return!0;if(!v(t)||!v(e))return!1;var n=Object.keys(t),r=Object.keys(e);if(n.length!==r.length)return!1;var o=t,c=e;return!n.some((function(t){return!Object.prototype.hasOwnProperty.call(c,t)}))&&!r.some((function(t){var e=c[t],n=o[t];return!Object.is(e,n)}))}function h(t){var e={};return t.forEach((function(t){var r=n(t,2),o=r[0],c=r[1];e[o]=c})),{get:function(t){return e[t]}}}function g(){}function b(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 m(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?b(Object(n),!0).forEach((function(e){r(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):b(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}var O={},j="@@lazyIdentify";function w(t,e){t.forEach((function(t){t(e)}))}var S={context:null};function P(t,e,n){n.start(),S.context=n.context;var r=t(e);return S.context=null,n.end(),r[j]===O&&n.reset(),r}function k(t,e){return function(n){var r=t.dispatching;if(function(e){var n=t.dispatching;if(!n){var r={value:e};return r.tail=r,void(t.dispatching=r)}var o=n.tail,c={prev:o,value:e};o.next=c,n.tail=c}(n),!r)for(var o=function(){var n=function(){var e=t.dispatching;if(e){var n=e.next,r=e.tail;if(r===e||!n)return t.dispatching=void 0,e;n.prev=void 0;var o=n;return o.tail=r,t.dispatching=o,e}}();if(n){var r=u(t.dispatches);try{"function"==typeof e?e((function(){w(r,n.value)})):w(r,n.value)}catch(e){throw t.dispatching=void 0,e}}else t.dispatching=void 0};t.dispatching;)o()}}function E(t,e,r){var o,c,i=(o={data:[],current:0,initialized:!1,working:!1},{context:{ref:c=function(t){var e=o.data,n=o.initialized;if(!o.working)throw new Error("Context hook only can be used in model refreshing time.");var r=o.current,c=e[r];if(o.current+=1,c)return c;if(n)throw new Error("Context hook should be used everytime, when model is refreshing.");var u={current:t};return e[r]=u,u},memo:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=c(void 0),o=function(){if(null==r.current)return[t(),e];var o=n(r.current,2),c=o[0];return y(o[1],e)?[c,void 0]:[t(),e]}(),u=n(o,2),i=u[0],a=u[1];return a&&(r.current=[i,a]),i}},reset:function(){o.working=!1,o.current=0,o.initialized=!1,o.data=[]},start:function(){o.working=!0,o.current=0},end:function(){o.working=!1,o.initialized=!0}}),a=P(t,e,i),f=r||{},s=f.controlled,l=f.batchUpdate,p={current:a,reducer:t,dispatch:null,dispatches:[],cacheMethods:{},state:e,cacheState:null,controlled:!!s,notify:g};function v(t,e){var n=p.state,r=!(!e||!e.isDefault),o=!(!e||!e.ignoreDispatch);if(!r||!p.cacheState){var c=e?e.state:n;p.reducer=t,p.state=c,p.cacheState=e&&e.cache?{state:e.state}:p.cacheState,p.current=P(t,p.state,i),n===p.state||r||o||p.notify({state:p.state,type:""})}}function h(t){var e=p.dispatches,n=p.controlled,r=u(e);return!(r.indexOf(t)>=0)&&(n?(p.dispatches=[t],!1):(p.dispatches=r.concat(t),!0))}function b(t){t({state:p.state,type:""})}function O(t){if(t){var e=u(p.dispatches);p.dispatches=e.filter((function(e){return e!==t}))}else p.dispatches=[]}p.notify=k(p,l);var j=d(a,{get:function(t,e){var n=p.current[e];return Object.prototype.hasOwnProperty.call(p.current,e)&&"function"==typeof n?function(t,e,n){if(t.cacheMethods[e])return t.cacheMethods[e];var r=function(){for(var r=arguments.length,o=new Array(r),c=0;c<r;c++)o[c]=arguments[c];var u=t.current[e].apply(void 0,o),i=t.reducer,a=t.controlled,f={type:e,state:u};return a?(t.notify(f),u):(t.current=P(i,u,n),t.state=u,t.cacheState={state:u},t.notify({type:e,state:u}),u)};return t.cacheMethods[e]=r,r}(p,e,i):n}});return{agent:j,getCacheState:function(){return p.cacheState},getState:function(){return p.state},getCurrent:function(){if(Array.isArray(p.current))return p.current.map((function(t,e){return"function"==typeof t?j[e]:t}));var t=Object.keys(p.current),e=m({},p.current);return t.forEach((function(t){"function"==typeof e[t]&&(e[t]=j[t])})),e},getListeners:function(){return p.dispatches},update:v,updateState:function(t){v(p.reducer,{state:t,cache:!0})},notice:function(){b(p.notify)},tunnel:function(t){return{connect:function(){h(t)&&b(t)},disconnect:function(){O(t)}}},connect:function(t){h(t)&&b(t)},disconnect:O}}function x(t){if(t.agent[j])throw new Error("A stateless connection should be initialized before it is accessed.")}function C(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if("function"==typeof t&&"function"==typeof t.creation)return[{key:n.join("."),keys:n,factory:t,connection:t.creation(e)}];if(!t||"object"!==f(t))return[];var r=[],o=t;return Object.keys(o).forEach((function(t){var c=C(o[t],e,n.concat(t));r.push.apply(r,u(c))})),r}function M(t,e){var n=t;function r(t){var e=t.map((function(t){return t.connection})),n=function(t){return{get:function(e){var n=t.find((function(t){return t.factory===e||t.sourceFactory===e}));return n?n.connection:void 0}}}(t);return{collections:t,connections:e,instances:n}}var o=C(t,e),c=r(o),i={update:function(n){if(n===t)return m({},i);var a=C(n,e),f=r(function(t,e){var n=h(e.map((function(t){return[t.key,{connection:t.connection,factory:t.factory}]}))),r=h(t.map((function(t){return[t.key,{connection:t.connection,factory:t.factory}]}))),o=e.filter((function(t){var e=t.key;return!r.get(e)})),c=t.filter((function(t){var e=t.key;return!n.get(e)})),i=t.map((function(t){var e=t.key,r=t.connection,o=n.get(e);if(o){var c=o.connection,u=null==r.getCacheState()?c.getState():r.getState();return r.update(o.factory,{state:u}),m(m({},t),{},{factory:o.factory,sourceFactory:t.factory})}})).filter((function(t){return!!t}));return c.forEach((function(t){return t.connection.disconnect()})),[].concat(u(o),u(i))}(o,a)),s=f.instances,l=f.connections,p=f.collections;return c.instances=s,c.connections=l,c.collections=p,m({},i)},get:function(t){return c.instances.get(t)},equal:function(t){return t===n},destroy:function(){c.connections.forEach((function(t){return t.disconnect()}))}};return m({},i)}function D(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 A(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?D(Object(n),!0).forEach((function(e){r(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):D(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}var I="@@_airmaReactStateRealtimeInstancePropertyV18_@@",q=(0,i.createContext)(void 0);function F(t,e,n,r){var o=(r||{}).disabled,c=(0,i.useRef)(t),u=(0,i.useMemo)((function(){return E(t,e,{controlled:!0})}),[]);o||e===u.getState()&&t===c.current||(u.update(t,{state:e,ignoreDispatch:!0}),c.current=t);var f=(0,a.usePersistFn)((function(t){var r=t.state;e!==r&&(o||n(r))}));return u.connect(f),(0,i.useEffect)((function(){return u.connect(f),function(){u.disconnect(f)}}),[]),d(u.getCurrent(),{get:function(t,e,n){var r=t[e];return e===I?u.agent:r}})}function R(t,e,n){return F(t,e,n)}function z(t,e){var n=Array.isArray(e),r=n?e:e?e.refreshDeps:void 0,o=n?e:e&&e.variables||[],c=(0,a.usePersistFn)(t);(0,i.useEffect)((function(){var t=c.apply(void 0,u(o));return"function"==typeof t?t:function(){}}),r)}var T=(0,i.createContext)(null),U=function(t){var e=t.keys,n=t.value,r=t.children,o=null!=e?e:n;if(null==o)throw new Error("You need to provide keys to `Provider`");var c=((0,i.useContext)(q)||{}).batchUpdate,u=(0,i.useContext)(T),a=(0,i.useMemo)((function(){return M(o,{batchUpdate:c})}),[]),f=(0,i.useMemo)((function(){return A(A({},a.update(o)),{},{parent:u})}),[u,o]);return(0,i.createElement)(T.Provider,{value:f},r)},_=U,L=U;function K(t,e){var n=t.get(e);return!n&&t.parent?K(t.parent,e):n}function V(t,e,r){var o=t.getSourceFrom,c="function"==typeof o?o():void 0,u=function(t,e,r){var o=A(A({},{refresh:!1,required:!1,autoLink:!1,realtimeInstance:!1}),r),c=o.refresh,u=o.required,f=o.autoLink,s=o.useDefaultState,l=o.realtimeInstance,p=(0,i.useContext)(T),v=p&&u?K(p,t):void 0;if(u&&!f&&!v)throw new Error("The model in usage is a `store key`, it should match with a store created by `StoreProvider`.");var y=null!=v&&!!s&&null==v.getCacheState();y&&v.update(t,{state:e,cache:!0,ignoreDispatch:!0}),null!=v&&x(v);var h=(0,i.useRef)(t),g=(0,i.useRef)((0,i.useMemo)((function(){return v||E(t,e)}),[])).current,b=v||g;h.current===t||v||(h.current=t,b.update(t));var m=n((0,i.useState)(b.getCurrent()),2),O=m[0],j=m[1],w=(0,a.usePersistFn)((function(){j(b.getCurrent())})),S=(0,i.useRef)({state:e});(0,i.useEffect)((function(){var n=S.current;S.current={state:e},c&&n.state!==e&&b.update(t,{state:e,cache:!0})}),[e]);var P=b.tunnel(w);if((0,i.useEffect)((function(){return P.connect(),function(){P.disconnect()}}),[]),(0,i.useEffect)((function(){y&&b.notice()}),[y]),l)return[b.getState(),b.agent,b.updateState];var k=d(O,{get:function(t,e,n){var r=t[e];return e===I?b.agent:r}});return[b.getState(),k,b.updateState]}(c||t,e,r),f=n(u,3),s=f[0],l=f[1],p=F(t,s,f[2],{disabled:!c});return[s,c?p:l]}function Y(t,e,r){var o=t.pipe,c=t.getSourceFrom;return n(V(t,e,A({required:"function"==typeof o||"function"==typeof c,useDefaultState:arguments.length>1},r)),2)[1]}function $(t,e,n){return Y(t,e,A(A({},n),{},{refresh:!0}))}var B=function(t){return'API "'.concat(t,'" can not work, there is no matched StoreProvider with its store key.')};function G(t,e,r){var o=(0,i.useContext)(T),c=o?K(o,t):null;if(!c)throw new Error(B("useSelector"));x(c);var u=e(c.getCurrent()),f=n((0,i.useState)({data:u}),2),s=f[0],l=f[1],p=(0,a.usePersistFn)((function(){var t=e(c.getCurrent());(function(t,e){return r?r(t,e):Object.is(t,e)})(s.data,t)||l({data:t})})),d=c.tunnel(p);return(0,i.useEffect)((function(){return d.connect(),function(){d.disconnect()}}),[]),s.data}function H(t){return function(e){return function(n){return(0,i.createElement)(U,{value:t},(0,i.createElement)(e,n))}}}function J(t){var e=t[I];return e||t}function N(t){var e=t.pipe,n=(0,i.useContext)(T);return"function"==typeof e&&null!=(n?K(n,t):null)}var Q=y,W=function(t,e){return function(t,e,n){var o=function(e){return t(e)};return o.creation=function(t){return n?E((function(t){return r({},j,O)}),void 0,t):E(o,e,t)},o.pipe=function(t){var e=function(e){return t(e)};return e.getSourceFrom=function(){return o},e},o}(t,e,arguments.length<2)},X=function(t){var e=t.value,n=t.children;return(0,i.createElement)(q.Provider,{value:e},n)},Z=function(t){var e=function e(n,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],c=null!=r?r:arguments.length>0?W(t,n):W(t),a={key:c,keys:o,useModel:function(t){var e=arguments.length?[c,t]:[c];return Y.apply(void 0,e)},useSelector:function(t,e){return G(c,t,e)},provide:function(){return H([c].concat(u(o)))},provideTo:function(t){return H([c].concat(u(o)))(t)},Provider:function(t){var e=t.children;return(0,i.createElement)(U,{value:[c].concat(u(o))},e)}};return A(A({},a),{},{with:function(){for(var t=arguments.length,r=new Array(t),u=0;u<t;u++)r[u]=arguments[u];var i=o.concat(r.map((function(t){return"function"==typeof t?t:t.key})));return e(n,c,i)}})};function n(t){return arguments.length?e(t):e()}return Object.assign(t,{useModel:function(e){var n=arguments.length?[t,e]:[t];return Y.apply(void 0,n)},useControlledModel:function(e,n){return R(t,e,n)},store:n,createStore:n})};Z.context=function(){var t=S.context;if(null==t)throw new Error("Can not use context out of the model refresh time.");return t},Z.create=Z}(),c}()})); |
@@ -220,15 +220,7 @@ import { FunctionComponent, FC, NamedExoticComponent, ReactNode } from 'react'; | ||
export declare function createKey<R extends AirReducer>( | ||
model: StateExtendsUndefinedReducer<R> | ||
): ModelKey<R>; | ||
export declare function createKey<R extends AirReducer, D extends PickState<R>>( | ||
model: R, | ||
defaultState: D | ||
defaultState?: D | ||
): ModelKey<R>; | ||
export declare function createKeyDangerously< | ||
R extends AirReducer, | ||
D extends PickState<R> | ||
>(model: R, defaultState?: D): ModelKey<R>; | ||
export declare function useRealtimeInstance<T>(instance: T): T; | ||
@@ -286,6 +278,4 @@ | ||
useControlledModel: ControlledModelUsage<R>; | ||
store: undefined extends PickState<R> | ||
? (state?: PickState<R>) => StoreApi<R> | ||
: (state: PickState<R>) => StoreApi<R>; | ||
storeDangerously: (state?: PickState<R>) => StoreApi<R>; | ||
store: (state?: PickState<R>) => StoreApi<R>; | ||
createStore: (state?: PickState<R>) => StoreApi<R>; | ||
} | ||
@@ -296,2 +286,3 @@ | ||
context: () => ModelContext; | ||
create: <M extends AirReducer>(m: ValidModel<M>) => M & Api<M>; | ||
}; |
{ | ||
"name": "@airma/react-state", | ||
"version": "18.3.0-alpha.7", | ||
"version": "18.3.0-alpha.8", | ||
"description": "the purpose of this project is make useReducer more simplify", | ||
@@ -27,3 +27,3 @@ "license": "MIT", | ||
"dependencies": { | ||
"@airma/react-hooks-core": "^18.3.0-alpha.7", | ||
"@airma/react-hooks-core": "^18.3.0-alpha.8", | ||
"react": ">=16.8.0" | ||
@@ -30,0 +30,0 @@ }, |
30122
250