zustic 1.0.2 → 1.0.3

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.
@@ -0,0 +1 @@
1
+ import{useSyncExternalStore as p}from"react";function d(a,n=[]){let e,t=[],s=r=>{let o=typeof r=="function"?r(e):r;e={...e,...o},t.forEach(T=>T())},i=()=>e,c=l(s,i,n);e=a(c,i);let S=r=>(t.push(r),()=>{t=t.filter(o=>o!==r)});return()=>p(S,i)}var l=(a,n,e)=>!e||e.length===0?a:e.reduceRight((t,s)=>s(a,n)(t),a);export{d as a};
package/dist/index.js CHANGED
@@ -1,73 +1 @@
1
- "use strict";
2
- "use client";
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
- var __spreadValues = (a, b) => {
11
- for (var prop in b || (b = {}))
12
- if (__hasOwnProp.call(b, prop))
13
- __defNormalProp(a, prop, b[prop]);
14
- if (__getOwnPropSymbols)
15
- for (var prop of __getOwnPropSymbols(b)) {
16
- if (__propIsEnum.call(b, prop))
17
- __defNormalProp(a, prop, b[prop]);
18
- }
19
- return a;
20
- };
21
- var __export = (target, all) => {
22
- for (var name in all)
23
- __defProp(target, name, { get: all[name], enumerable: true });
24
- };
25
- var __copyProps = (to, from, except, desc) => {
26
- if (from && typeof from === "object" || typeof from === "function") {
27
- for (let key of __getOwnPropNames(from))
28
- if (!__hasOwnProp.call(to, key) && key !== except)
29
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
30
- }
31
- return to;
32
- };
33
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
-
35
- // src/index.ts
36
- var index_exports = {};
37
- __export(index_exports, {
38
- create: () => create
39
- });
40
- module.exports = __toCommonJS(index_exports);
41
- var import_react = require("react");
42
- function create(initializer, middlewares = []) {
43
- let state;
44
- let listeners = [];
45
- const setState = (partial) => {
46
- const partialState = typeof partial === "function" ? partial(state) : partial;
47
- state = __spreadValues(__spreadValues({}, state), partialState);
48
- listeners.forEach((l) => l());
49
- };
50
- const getState = () => state;
51
- const setStateWithMiddleware = applyMiddleware(setState, getState, middlewares);
52
- state = initializer(setStateWithMiddleware, getState);
53
- const subscribe = (listener) => {
54
- listeners.push(listener);
55
- return () => {
56
- listeners = listeners.filter((l) => l !== listener);
57
- };
58
- };
59
- return () => (0, import_react.useSyncExternalStore)(subscribe, getState);
60
- }
61
- var applyMiddleware = (set, get, middlewares) => {
62
- if (!middlewares || middlewares.length === 0) {
63
- return set;
64
- }
65
- return middlewares.reduceRight(
66
- (next, mw) => mw(set, get)(next),
67
- set
68
- );
69
- };
70
- // Annotate the CommonJS export names for ESM import in node:
71
- 0 && (module.exports = {
72
- create
73
- });
1
+ "use strict";var c=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var y=(t,r)=>{for(var e in r)c(t,e,{get:r[e],enumerable:!0})},M=(t,r,e,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of f(r))!m.call(t,o)&&o!==e&&c(t,o,{get:()=>r[o],enumerable:!(a=u(r,o))||a.enumerable});return t};var P=t=>M(c({},"__esModule",{value:!0}),t);var x={};y(x,{create:()=>S});module.exports=P(x);var p=require("react");function S(t,r=[]){let e,a=[],o=s=>{let i=typeof s=="function"?s(e):s;e={...e,...i},a.forEach(l=>l())},n=()=>e,T=h(o,n,r);e=t(T,n);let d=s=>(a.push(s),()=>{a=a.filter(i=>i!==s)});return()=>(0,p.useSyncExternalStore)(d,n)}var h=(t,r,e)=>!e||e.length===0?t:e.reduceRight((a,o)=>o(t,r)(a),t);0&&(module.exports={create});
package/dist/index.mjs CHANGED
@@ -1,51 +1 @@
1
- "use client";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
6
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
- var __spreadValues = (a, b) => {
8
- for (var prop in b || (b = {}))
9
- if (__hasOwnProp.call(b, prop))
10
- __defNormalProp(a, prop, b[prop]);
11
- if (__getOwnPropSymbols)
12
- for (var prop of __getOwnPropSymbols(b)) {
13
- if (__propIsEnum.call(b, prop))
14
- __defNormalProp(a, prop, b[prop]);
15
- }
16
- return a;
17
- };
18
-
19
- // src/index.ts
20
- import { useSyncExternalStore } from "react";
21
- function create(initializer, middlewares = []) {
22
- let state;
23
- let listeners = [];
24
- const setState = (partial) => {
25
- const partialState = typeof partial === "function" ? partial(state) : partial;
26
- state = __spreadValues(__spreadValues({}, state), partialState);
27
- listeners.forEach((l) => l());
28
- };
29
- const getState = () => state;
30
- const setStateWithMiddleware = applyMiddleware(setState, getState, middlewares);
31
- state = initializer(setStateWithMiddleware, getState);
32
- const subscribe = (listener) => {
33
- listeners.push(listener);
34
- return () => {
35
- listeners = listeners.filter((l) => l !== listener);
36
- };
37
- };
38
- return () => useSyncExternalStore(subscribe, getState);
39
- }
40
- var applyMiddleware = (set, get, middlewares) => {
41
- if (!middlewares || middlewares.length === 0) {
42
- return set;
43
- }
44
- return middlewares.reduceRight(
45
- (next, mw) => mw(set, get)(next),
46
- set
47
- );
48
- };
49
- export {
50
- create
51
- };
1
+ import{a as e}from"./chunk-SISWF3T4.mjs";export{e as create};
@@ -0,0 +1,116 @@
1
+ type QueryFnObj = {
2
+ url: string;
3
+ method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
4
+ body?: any;
5
+ headers?: Record<string, any>;
6
+ };
7
+ type QueryFnReturn = string | QueryFnObj;
8
+ type QueryFn<Arg = any> = (arg: Arg) => QueryFnReturn;
9
+ type MainQueryReturnTypes = Promise<{
10
+ data: any;
11
+ error?: undefined;
12
+ } | {
13
+ error: any;
14
+ data?: undefined;
15
+ }>;
16
+ type ApiOption<Arg, R> = {
17
+ transformResponse?: (currData: any, preData: any) => Promise<R> | R;
18
+ transformError?: (currError: any, preError: any) => Promise<any> | any;
19
+ transformBody?: (body: Arg) => Promise<any> | any;
20
+ transformHeader?: (header: Record<string, any>) => Promise<Record<string, any>> | Record<string, any>;
21
+ onError?: (err: any) => Promise<void> | void;
22
+ onSuccess?: (data: R) => Promise<void> | void;
23
+ queryFnc?: (arg: Arg, baseQuery: CreateApiParams<any>['baseQuery']) => MainQueryReturnTypes;
24
+ middlewares?: ApiMiddleware[];
25
+ plugins?: ApiPlugin[];
26
+ };
27
+ type QueryDef<Arg, Result> = {
28
+ type: 'query';
29
+ queryFn?: QueryFn<Arg>;
30
+ } & ApiOption<Arg, Result>;
31
+ type MutationDef<Arg, Result> = {
32
+ type: 'mutation';
33
+ queryFn?: QueryFn<Arg>;
34
+ } & ApiOption<Arg, Result>;
35
+ type EndpointDef = QueryDef<any, any> | MutationDef<any, any>;
36
+ type MainQueryHookResult<Result> = {
37
+ data?: Result;
38
+ isLoading: boolean;
39
+ isError: boolean;
40
+ isFetching: boolean;
41
+ isSuccess: boolean;
42
+ error: any;
43
+ reFetch: () => MainQueryReturnTypes;
44
+ };
45
+ type MainMutationState<Result> = {
46
+ data?: Result;
47
+ isLoading: boolean;
48
+ isError: boolean;
49
+ isSuccess: boolean;
50
+ error: any;
51
+ };
52
+ type EndpointsMap = Record<string, EndpointDef>;
53
+ type HooksFromEndpoints<T extends EndpointsMap> = {
54
+ [K in keyof T as T[K] extends {
55
+ 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 [(arg: Arg) => Promise<Result>, MainMutationState<Result>] : never;
57
+ };
58
+ type BuilderType = {
59
+ query<Result, Arg = void>(config: {
60
+ query?: (arg: Arg) => QueryFnReturn;
61
+ } & ApiOption<Arg, Result>): QueryDef<Arg, Result>;
62
+ mutation<Result, Arg = void>(config: {
63
+ query?: (arg: Arg) => QueryFnObj;
64
+ } & ApiOption<Arg, Result>): MutationDef<Arg, Result>;
65
+ };
66
+ type BaseQueryReturn<Data = any, Error = any> = {
67
+ data: Data;
68
+ error?: undefined;
69
+ } | {
70
+ data?: undefined;
71
+ error: Error;
72
+ };
73
+ interface CreateApiParams<T extends EndpointsMap> {
74
+ baseQuery: (option: QueryFnReturn) => Promise<BaseQueryReturn>;
75
+ endpoints: (builder: BuilderType) => T;
76
+ clashTimeout?: number;
77
+ middlewares?: ApiMiddleware[];
78
+ plugins?: ApiPlugin[];
79
+ }
80
+ interface QueryHookOption {
81
+ skip: boolean;
82
+ }
83
+ type MiddlewareContext = {
84
+ arg: any;
85
+ def: any;
86
+ get: any;
87
+ set: any;
88
+ };
89
+ type ApiMiddleware = (ctx: MiddlewareContext, next: () => Promise<{
90
+ data?: any;
91
+ error?: any;
92
+ }>) => Promise<{
93
+ data?: any;
94
+ error?: any;
95
+ }>;
96
+ type ApiPlugin = {
97
+ name: string;
98
+ onInit?: (api: {
99
+ baseQuery: any;
100
+ endpoints: any;
101
+ }) => void;
102
+ beforeQuery?: (ctx: PluginContext) => void | Promise<void>;
103
+ middleware?: ApiMiddleware;
104
+ afterQuery?: (result: any, ctx: PluginContext) => void | Promise<void>;
105
+ onError?: (error: any, ctx: PluginContext) => void | Promise<void>;
106
+ };
107
+ type PluginContext = {
108
+ arg: any;
109
+ def: any;
110
+ get: any;
111
+ set: any;
112
+ };
113
+
114
+ declare function createApi<T extends EndpointsMap>(params: CreateApiParams<T>): HooksFromEndpoints<T>;
115
+
116
+ export { type ApiMiddleware, type ApiPlugin, createApi };
@@ -0,0 +1,116 @@
1
+ type QueryFnObj = {
2
+ url: string;
3
+ method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
4
+ body?: any;
5
+ headers?: Record<string, any>;
6
+ };
7
+ type QueryFnReturn = string | QueryFnObj;
8
+ type QueryFn<Arg = any> = (arg: Arg) => QueryFnReturn;
9
+ type MainQueryReturnTypes = Promise<{
10
+ data: any;
11
+ error?: undefined;
12
+ } | {
13
+ error: any;
14
+ data?: undefined;
15
+ }>;
16
+ type ApiOption<Arg, R> = {
17
+ transformResponse?: (currData: any, preData: any) => Promise<R> | R;
18
+ transformError?: (currError: any, preError: any) => Promise<any> | any;
19
+ transformBody?: (body: Arg) => Promise<any> | any;
20
+ transformHeader?: (header: Record<string, any>) => Promise<Record<string, any>> | Record<string, any>;
21
+ onError?: (err: any) => Promise<void> | void;
22
+ onSuccess?: (data: R) => Promise<void> | void;
23
+ queryFnc?: (arg: Arg, baseQuery: CreateApiParams<any>['baseQuery']) => MainQueryReturnTypes;
24
+ middlewares?: ApiMiddleware[];
25
+ plugins?: ApiPlugin[];
26
+ };
27
+ type QueryDef<Arg, Result> = {
28
+ type: 'query';
29
+ queryFn?: QueryFn<Arg>;
30
+ } & ApiOption<Arg, Result>;
31
+ type MutationDef<Arg, Result> = {
32
+ type: 'mutation';
33
+ queryFn?: QueryFn<Arg>;
34
+ } & ApiOption<Arg, Result>;
35
+ type EndpointDef = QueryDef<any, any> | MutationDef<any, any>;
36
+ type MainQueryHookResult<Result> = {
37
+ data?: Result;
38
+ isLoading: boolean;
39
+ isError: boolean;
40
+ isFetching: boolean;
41
+ isSuccess: boolean;
42
+ error: any;
43
+ reFetch: () => MainQueryReturnTypes;
44
+ };
45
+ type MainMutationState<Result> = {
46
+ data?: Result;
47
+ isLoading: boolean;
48
+ isError: boolean;
49
+ isSuccess: boolean;
50
+ error: any;
51
+ };
52
+ type EndpointsMap = Record<string, EndpointDef>;
53
+ type HooksFromEndpoints<T extends EndpointsMap> = {
54
+ [K in keyof T as T[K] extends {
55
+ 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 [(arg: Arg) => Promise<Result>, MainMutationState<Result>] : never;
57
+ };
58
+ type BuilderType = {
59
+ query<Result, Arg = void>(config: {
60
+ query?: (arg: Arg) => QueryFnReturn;
61
+ } & ApiOption<Arg, Result>): QueryDef<Arg, Result>;
62
+ mutation<Result, Arg = void>(config: {
63
+ query?: (arg: Arg) => QueryFnObj;
64
+ } & ApiOption<Arg, Result>): MutationDef<Arg, Result>;
65
+ };
66
+ type BaseQueryReturn<Data = any, Error = any> = {
67
+ data: Data;
68
+ error?: undefined;
69
+ } | {
70
+ data?: undefined;
71
+ error: Error;
72
+ };
73
+ interface CreateApiParams<T extends EndpointsMap> {
74
+ baseQuery: (option: QueryFnReturn) => Promise<BaseQueryReturn>;
75
+ endpoints: (builder: BuilderType) => T;
76
+ clashTimeout?: number;
77
+ middlewares?: ApiMiddleware[];
78
+ plugins?: ApiPlugin[];
79
+ }
80
+ interface QueryHookOption {
81
+ skip: boolean;
82
+ }
83
+ type MiddlewareContext = {
84
+ arg: any;
85
+ def: any;
86
+ get: any;
87
+ set: any;
88
+ };
89
+ type ApiMiddleware = (ctx: MiddlewareContext, next: () => Promise<{
90
+ data?: any;
91
+ error?: any;
92
+ }>) => Promise<{
93
+ data?: any;
94
+ error?: any;
95
+ }>;
96
+ type ApiPlugin = {
97
+ name: string;
98
+ onInit?: (api: {
99
+ baseQuery: any;
100
+ endpoints: any;
101
+ }) => void;
102
+ beforeQuery?: (ctx: PluginContext) => void | Promise<void>;
103
+ middleware?: ApiMiddleware;
104
+ afterQuery?: (result: any, ctx: PluginContext) => void | Promise<void>;
105
+ onError?: (error: any, ctx: PluginContext) => void | Promise<void>;
106
+ };
107
+ type PluginContext = {
108
+ arg: any;
109
+ def: any;
110
+ get: any;
111
+ set: any;
112
+ };
113
+
114
+ declare function createApi<T extends EndpointsMap>(params: CreateApiParams<T>): HooksFromEndpoints<T>;
115
+
116
+ export { type ApiMiddleware, type ApiPlugin, createApi };
@@ -0,0 +1 @@
1
+ "use strict";var M=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var H=Object.prototype.hasOwnProperty;var C=(t,n)=>{for(var a in n)M(t,a,{get:n[a],enumerable:!0})},R=(t,n,a,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let u of k(n))!H.call(t,u)&&u!==a&&M(t,u,{get:()=>n[u],enumerable:!(r=L(n,u))||r.enumerable});return t};var O=t=>R(M({},"__esModule",{value:!0}),t);var D={};C(D,{createApi:()=>N});module.exports=O(D);var A=require("react");var P=require("react");function g(t,n=[]){let a,r=[],u=c=>{let i=typeof c=="function"?c(a):c;a={...a,...i},r.forEach(y=>y())},w=()=>a,F=B(u,w,n);a=t(F,w);let S=c=>(r.push(c),()=>{r=r.filter(i=>i!==c)});return()=>(0,P.useSyncExternalStore)(S,w)}var B=(t,n,a)=>!a||a.length===0?t:a.reduceRight((r,u)=>u(t,n)(r),t);function v(t){return t.charAt(0).toUpperCase()+t.slice(1)}var J=async(t,n,a,r,u,w,F)=>{var S,c,i,y,T,m,p;n({isLoading:!0});try{let e=null,o=null,s=a().cashExp,b=Date.now(),h=!1;if(F||JSON.stringify(a().arg||{})!==JSON.stringify(t||{})?h=!1:h=s>=b,h&&(e=a().data),!h&&(r!=null&&r.queryFnc)){n({isFetching:!0});let{data:l,error:E}=await((S=r==null?void 0:r.queryFnc)==null?void 0:S.call(r,t,u));l&&(e=l),E&&(o=E)}else{let l=r.queryFn(t);if(r!=null&&r.transformHeader&&(l.headers=await((c=r==null?void 0:r.transformHeader)==null?void 0:c.call(r,l==null?void 0:l.headers))),r!=null&&r.transformBody&&(l.body=await((i=r==null?void 0:r.transformBody)==null?void 0:i.call(r,l==null?void 0:l.body))),!h){n({isFetching:!0});let{data:E,error:q}=await u(l);E&&(e=E),q&&(o=q)}}return e&&(r!=null&&r.transformResponse&&(e=await((y=r.transformResponse)==null?void 0:y.call(r,e,a().data))),r!=null&&r.onSuccess&&await((T=r.onSuccess)==null?void 0:T.call(r,e))),o&&(r!=null&&r.transformError&&(o=await((m=r.transformError)==null?void 0:m.call(r,o,a().error))),r!=null&&r.onError&&await((p=r.onError)==null?void 0:p.call(r,o))),e?(n({data:e,isSuccess:!0,isLoading:!1,isFetching:!1,cashExp:h?s:Date.now()+w,arg:t}),{data:e}):(n({isLoading:!1,isSuccess:!1,isFetching:!1,isError:!0,error:o,arg:t}),{error:o})}catch(e){return n({isLoading:!1,isSuccess:!1,isFetching:!1,isError:!0,error:e,arg:t}),{error:e}}};async function x(t,n,a,r,u,w,F,S,c){var p,e,o;let i={arg:t,def:r,get:a,set:n};for(let s of c)await((p=s.beforeQuery)==null?void 0:p.call(s,i));let y=-1,T=async s=>{if(s<=y)throw new Error("next() called multiple times");y=s;let b=S[s];return b?b(i,()=>T(s+1)):J(t,n,a,r,u,w,F)},m=await T(0);for(let s of c)await((e=s.afterQuery)==null?void 0:e.call(s,m,i));if(m!=null&&m.error)for(let s of c)await((o=s.onError)==null?void 0:o.call(s,m.error,i));return m}function N(t){let{baseQuery:n,endpoints:a,clashTimeout:r=30*1e3,middlewares:u=[],plugins:w=[]}=t,S=a({query:i=>({type:"query",queryFn:i.query,...i}),mutation:i=>({type:"mutation",queryFn:i.query,...i})}),c={};for(let i in S){let y=S[i],T=`use${v(i)}`+(y.type==="query"?"Query":"Mutation"),m=g((p,e)=>({data:null,isLoading:!1,isError:!1,isFetching:!1,isSuccess:!1,error:null,arg:null,cashExp:0,query:o=>x(o,p,e,y,n,r,!1,[...u,...y.middlewares||[]],[...w,...y.plugins||[]]),reFetch:()=>{var o;return x((o=e())==null?void 0:o.arg,p,e,y,n,r,!0,[...u,...y.middlewares||[]],[...w,...y.plugins||[]])}}));y.type==="query"&&(c[T]=(p,e)=>{let{skip:o}=e||{},{query:s,error:b,isError:h,isLoading:l,isSuccess:E,reFetch:q,data:Q}=m();return(0,A.useEffect)(()=>{o||s(p)},[JSON.stringify(p||{})]),{error:b,isError:h,isLoading:l,isSuccess:E,data:Q,reFetch:q}}),y.type==="mutation"&&(c[T]=()=>{let{query:p,...e}=m();return[p,e]})}return c}0&&(module.exports={createApi});
@@ -0,0 +1 @@
1
+ import{a as Q}from"../chunk-SISWF3T4.mjs";import{useEffect as k}from"react";function x(a){return a.charAt(0).toUpperCase()+a.slice(1)}var M=async(a,c,l,r,h,q,b)=>{var E,p,o,s,w,y,u;c({isLoading:!0});try{let n=null,t=null,i=l().cashExp,S=Date.now(),m=!1;if(b||JSON.stringify(l().arg||{})!==JSON.stringify(a||{})?m=!1:m=i>=S,m&&(n=l().data),!m&&(r!=null&&r.queryFnc)){c({isFetching:!0});let{data:e,error:F}=await((E=r==null?void 0:r.queryFnc)==null?void 0:E.call(r,a,h));e&&(n=e),F&&(t=F)}else{let e=r.queryFn(a);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((o=r==null?void 0:r.transformBody)==null?void 0:o.call(r,e==null?void 0:e.body))),!m){c({isFetching:!0});let{data:F,error:A}=await h(e);F&&(n=F),A&&(t=A)}}return n&&(r!=null&&r.transformResponse&&(n=await((s=r.transformResponse)==null?void 0:s.call(r,n,l().data))),r!=null&&r.onSuccess&&await((w=r.onSuccess)==null?void 0:w.call(r,n))),t&&(r!=null&&r.transformError&&(t=await((y=r.transformError)==null?void 0:y.call(r,t,l().error))),r!=null&&r.onError&&await((u=r.onError)==null?void 0:u.call(r,t))),n?(c({data:n,isSuccess:!0,isLoading:!1,isFetching:!1,cashExp:m?i:Date.now()+q,arg:a}),{data:n}):(c({isLoading:!1,isSuccess:!1,isFetching:!1,isError:!0,error:t,arg:a}),{error:t})}catch(n){return c({isLoading:!1,isSuccess:!1,isFetching:!1,isError:!0,error:n,arg:a}),{error:n}}};async function T(a,c,l,r,h,q,b,E,p){var u,n,t;let o={arg:a,def:r,get:l,set:c};for(let i of p)await((u=i.beforeQuery)==null?void 0:u.call(i,o));let s=-1,w=async i=>{if(i<=s)throw new Error("next() called multiple times");s=i;let S=E[i];return S?S(o,()=>w(i+1)):M(a,c,l,r,h,q,b)},y=await w(0);for(let i of p)await((n=i.afterQuery)==null?void 0:n.call(i,y,o));if(y!=null&&y.error)for(let i of p)await((t=i.onError)==null?void 0:t.call(i,y.error,o));return y}function P(a){let{baseQuery:c,endpoints:l,clashTimeout:r=30*1e3,middlewares:h=[],plugins:q=[]}=a,E=l({query:o=>({type:"query",queryFn:o.query,...o}),mutation:o=>({type:"mutation",queryFn:o.query,...o})}),p={};for(let o in E){let s=E[o],w=`use${x(o)}`+(s.type==="query"?"Query":"Mutation"),y=Q((u,n)=>({data:null,isLoading:!1,isError:!1,isFetching:!1,isSuccess:!1,error:null,arg:null,cashExp:0,query:t=>T(t,u,n,s,c,r,!1,[...h,...s.middlewares||[]],[...q,...s.plugins||[]]),reFetch:()=>{var t;return T((t=n())==null?void 0:t.arg,u,n,s,c,r,!0,[...h,...s.middlewares||[]],[...q,...s.plugins||[]])}}));s.type==="query"&&(p[w]=(u,n)=>{let{skip:t}=n||{},{query:i,error:S,isError:m,isLoading:e,isSuccess:F,reFetch:A,data:g}=y();return k(()=>{t||i(u)},[JSON.stringify(u||{})]),{error:S,isError:m,isLoading:e,isSuccess:F,data:g,reFetch:A}}),s.type==="mutation"&&(p[w]=()=>{let{query:u,...n}=y();return[u,n]})}return p}export{P as createApi};
package/package.json CHANGED
@@ -1,21 +1,21 @@
1
1
  {
2
2
  "name": "zustic",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
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
- "main": "dist/index.js",
6
- "module": "dist/index.mjs",
7
- "types": "dist/index.d.ts",
8
5
  "scripts": {
9
- "build": "tsup src/index.ts --format esm,cjs --dts --clean --external react",
10
- "start:cjs": "node dist/cjs/index.js",
11
- "start:esm": "node dist/esm/index.js",
12
- "start": "ts-node src/index.ts",
6
+ "build": "tsup",
13
7
  "test": "npm run build && npm link"
14
8
  },
15
9
  "exports": {
16
10
  ".": {
17
- "require": "./dist/index.js",
18
- "import": "./dist/index.mjs"
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.mjs",
13
+ "require": "./dist/index.js"
14
+ },
15
+ "./query": {
16
+ "types": "./dist/query/index.d.ts",
17
+ "import": "./dist/query/index.mjs",
18
+ "require": "./dist/query/index.js"
19
19
  }
20
20
  },
21
21
  "directories": {
@@ -38,7 +38,7 @@
38
38
  "nextjs",
39
39
  "state"
40
40
  ],
41
- "homepage": "https://zustic.github.io/",
41
+ "homepage": "https://zustic.github.io",
42
42
  "files": [
43
43
  "dist/**/*",
44
44
  "README.md"