zustic 1.0.5 → 1.0.6
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/query/index.d.mts +13 -1
- package/dist/query/index.d.ts +13 -1
- package/dist/query/index.js +1 -1
- package/dist/query/index.mjs +1 -1
- package/package.json +1 -1
package/dist/query/index.d.mts
CHANGED
|
@@ -50,10 +50,22 @@ type MainMutationState<Result> = {
|
|
|
50
50
|
error: any;
|
|
51
51
|
};
|
|
52
52
|
type EndpointsMap = Record<string, EndpointDef>;
|
|
53
|
+
type InferQueryArg<T> = T extends QueryDef<infer Arg, any> ? Arg : never;
|
|
54
|
+
type QueryKeys<T> = {
|
|
55
|
+
[K in keyof T]: T[K] extends QueryDef<any, any> ? K : never;
|
|
56
|
+
}[keyof T];
|
|
57
|
+
type InferQueryResult<T> = T extends QueryDef<any, infer Result> ? Result : never;
|
|
53
58
|
type HooksFromEndpoints<T extends EndpointsMap> = {
|
|
54
59
|
[K in keyof T as T[K] extends {
|
|
55
60
|
type: 'query';
|
|
56
|
-
} ? `use${Capitalize<string & K>}Query` : `use${Capitalize<string & K>}Mutation`]: T[K] extends QueryDef<infer Arg, infer Result> ? (arg: Arg, option?: QueryHookOption) => MainQueryHookResult<Result> : T[K] extends MutationDef<infer Arg, infer Result> ? () => readonly [
|
|
61
|
+
} ? `use${Capitalize<string & K>}Query` : `use${Capitalize<string & K>}Mutation`]: T[K] extends QueryDef<infer Arg, infer Result> ? (arg: Arg, option?: QueryHookOption) => MainQueryHookResult<Result> : T[K] extends MutationDef<infer Arg, infer Result> ? () => readonly [
|
|
62
|
+
(arg: Arg) => Promise<Result>,
|
|
63
|
+
MainMutationState<Result>
|
|
64
|
+
] : never;
|
|
65
|
+
} & {
|
|
66
|
+
utils: {
|
|
67
|
+
updateQueryData: <K extends QueryKeys<T>>(key: K, arg: InferQueryArg<T[K]>, updater: (data: InferQueryResult<T[K]>) => InferQueryResult<T[K]>) => void;
|
|
68
|
+
};
|
|
57
69
|
};
|
|
58
70
|
type BuilderType = {
|
|
59
71
|
query<Result, Arg = void>(config: {
|
package/dist/query/index.d.ts
CHANGED
|
@@ -50,10 +50,22 @@ type MainMutationState<Result> = {
|
|
|
50
50
|
error: any;
|
|
51
51
|
};
|
|
52
52
|
type EndpointsMap = Record<string, EndpointDef>;
|
|
53
|
+
type InferQueryArg<T> = T extends QueryDef<infer Arg, any> ? Arg : never;
|
|
54
|
+
type QueryKeys<T> = {
|
|
55
|
+
[K in keyof T]: T[K] extends QueryDef<any, any> ? K : never;
|
|
56
|
+
}[keyof T];
|
|
57
|
+
type InferQueryResult<T> = T extends QueryDef<any, infer Result> ? Result : never;
|
|
53
58
|
type HooksFromEndpoints<T extends EndpointsMap> = {
|
|
54
59
|
[K in keyof T as T[K] extends {
|
|
55
60
|
type: 'query';
|
|
56
|
-
} ? `use${Capitalize<string & K>}Query` : `use${Capitalize<string & K>}Mutation`]: T[K] extends QueryDef<infer Arg, infer Result> ? (arg: Arg, option?: QueryHookOption) => MainQueryHookResult<Result> : T[K] extends MutationDef<infer Arg, infer Result> ? () => readonly [
|
|
61
|
+
} ? `use${Capitalize<string & K>}Query` : `use${Capitalize<string & K>}Mutation`]: T[K] extends QueryDef<infer Arg, infer Result> ? (arg: Arg, option?: QueryHookOption) => MainQueryHookResult<Result> : T[K] extends MutationDef<infer Arg, infer Result> ? () => readonly [
|
|
62
|
+
(arg: Arg) => Promise<Result>,
|
|
63
|
+
MainMutationState<Result>
|
|
64
|
+
] : never;
|
|
65
|
+
} & {
|
|
66
|
+
utils: {
|
|
67
|
+
updateQueryData: <K extends QueryKeys<T>>(key: K, arg: InferQueryArg<T[K]>, updater: (data: InferQueryResult<T[K]>) => InferQueryResult<T[K]>) => void;
|
|
68
|
+
};
|
|
57
69
|
};
|
|
58
70
|
type BuilderType = {
|
|
59
71
|
query<Result, Arg = void>(config: {
|
package/dist/query/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var x=Object.defineProperty;var J=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var D=(n,t)=>{for(var s in t)x(n,s,{get:t[s],enumerable:!0})},$=(n,t,s,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let u of N(t))!v.call(n,u)&&u!==s&&x(n,u,{get:()=>t[u],enumerable:!(r=J(t,u))||r.enumerable});return n};var _=n=>$(x({},"__esModule",{value:!0}),n);var G={};D(G,{createApi:()=>W});module.exports=_(G);var L=require("react");var d=require("react");function P(n,t=[]){let s,r=[],u=l=>{let y=typeof l=="function"?l(s):l;s={...s,...y},r.forEach(h=>h())},w=()=>s,F=j(u,w,t);s=n(F,w);let E=l=>(r.push(l),()=>{r=r.filter(y=>y!==l)});return()=>(0,d.useSyncExternalStore)(E,w)}var j=(n,t,s)=>!s||s.length===0?n:s.reduceRight((r,u)=>u(n,t)(r),n);function z(n){return n.charAt(0).toUpperCase()+n.slice(1)}function K(n,t){return`${n}__${JSON.stringify(t!=null?t:{})}`}var U=async(n,t,s,r,u,w,F)=>{var E,l,y,h,Q,S,i;t({isLoading:!0});try{let e=null,p=null,a=s().cashExp,o=Date.now(),m=!1;if(F||JSON.stringify(s().arg||{})!==JSON.stringify(n||{})?m=!1:m=a>=o,m&&(e=s().data),!m&&(r!=null&&r.queryFnc)){t({isFetching:!0});let{data:c,error:T}=await((E=r==null?void 0:r.queryFnc)==null?void 0:E.call(r,n,u));c&&(e=c),T&&(p=T)}else{let c=r.queryFn(n);if(r!=null&&r.transformHeader&&(c.headers=await((l=r==null?void 0:r.transformHeader)==null?void 0:l.call(r,c==null?void 0:c.headers))),r!=null&&r.transformBody&&(c.body=await((y=r==null?void 0:r.transformBody)==null?void 0:y.call(r,c==null?void 0:c.body))),!m){t({isFetching:!0});let{data:T,error:g}=await u(c);T&&(e=T),g&&(p=g)}}return e&&(r!=null&&r.transformResponse&&(e=await((h=r.transformResponse)==null?void 0:h.call(r,e,s().data))),r!=null&&r.onSuccess&&await((Q=r.onSuccess)==null?void 0:Q.call(r,e))),p&&(r!=null&&r.transformError&&(p=await((S=r.transformError)==null?void 0:S.call(r,p,s().error))),r!=null&&r.onError&&await((i=r.onError)==null?void 0:i.call(r,p))),e?(t({data:e,isSuccess:!0,isLoading:!1,isFetching:!1,cashExp:m?a:Date.now()+w,arg:n}),{data:e}):(t({isLoading:!1,isSuccess:!1,isFetching:!1,isError:!0,error:p,arg:n}),{error:p})}catch(e){return t({isLoading:!1,isSuccess:!1,isFetching:!1,isError:!0,error:e,arg:n}),{error:e}}};async function b(n,t,s,r,u,w,F,E,l){var i,e,p;let y={arg:n,def:r,get:s,set:t};for(let a of l)await((i=a.beforeQuery)==null?void 0:i.call(a,y));let h=-1,Q=async a=>{if(a<=h)throw new Error("next() called multiple times");h=a;let o=E[a];return o?o(y,()=>Q(a+1)):U(n,t,s,r,u,w,F)},S=await Q(0);for(let a of l)await((e=a.afterQuery)==null?void 0:e.call(a,S,y));if(S!=null&&S.error)for(let a of l)await((p=a.onError)==null?void 0:p.call(a,S.error,y));return S}function W(n){let{baseQuery:t,endpoints:s,cacheTimeout:r=30*1e3,middlewares:u=[],plugins:w=[]}=n,E=s({query:i=>({type:"query",queryFn:i.query,...i}),mutation:i=>({type:"mutation",queryFn:i.query,...i})}),l={},y=(w||[]).filter(i=>i.middleware&&typeof i.middleware=="function").map(i=>i.middleware),h=new Map,Q=new Map;for(let i in E){let e=E[i],p=`use${z(i)}`+(e.type==="query"?"Query":"Mutation"),a=(e.plugins||[]).filter(o=>(o==null?void 0:o.middleware)&&typeof o.middleware=="function").map(o=>o.middleware);e.type==="query"&&(l[p]=(o,m)=>{let c=K(i,o);if(!h.has(c)){let B=P((f,q)=>(Q.set(c,{set:f,get:q}),{data:null,isLoading:!1,isError:!1,isFetching:!1,isSuccess:!1,error:null,arg:null,cashExp:0,query:A=>b(A,f,q,e,t,r,!1,[...u,...e.middlewares||[],...a,...y],[...w,...e.plugins||[]]),reFetch:()=>{var A;return b((A=q())==null?void 0:A.arg,f,q,e,t,r,!0,[...u,...e.middlewares||[],...a,...y],[...w,...e.plugins||[]])}}));h.set(c,B)}let{skip:T}=m||{},g=h.get(c),{query:M,error:R,isError:k,isLoading:C,isSuccess:H,reFetch:O,data:I}=g();return(0,L.useEffect)(()=>{T||M(o)},[JSON.stringify(o||{})]),{error:R,isError:k,isLoading:C,isSuccess:H,data:I,reFetch:O}}),e.type==="mutation"&&(l[p]=()=>{let o=P((T,g)=>({data:null,isLoading:!1,isError:!1,isFetching:!1,isSuccess:!1,error:null,arg:null,cashExp:0,query:M=>b(M,T,g,e,t,r,!1,[...u,...e.middlewares||[],...a,...y],[...w,...e.plugins||[]]),reFetch:()=>{var M;return b((M=g())==null?void 0:M.arg,T,g,e,t,r,!0,[...u,...e.middlewares||[],...a,...y],[...w,...e.plugins||[]])}})),{query:m,...c}=o();return[m,c]})}function S(i,e,p){var m;let a=K(i,e),o=Q.get(a);o&&o.set({data:p((m=o.get())==null?void 0:m.data)})}return{...l,utils:{updateQueryData:S}}}0&&(module.exports={createApi});
|
package/dist/query/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as K}from"../chunk-SISWF3T4.mjs";import{useEffect as I}from"react";function B(o){return o.charAt(0).toUpperCase()+o.slice(1)}function k(o,i){return`${o}__${JSON.stringify(i!=null?i:{})}`}var J=async(o,i,p,r,h,E,A)=>{var g,m,l,Q,F,y,t;i({isLoading:!0});try{let n=null,u=null,e=p().cashExp,s=Date.now(),c=!1;if(A||JSON.stringify(p().arg||{})!==JSON.stringify(o||{})?c=!1:c=e>=s,c&&(n=p().data),!c&&(r!=null&&r.queryFnc)){i({isFetching:!0});let{data:a,error:w}=await((g=r==null?void 0:r.queryFnc)==null?void 0:g.call(r,o,h));a&&(n=a),w&&(u=w)}else{let a=r.queryFn(o);if(r!=null&&r.transformHeader&&(a.headers=await((m=r==null?void 0:r.transformHeader)==null?void 0:m.call(r,a==null?void 0:a.headers))),r!=null&&r.transformBody&&(a.body=await((l=r==null?void 0:r.transformBody)==null?void 0:l.call(r,a==null?void 0:a.body))),!c){i({isFetching:!0});let{data:w,error:S}=await h(a);w&&(n=w),S&&(u=S)}}return n&&(r!=null&&r.transformResponse&&(n=await((Q=r.transformResponse)==null?void 0:Q.call(r,n,p().data))),r!=null&&r.onSuccess&&await((F=r.onSuccess)==null?void 0:F.call(r,n))),u&&(r!=null&&r.transformError&&(u=await((y=r.transformError)==null?void 0:y.call(r,u,p().error))),r!=null&&r.onError&&await((t=r.onError)==null?void 0:t.call(r,u))),n?(i({data:n,isSuccess:!0,isLoading:!1,isFetching:!1,cashExp:c?e:Date.now()+E,arg:o}),{data:n}):(i({isLoading:!1,isSuccess:!1,isFetching:!1,isError:!0,error:u,arg:o}),{error:u})}catch(n){return i({isLoading:!1,isSuccess:!1,isFetching:!1,isError:!0,error:n,arg:o}),{error:n}}};async function b(o,i,p,r,h,E,A,g,m){var t,n,u;let l={arg:o,def:r,get:p,set:i};for(let e of m)await((t=e.beforeQuery)==null?void 0:t.call(e,l));let Q=-1,F=async e=>{if(e<=Q)throw new Error("next() called multiple times");Q=e;let s=g[e];return s?s(l,()=>F(e+1)):J(o,i,p,r,h,E,A)},y=await F(0);for(let e of m)await((n=e.afterQuery)==null?void 0:n.call(e,y,l));if(y!=null&&y.error)for(let e of m)await((u=e.onError)==null?void 0:u.call(e,y.error,l));return y}function $(o){let{baseQuery:i,endpoints:p,cacheTimeout:r=30*1e3,middlewares:h=[],plugins:E=[]}=o,g=p({query:t=>({type:"query",queryFn:t.query,...t}),mutation:t=>({type:"mutation",queryFn:t.query,...t})}),m={},l=(E||[]).filter(t=>t.middleware&&typeof t.middleware=="function").map(t=>t.middleware),Q=new Map,F=new Map;for(let t in g){let n=g[t],u=`use${B(t)}`+(n.type==="query"?"Query":"Mutation"),e=(n.plugins||[]).filter(s=>(s==null?void 0:s.middleware)&&typeof s.middleware=="function").map(s=>s.middleware);n.type==="query"&&(m[u]=(s,c)=>{let a=k(t,s);if(!Q.has(a)){let C=K((x,T)=>(F.set(a,{set:x,get:T}),{data:null,isLoading:!1,isError:!1,isFetching:!1,isSuccess:!1,error:null,arg:null,cashExp:0,query:M=>b(M,x,T,n,i,r,!1,[...h,...n.middlewares||[],...e,...l],[...E,...n.plugins||[]]),reFetch:()=>{var M;return b((M=T())==null?void 0:M.arg,x,T,n,i,r,!0,[...h,...n.middlewares||[],...e,...l],[...E,...n.plugins||[]])}}));Q.set(a,C)}let{skip:w}=c||{},S=Q.get(a),{query:q,error:R,isError:H,isLoading:L,isSuccess:f,reFetch:O,data:P}=S();return I(()=>{w||q(s)},[JSON.stringify(s||{})]),{error:R,isError:H,isLoading:L,isSuccess:f,data:P,reFetch:O}}),n.type==="mutation"&&(m[u]=()=>{let s=K((w,S)=>({data:null,isLoading:!1,isError:!1,isFetching:!1,isSuccess:!1,error:null,arg:null,cashExp:0,query:q=>b(q,w,S,n,i,r,!1,[...h,...n.middlewares||[],...e,...l],[...E,...n.plugins||[]]),reFetch:()=>{var q;return b((q=S())==null?void 0:q.arg,w,S,n,i,r,!0,[...h,...n.middlewares||[],...e,...l],[...E,...n.plugins||[]])}})),{query:c,...a}=s();return[c,a]})}function y(t,n,u){var c;let e=k(t,n),s=F.get(e);s&&s.set({data:u((c=s.get())==null?void 0:c.data)})}return{...m,utils:{updateQueryData:y}}}export{$ as createApi};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zustic",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
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",
|