UNPKG

zustand-lite

Version:

Zustand Lite builds upon zustand, by auto-generating selectors and simplifying API even more.

3 lines 3.21 kB
"use strict";var d=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var z=(e,t)=>{for(var r in t)d(e,r,{get:t[r],enumerable:!0})},I=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of q(t))!v.call(e,o)&&o!==r&&d(e,o,{get:()=>t[o],enumerable:!(n=R(t,o))||n.enumerable});return e};var W=e=>I(d({},"__esModule",{value:!0}),e);var N={};z(N,{createStore:()=>U,reset:()=>w});module.exports=W(N);var f=require("zustand/middleware"),E=require("zustand/vanilla");function x(e){return{getInitialState:e.getInitialState,subscribe:e.subscribe}}function m(e){return()=>e.getState()}function b(e){return m(e)}function C(e){return e?e.split(` `).map(t=>{let r=t.match(/at (\S+)/);if(r)return r[1];let n=t.match(/^(\S+)@/);return n?n[1]:null}).filter(t=>!!t).map(t=>{let r=t.split(".");return r?.[1]??r?.[0]}):[]}function K(){return C(new Error().stack)?.[2]??"setState"}function p(e,t){return(r,n,o)=>{e.setState(r,n,t?{type:o??K(),payload:r}:void 0)}}function A(e,t){let r=p(e,t);return Object.keys(e.getState()).forEach(n=>{r[n]=o=>{e.getState()[n]!==o&&e.setState(i=>({...i,[n]:o}),!1,t?{type:n,payload:{[n]:o}}:void 0)}}),r}var y=require("zustand/shallow"),G=require("zustand/traditional");function l(e,t,r,n){typeof e=="object"&&e!==null&&Object.keys(e).forEach(o=>{let i=[...r,o];Object.defineProperty(t,o,{value:(s=y.shallow)=>(0,G.useStoreWithEqualityFn)(n,S=>M(S,i),s),writable:!0,configurable:!0,enumerable:!0}),l(e[o],t[o],i,n)})}function M(e,t){let r=e;for(let n of t)if(r=r[n],!r)return r;return r}var h=require("zustand/shallow"),L=require("zustand/traditional");function u(e){return(t,r=h.shallow)=>(0,L.useStoreWithEqualityFn)(e,t,r)}function F(e){let t=u(e);return l(e.getState(),t,[],e),t}var P=require("zustand/shallow"),B=require("zustand/traditional");function O(e,t,r){let n=e({get:t.get}),o={};return Object.keys(n).forEach(i=>{o[i]=(...s)=>(0,B.useStoreWithEqualityFn)(r,()=>n[i](...s),P.shallow)}),t.use=Object.assign(u(r),t.use,o),t.get=Object.assign(m(r),t.get,n),t}function j(e,t,r,n){let o=p(r,n);return t.set=Object.assign(o,t.set,e(t)),t}function D(e,t,r,n){return{api:r.api,set:r.set,use:e?(()=>{let o=Object.keys(r.use).reduce((i,s)=>t[s]&&e.includes(s)?i:{...i,[s]:r.use[s]},{});return Object.assign(u(n),o)})():r.use,get:e?Object.assign(()=>Object.entries(r.get()).reduce((i,[s,S])=>t[s]&&e.includes(s)?i:{...i,[s]:S},{}),r.get):r.get}}function U(e,t){let{name:r="zustand-lite",plugins:n=[],middlewares:o={}}=t??{},i=e;n.forEach(a=>{a.creates&&(i={...i,...a.creates()})});let s=()=>i;o.devtools&&(s=(0,f.devtools)(s,o.devtools===!0?{name:"zustand-lite",store:r}:o.devtools)),o.persist&&(s=(0,f.persist)(s,o.persist===!0?{name:r}:o.persist));let S=(0,E.createStore)(s),g={api:x(S),get:b(S),use:F(S),set:A(S,!!o.devtools),extendGetters(a){return O(a,this,S)},extendSetters(a){return j(a,this,S,!!o.devtools)},restrictState(a=[]){return D(a,i,this,S)}},c=g;return n.forEach(a=>{a.extends&&(c=a.extends(g))}),c}var w={extends:e=>e.extendSetters(({api:t,set:r})=>({reset:()=>{r(t.getInitialState?.()??{},!0)}}))};0&&(module.exports={createStore,reset}); //# sourceMappingURL=index.cjs.map