UNPKG

@zjxpcyc/react-tiny-store

Version:
2 lines (1 loc) 3.61 kB
import t from"react";function r(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable}))),e.push.apply(e,n)}return e}function e(t){for(var e=1;e<arguments.length;e++){var u=null!=arguments[e]?arguments[e]:{};e%2?r(Object(u),!0).forEach((function(r){n(t,r,u[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(u)):r(Object(u)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(u,r))}))}return t}function n(t,r,e){return(r=function(t){var r=function(t,r){if("object"!=typeof t||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,r||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"==typeof r?r:String(r)}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function u(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,u,o,i,c=[],f=!0,a=!1;try{if(o=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;f=!1}else for(;!(f=(n=o.call(e)).done)&&(c.push(n.value),c.length!==r);f=!0);}catch(t){a=!0,u=t}finally{try{if(!f&&null!=e.return&&(i=e.return(),Object(i)!==i))return}finally{if(a)throw u}}return c}}(t,r)||function(t,r){if(!t)return;if("string"==typeof t)return o(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return o(t,r)}(t,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.")}()}function o(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}function i(t){if("function"==typeof t)return t(i());var r=[],e=function(t){return r=r.filter((function(r){return r!==t}))};return{publish:function(t){return r.forEach((function(r){return r(t)}))},subscribe:function(t){return r.push(t),function(){return e(t)}},unsubscribe:e}}function c(t,r){var n=function(t){return function(r){var n=r.setState;return"function"==typeof t?n=t(r)||r.setState:r.setState(t),e(e({},r),{},{actions:n})}}(t);return i(s(r,l,n,a))}function f(t,r){return c(t,r).useStore}function a(t){var r=t.publish,n=void 0;return e(e({},t),{},{getState:function(){return n},setState:function(t){return r(n="function"==typeof t?t(n):t)}})}function l(r){var n=t.useSyncExternalStore||b;return e(e({},r),{},{useStore:function(u,o){var i=t.useMemo((function(){return"function"==typeof o?o(r.actions):r.actions}),[]),c=t.useCallback((function(){var t=r.getState();return"function"==typeof u?u(t):t}),[]),f=n(r.subscribe,c);return t.useMemo((function(){return[f,i,e({},r)]}),[f])}})}function s(){for(var t=arguments.length,r=new Array(t),e=0;e<t;e++)r[e]=arguments[e];var n=r.filter(Boolean);return 0===n.length?function(t){return t}:1===n.length?n[0]:n.reduce((function(t,r){return function(){return t(r.apply(void 0,arguments))}}))}function b(r,e){var n=t.useMemo(e,[]),o=u(t.useState(n),2),i=o[0],c=o[1],f=t.useRef();return f.current=i,t.useEffect((function(){var t=function(){var t=e();Object.is(f.current,t)||c(t)};return t(),r(t)}),[]),i}export{s as compose,f as create,c as createStore};