zustic 1.0.4 → 1.0.5
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/README.md +4 -4
- package/dist/query/index.js +1 -1
- package/dist/query/index.mjs +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -123,7 +123,7 @@ function Counter() {
|
|
|
123
123
|
<p>Count: {count}</p>
|
|
124
124
|
<button onClick={inc}>➕ Increment</button>
|
|
125
125
|
<button onClick={dec}>➖ Decrement</button>
|
|
126
|
-
<button onClick={reset}
|
|
126
|
+
<button onClick={reset}>Reset</button>
|
|
127
127
|
</div>
|
|
128
128
|
);
|
|
129
129
|
}
|
|
@@ -172,9 +172,9 @@ Extend Zustic stores with powerful middleware for logging, persistence, validati
|
|
|
172
172
|
|
|
173
173
|
```typescript
|
|
174
174
|
const logger = <T extends object>(): Middleware<T> => (set, get) => (next) => async (partial) => {
|
|
175
|
-
console.log('
|
|
175
|
+
console.log('Previous State:', get());
|
|
176
176
|
await next(partial);
|
|
177
|
-
console.log('
|
|
177
|
+
console.log('New State:', get());
|
|
178
178
|
};
|
|
179
179
|
|
|
180
180
|
export const useStore = create<StoreType>(
|
|
@@ -534,7 +534,7 @@ const api = createApi({
|
|
|
534
534
|
|
|
535
535
|
---
|
|
536
536
|
|
|
537
|
-
##
|
|
537
|
+
## Multi-Platform Examples
|
|
538
538
|
|
|
539
539
|
### React Web
|
|
540
540
|
|
package/dist/query/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var q=Object.defineProperty;var
|
|
1
|
+
"use strict";var q=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var R=Object.prototype.hasOwnProperty;var O=(t,a)=>{for(var i in a)q(t,i,{get:a[i],enumerable:!0})},B=(t,a,i,r)=>{if(a&&typeof a=="object"||typeof a=="function")for(let u of C(a))!R.call(t,u)&&u!==i&&q(t,u,{get:()=>a[u],enumerable:!(r=H(a,u))||r.enumerable});return t};var v=t=>B(q({},"__esModule",{value:!0}),t);var z={};O(z,{createApi:()=>j});module.exports=v(z);var x=require("react");var A=require("react");function g(t,a=[]){let i,r=[],u=c=>{let y=typeof c=="function"?c(i):c;i={...i,...y},r.forEach(s=>s())},w=()=>i,M=J(u,w,a);i=t(M,w);let h=c=>(r.push(c),()=>{r=r.filter(y=>y!==c)});return()=>(0,A.useSyncExternalStore)(h,w)}var J=(t,a,i)=>!i||i.length===0?t:i.reduceRight((r,u)=>u(t,a)(r),t);function N(t){return t.charAt(0).toUpperCase()+t.slice(1)}var D=async(t,a,i,r,u,w,M)=>{var h,c,y,s,l,m,E;a({isLoading:!0});try{let o=null,n=null,e=i().cashExp,S=Date.now(),T=!1;if(M||JSON.stringify(i().arg||{})!==JSON.stringify(t||{})?T=!1:T=e>=S,T&&(o=i().data),!T&&(r!=null&&r.queryFnc)){a({isFetching:!0});let{data:p,error:F}=await((h=r==null?void 0:r.queryFnc)==null?void 0:h.call(r,t,u));p&&(o=p),F&&(n=F)}else{let p=r.queryFn(t);if(r!=null&&r.transformHeader&&(p.headers=await((c=r==null?void 0:r.transformHeader)==null?void 0:c.call(r,p==null?void 0:p.headers))),r!=null&&r.transformBody&&(p.body=await((y=r==null?void 0:r.transformBody)==null?void 0:y.call(r,p==null?void 0:p.body))),!T){a({isFetching:!0});let{data:F,error:b}=await u(p);F&&(o=F),b&&(n=b)}}return o&&(r!=null&&r.transformResponse&&(o=await((s=r.transformResponse)==null?void 0:s.call(r,o,i().data))),r!=null&&r.onSuccess&&await((l=r.onSuccess)==null?void 0:l.call(r,o))),n&&(r!=null&&r.transformError&&(n=await((m=r.transformError)==null?void 0:m.call(r,n,i().error))),r!=null&&r.onError&&await((E=r.onError)==null?void 0:E.call(r,n))),o?(a({data:o,isSuccess:!0,isLoading:!1,isFetching:!1,cashExp:T?e:Date.now()+w,arg:t}),{data:o}):(a({isLoading:!1,isSuccess:!1,isFetching:!1,isError:!0,error:n,arg:t}),{error:n})}catch(o){return a({isLoading:!1,isSuccess:!1,isFetching:!1,isError:!0,error:o,arg:t}),{error:o}}};async function P(t,a,i,r,u,w,M,h,c){var E,o,n;let y={arg:t,def:r,get:i,set:a};for(let e of c)await((E=e.beforeQuery)==null?void 0:E.call(e,y));let s=-1,l=async e=>{if(e<=s)throw new Error("next() called multiple times");s=e;let S=h[e];return S?S(y,()=>l(e+1)):D(t,a,i,r,u,w,M)},m=await l(0);for(let e of c)await((o=e.afterQuery)==null?void 0:o.call(e,m,y));if(m!=null&&m.error)for(let e of c)await((n=e.onError)==null?void 0:n.call(e,m.error,y));return m}function j(t){let{baseQuery:a,endpoints:i,cacheTimeout:r=30*1e3,middlewares:u=[],plugins:w=[]}=t,h=i({query:s=>({type:"query",queryFn:s.query,...s}),mutation:s=>({type:"mutation",queryFn:s.query,...s})}),c={},y=(w||[]).filter(s=>s.middleware&&typeof s.middleware=="function").map(s=>s.middleware);for(let s in h){let l=h[s],m=`use${N(s)}`+(l.type==="query"?"Query":"Mutation"),E=(l.plugins||[]).filter(n=>(n==null?void 0:n.middleware)&&typeof n.middleware=="function").map(n=>n.middleware),o=g((n,e)=>({data:null,isLoading:!1,isError:!1,isFetching:!1,isSuccess:!1,error:null,arg:null,cashExp:0,query:S=>P(S,n,e,l,a,r,!1,[...u,...l.middlewares||[],...E,...y],[...w,...l.plugins||[]]),reFetch:()=>{var S;return P((S=e())==null?void 0:S.arg,n,e,l,a,r,!0,[...u,...l.middlewares||[],...E,...y],[...w,...l.plugins||[]])}}));l.type==="query"&&(c[m]=(n,e)=>{let{skip:S}=e||{},{query:T,error:p,isError:F,isLoading:b,isSuccess:Q,reFetch:L,data:k}=o();return(0,x.useEffect)(()=>{S||T(n)},[JSON.stringify(n||{})]),{error:p,isError:F,isLoading:b,isSuccess:Q,data:k,reFetch:L}}),l.type==="mutation"&&(c[m]=()=>{let{query:n,...e}=o();return[n,e]})}return c}0&&(module.exports={createApi});
|
package/dist/query/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as M}from"../chunk-SISWF3T4.mjs";import{useEffect as x}from"react";function H(s){return s.charAt(0).toUpperCase()+s.slice(1)}var L=async(s,u,y,r,E,F,S)=>{var q,p,m,a,o,c,h;u({isLoading:!0});try{let t=null,i=null,n=y().cashExp,l=Date.now(),w=!1;if(S||JSON.stringify(y().arg||{})!==JSON.stringify(s||{})?w=!1:w=n>=l,w&&(t=y().data),!w&&(r!=null&&r.queryFnc)){u({isFetching:!0});let{data:e,error:A}=await((q=r==null?void 0:r.queryFnc)==null?void 0:q.call(r,s,E));e&&(t=e),A&&(i=A)}else{let e=r.queryFn(s);if(r!=null&&r.transformHeader&&(e.headers=await((p=r==null?void 0:r.transformHeader)==null?void 0:p.call(r,e==null?void 0:e.headers))),r!=null&&r.transformBody&&(e.body=await((m=r==null?void 0:r.transformBody)==null?void 0:m.call(r,e==null?void 0:e.body))),!w){u({isFetching:!0});let{data:A,error:b}=await E(e);A&&(t=A),b&&(i=b)}}return t&&(r!=null&&r.transformResponse&&(t=await((a=r.transformResponse)==null?void 0:a.call(r,t,y().data))),r!=null&&r.onSuccess&&await((o=r.onSuccess)==null?void 0:o.call(r,t))),i&&(r!=null&&r.transformError&&(i=await((c=r.transformError)==null?void 0:c.call(r,i,y().error))),r!=null&&r.onError&&await((h=r.onError)==null?void 0:h.call(r,i))),t?(u({data:t,isSuccess:!0,isLoading:!1,isFetching:!1,cashExp:w?n:Date.now()+F,arg:s}),{data:t}):(u({isLoading:!1,isSuccess:!1,isFetching:!1,isError:!0,error:i,arg:s}),{error:i})}catch(t){return u({isLoading:!1,isSuccess:!1,isFetching:!1,isError:!0,error:t,arg:s}),{error:t}}};async function Q(s,u,y,r,E,F,S,q,p){var h,t,i;let m={arg:s,def:r,get:y,set:u};for(let n of p)await((h=n.beforeQuery)==null?void 0:h.call(n,m));let a=-1,o=async n=>{if(n<=a)throw new Error("next() called multiple times");a=n;let l=q[n];return l?l(m,()=>o(n+1)):L(s,u,y,r,E,F,S)},c=await o(0);for(let n of p)await((t=n.afterQuery)==null?void 0:t.call(n,c,m));if(c!=null&&c.error)for(let n of p)await((i=n.onError)==null?void 0:i.call(n,c.error,m));return c}function R(s){let{baseQuery:u,endpoints:y,cacheTimeout:r=30*1e3,middlewares:E=[],plugins:F=[]}=s,q=y({query:a=>({type:"query",queryFn:a.query,...a}),mutation:a=>({type:"mutation",queryFn:a.query,...a})}),p={},m=(F||[]).filter(a=>a.middleware&&typeof a.middleware=="function").map(a=>a.middleware);for(let a in q){let o=q[a],c=`use${H(a)}`+(o.type==="query"?"Query":"Mutation"),h=(o.plugins||[]).filter(i=>(i==null?void 0:i.middleware)&&typeof i.middleware=="function").map(i=>i.middleware),t=M((i,n)=>({data:null,isLoading:!1,isError:!1,isFetching:!1,isSuccess:!1,error:null,arg:null,cashExp:0,query:l=>Q(l,i,n,o,u,r,!1,[...E,...o.middlewares||[],...h,...m],[...F,...o.plugins||[]]),reFetch:()=>{var l;return Q((l=n())==null?void 0:l.arg,i,n,o,u,r,!0,[...E,...o.middlewares||[],...h,...m],[...F,...o.plugins||[]])}}));o.type==="query"&&(p[c]=(i,n)=>{let{skip:l}=n||{},{query:w,error:e,isError:A,isLoading:b,isSuccess:T,reFetch:g,data:k}=t();return x(()=>{l||w(i)},[JSON.stringify(i||{})]),{error:e,isError:A,isLoading:b,isSuccess:T,data:k,reFetch:g}}),o.type==="mutation"&&(p[c]=()=>{let{query:i,...n}=t();return[i,n]})}return p}export{R as createApi};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zustic",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "A fast, minimal state management solution for React ecosystems. Works seamlessly with React, Next.js, and React Native, offering predictable state updates with a tiny footprint.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsup",
|