@ventlio/tanstack-query 0.4.1 → 0.4.2
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/index.mjs +20 -30
- package/dist/index.mjs.map +1 -1
- package/dist/model/useKeyTrackerModel.d.ts +1 -1
- package/dist/model/useQueryModel.d.ts +1 -1
- package/dist/model/useQueryModel.js +6 -6
- package/dist/model/useRefetchQuery.d.ts +1 -1
- package/dist/model/useRefetchQuery.js +1 -1
- package/dist/queries/useDeleteRequest.d.ts +66 -6
- package/dist/queries/useDeleteRequest.js +3 -7
- package/dist/queries/useDeleteRequest.js.map +1 -1
- package/dist/queries/useGetInfiniteRequest.d.ts +109 -25
- package/dist/queries/useGetInfiniteRequest.js +2 -3
- package/dist/queries/useGetInfiniteRequest.js.map +1 -1
- package/dist/queries/useGetRequest.d.ts +74 -6
- package/dist/queries/useGetRequest.js +2 -3
- package/dist/queries/useGetRequest.js.map +1 -1
- package/dist/queries/usePatchRequest.d.ts +13 -21
- package/dist/queries/usePatchRequest.js +4 -7
- package/dist/queries/usePatchRequest.js.map +1 -1
- package/dist/queries/usePostRequest.d.ts +25 -30
- package/dist/queries/usePostRequest.js +2 -3
- package/dist/queries/usePostRequest.js.map +1 -1
- package/package.json +2 -2
- package/src/model/useKeyTrackerModel.ts +2 -2
- package/src/model/useQueryModel.ts +7 -7
- package/src/model/useRefetchQuery.ts +1 -1
- package/src/queries/useDeleteRequest.ts +7 -7
- package/src/queries/useGetInfiniteRequest.ts +19 -14
- package/src/queries/useGetRequest.ts +9 -6
- package/src/queries/usePatchRequest.ts +5 -5
- package/src/queries/usePostRequest.ts +2 -4
|
@@ -19,7 +19,6 @@ export declare const useGetRequest: <TResponse extends Record<string, any>>({ pa
|
|
|
19
19
|
data: IRequestSuccess<TResponse>;
|
|
20
20
|
error: any;
|
|
21
21
|
isError: true;
|
|
22
|
-
isPending: false;
|
|
23
22
|
isLoadingError: false;
|
|
24
23
|
isRefetchError: true;
|
|
25
24
|
isSuccess: false;
|
|
@@ -35,10 +34,12 @@ export declare const useGetRequest: <TResponse extends Record<string, any>>({ pa
|
|
|
35
34
|
isInitialLoading: boolean;
|
|
36
35
|
isPaused: boolean;
|
|
37
36
|
isPlaceholderData: boolean;
|
|
37
|
+
isPreviousData: boolean;
|
|
38
38
|
isRefetching: boolean;
|
|
39
39
|
isStale: boolean;
|
|
40
|
-
refetch: (options?: import("@tanstack/query
|
|
41
|
-
|
|
40
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<IRequestSuccess<TResponse>, any>>;
|
|
41
|
+
remove: () => void;
|
|
42
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
42
43
|
} | {
|
|
43
44
|
isLoading: boolean;
|
|
44
45
|
setRequestPath: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
@@ -51,7 +52,6 @@ export declare const useGetRequest: <TResponse extends Record<string, any>>({ pa
|
|
|
51
52
|
data: IRequestSuccess<TResponse>;
|
|
52
53
|
error: null;
|
|
53
54
|
isError: false;
|
|
54
|
-
isPending: false;
|
|
55
55
|
isLoadingError: false;
|
|
56
56
|
isRefetchError: false;
|
|
57
57
|
isSuccess: true;
|
|
@@ -67,8 +67,76 @@ export declare const useGetRequest: <TResponse extends Record<string, any>>({ pa
|
|
|
67
67
|
isInitialLoading: boolean;
|
|
68
68
|
isPaused: boolean;
|
|
69
69
|
isPlaceholderData: boolean;
|
|
70
|
+
isPreviousData: boolean;
|
|
70
71
|
isRefetching: boolean;
|
|
71
72
|
isStale: boolean;
|
|
72
|
-
refetch: (options?: import("@tanstack/query
|
|
73
|
-
|
|
73
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<IRequestSuccess<TResponse>, any>>;
|
|
74
|
+
remove: () => void;
|
|
75
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
76
|
+
} | {
|
|
77
|
+
isLoading: boolean;
|
|
78
|
+
setRequestPath: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
79
|
+
nextPage: () => void;
|
|
80
|
+
prevPage: () => void;
|
|
81
|
+
get: (link: string, fetchOptions?: UseQueryOptions<IRequestSuccess<TResponse | undefined>, IRequestError, IRequestSuccess<TResponse | undefined>, any[]> | undefined) => Promise<IRequestSuccess<TResponse> | undefined>;
|
|
82
|
+
gotoPage: (pageNumber: number) => void;
|
|
83
|
+
page: number;
|
|
84
|
+
queryKey: {}[];
|
|
85
|
+
data: undefined;
|
|
86
|
+
error: any;
|
|
87
|
+
isError: true;
|
|
88
|
+
isLoadingError: true;
|
|
89
|
+
isRefetchError: false;
|
|
90
|
+
isSuccess: false;
|
|
91
|
+
status: "error";
|
|
92
|
+
dataUpdatedAt: number;
|
|
93
|
+
errorUpdatedAt: number;
|
|
94
|
+
failureCount: number;
|
|
95
|
+
failureReason: any;
|
|
96
|
+
errorUpdateCount: number;
|
|
97
|
+
isFetched: boolean;
|
|
98
|
+
isFetchedAfterMount: boolean;
|
|
99
|
+
isFetching: boolean;
|
|
100
|
+
isInitialLoading: boolean;
|
|
101
|
+
isPaused: boolean;
|
|
102
|
+
isPlaceholderData: boolean;
|
|
103
|
+
isPreviousData: boolean;
|
|
104
|
+
isRefetching: boolean;
|
|
105
|
+
isStale: boolean;
|
|
106
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<IRequestSuccess<TResponse>, any>>;
|
|
107
|
+
remove: () => void;
|
|
108
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
109
|
+
} | {
|
|
110
|
+
isLoading: boolean;
|
|
111
|
+
setRequestPath: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
112
|
+
nextPage: () => void;
|
|
113
|
+
prevPage: () => void;
|
|
114
|
+
get: (link: string, fetchOptions?: UseQueryOptions<IRequestSuccess<TResponse | undefined>, IRequestError, IRequestSuccess<TResponse | undefined>, any[]> | undefined) => Promise<IRequestSuccess<TResponse> | undefined>;
|
|
115
|
+
gotoPage: (pageNumber: number) => void;
|
|
116
|
+
page: number;
|
|
117
|
+
queryKey: {}[];
|
|
118
|
+
data: undefined;
|
|
119
|
+
error: null;
|
|
120
|
+
isError: false;
|
|
121
|
+
isLoadingError: false;
|
|
122
|
+
isRefetchError: false;
|
|
123
|
+
isSuccess: false;
|
|
124
|
+
status: "loading";
|
|
125
|
+
dataUpdatedAt: number;
|
|
126
|
+
errorUpdatedAt: number;
|
|
127
|
+
failureCount: number;
|
|
128
|
+
failureReason: any;
|
|
129
|
+
errorUpdateCount: number;
|
|
130
|
+
isFetched: boolean;
|
|
131
|
+
isFetchedAfterMount: boolean;
|
|
132
|
+
isFetching: boolean;
|
|
133
|
+
isInitialLoading: boolean;
|
|
134
|
+
isPaused: boolean;
|
|
135
|
+
isPlaceholderData: boolean;
|
|
136
|
+
isPreviousData: boolean;
|
|
137
|
+
isRefetching: boolean;
|
|
138
|
+
isStale: boolean;
|
|
139
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<IRequestSuccess<TResponse>, any>>;
|
|
140
|
+
remove: () => void;
|
|
141
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
74
142
|
};
|
|
@@ -52,9 +52,7 @@ const useGetRequest = ({ path, load = false, queryOptions, keyTracker, baseUrl,
|
|
|
52
52
|
res(null);
|
|
53
53
|
}
|
|
54
54
|
};
|
|
55
|
-
const query = useQuery({
|
|
56
|
-
queryKey: [requestPath, {}],
|
|
57
|
-
queryFn: ({ queryKey }) => new Promise((res, rej) => sendRequest(res, rej, queryKey)),
|
|
55
|
+
const query = useQuery([requestPath, {}], ({ queryKey }) => new Promise((res, rej) => sendRequest(res, rej, queryKey)), {
|
|
58
56
|
enabled: load && !isFutureQueriesPaused,
|
|
59
57
|
...options,
|
|
60
58
|
});
|
|
@@ -67,6 +65,7 @@ const useGetRequest = ({ path, load = false, queryOptions, keyTracker, baseUrl,
|
|
|
67
65
|
if (keyTracker) {
|
|
68
66
|
// set expiration time for the tracker
|
|
69
67
|
queryClient.setQueryDefaults([keyTracker], {
|
|
68
|
+
cacheTime: Infinity,
|
|
70
69
|
staleTime: Infinity,
|
|
71
70
|
});
|
|
72
71
|
queryClient.setQueryData([keyTracker], [requestPath, {}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useGetRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -6,81 +6,73 @@ export declare const usePatchRequest: <TResponse>({ path, baseUrl, headers }: {
|
|
|
6
6
|
} & DefaultRequestOptions) => {
|
|
7
7
|
isLoading: boolean;
|
|
8
8
|
data: undefined;
|
|
9
|
-
variables: undefined;
|
|
10
9
|
error: null;
|
|
11
10
|
isError: false;
|
|
12
11
|
isIdle: true;
|
|
13
|
-
isPending: false;
|
|
14
12
|
isSuccess: false;
|
|
15
13
|
status: "idle";
|
|
16
|
-
mutate: import("@tanstack/react-query
|
|
14
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<IRequestSuccess<TResponse>, IRequestError, void, unknown>;
|
|
17
15
|
reset: () => void;
|
|
18
16
|
context: unknown;
|
|
19
17
|
failureCount: number;
|
|
20
18
|
failureReason: IRequestError | null;
|
|
21
19
|
isPaused: boolean;
|
|
22
|
-
|
|
23
|
-
mutateAsync: import("@tanstack/react-query
|
|
20
|
+
variables: void | undefined;
|
|
21
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<IRequestSuccess<TResponse>, IRequestError, void, unknown>;
|
|
24
22
|
patch: (data: any, options?: MutateOptions<IRequestSuccess<TResponse>, IRequestError, void, unknown> | undefined) => Promise<IRequestSuccess<TResponse> | undefined>;
|
|
25
23
|
uploadProgressPercent: number;
|
|
26
24
|
} | {
|
|
27
25
|
isLoading: boolean;
|
|
28
26
|
data: undefined;
|
|
29
|
-
variables: void;
|
|
30
27
|
error: null;
|
|
31
28
|
isError: false;
|
|
32
29
|
isIdle: false;
|
|
33
|
-
isPending: true;
|
|
34
30
|
isSuccess: false;
|
|
35
|
-
status: "
|
|
36
|
-
mutate: import("@tanstack/react-query
|
|
31
|
+
status: "loading";
|
|
32
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<IRequestSuccess<TResponse>, IRequestError, void, unknown>;
|
|
37
33
|
reset: () => void;
|
|
38
34
|
context: unknown;
|
|
39
35
|
failureCount: number;
|
|
40
36
|
failureReason: IRequestError | null;
|
|
41
37
|
isPaused: boolean;
|
|
42
|
-
|
|
43
|
-
mutateAsync: import("@tanstack/react-query
|
|
38
|
+
variables: void | undefined;
|
|
39
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<IRequestSuccess<TResponse>, IRequestError, void, unknown>;
|
|
44
40
|
patch: (data: any, options?: MutateOptions<IRequestSuccess<TResponse>, IRequestError, void, unknown> | undefined) => Promise<IRequestSuccess<TResponse> | undefined>;
|
|
45
41
|
uploadProgressPercent: number;
|
|
46
42
|
} | {
|
|
47
43
|
isLoading: boolean;
|
|
48
44
|
data: undefined;
|
|
49
45
|
error: IRequestError;
|
|
50
|
-
variables: void;
|
|
51
46
|
isError: true;
|
|
52
47
|
isIdle: false;
|
|
53
|
-
isPending: false;
|
|
54
48
|
isSuccess: false;
|
|
55
49
|
status: "error";
|
|
56
|
-
mutate: import("@tanstack/react-query
|
|
50
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<IRequestSuccess<TResponse>, IRequestError, void, unknown>;
|
|
57
51
|
reset: () => void;
|
|
58
52
|
context: unknown;
|
|
59
53
|
failureCount: number;
|
|
60
54
|
failureReason: IRequestError | null;
|
|
61
55
|
isPaused: boolean;
|
|
62
|
-
|
|
63
|
-
mutateAsync: import("@tanstack/react-query
|
|
56
|
+
variables: void | undefined;
|
|
57
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<IRequestSuccess<TResponse>, IRequestError, void, unknown>;
|
|
64
58
|
patch: (data: any, options?: MutateOptions<IRequestSuccess<TResponse>, IRequestError, void, unknown> | undefined) => Promise<IRequestSuccess<TResponse> | undefined>;
|
|
65
59
|
uploadProgressPercent: number;
|
|
66
60
|
} | {
|
|
67
61
|
isLoading: boolean;
|
|
68
62
|
data: IRequestSuccess<TResponse>;
|
|
69
63
|
error: null;
|
|
70
|
-
variables: void;
|
|
71
64
|
isError: false;
|
|
72
65
|
isIdle: false;
|
|
73
|
-
isPending: false;
|
|
74
66
|
isSuccess: true;
|
|
75
67
|
status: "success";
|
|
76
|
-
mutate: import("@tanstack/react-query
|
|
68
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<IRequestSuccess<TResponse>, IRequestError, void, unknown>;
|
|
77
69
|
reset: () => void;
|
|
78
70
|
context: unknown;
|
|
79
71
|
failureCount: number;
|
|
80
72
|
failureReason: IRequestError | null;
|
|
81
73
|
isPaused: boolean;
|
|
82
|
-
|
|
83
|
-
mutateAsync: import("@tanstack/react-query
|
|
74
|
+
variables: void | undefined;
|
|
75
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<IRequestSuccess<TResponse>, IRequestError, void, unknown>;
|
|
84
76
|
patch: (data: any, options?: MutateOptions<IRequestSuccess<TResponse>, IRequestError, void, unknown> | undefined) => Promise<IRequestSuccess<TResponse> | undefined>;
|
|
85
77
|
uploadProgressPercent: number;
|
|
86
78
|
};
|
|
@@ -58,12 +58,9 @@ const usePatchRequest = ({ path, baseUrl, headers }) => {
|
|
|
58
58
|
}
|
|
59
59
|
};
|
|
60
60
|
// register post mutation
|
|
61
|
-
const mutation = useMutation({
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}),
|
|
65
|
-
mutationKey: [path, { type: 'mutation' }],
|
|
66
|
-
});
|
|
61
|
+
const mutation = useMutation((dataData) => new Promise((res, rej) => {
|
|
62
|
+
return sendRequest(res, rej, dataData);
|
|
63
|
+
}), { mutationKey: [path, { type: 'mutation' }] });
|
|
67
64
|
const patch = async (data, options) => {
|
|
68
65
|
if (!isFutureMutationsPaused) {
|
|
69
66
|
return mutation.mutateAsync(data, options);
|
|
@@ -80,7 +77,7 @@ const usePatchRequest = ({ path, baseUrl, headers }) => {
|
|
|
80
77
|
}
|
|
81
78
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
82
79
|
}, [isFutureMutationsPaused]);
|
|
83
|
-
return { patch, uploadProgressPercent, ...mutation, isLoading: mutation.
|
|
80
|
+
return { patch, uploadProgressPercent, ...mutation, isLoading: mutation.isLoading || isFutureMutationsPaused };
|
|
84
81
|
};
|
|
85
82
|
|
|
86
83
|
export { usePatchRequest };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePatchRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePatchRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -8,14 +8,12 @@ export declare const usePostRequest: <TResponse>({ path, isFormData, baseUrl, he
|
|
|
8
8
|
} & DefaultRequestOptions) => {
|
|
9
9
|
isLoading: boolean;
|
|
10
10
|
data: undefined;
|
|
11
|
-
variables: undefined;
|
|
12
11
|
error: null;
|
|
13
12
|
isError: false;
|
|
14
13
|
isIdle: true;
|
|
15
|
-
isPending: false;
|
|
16
14
|
isSuccess: false;
|
|
17
15
|
status: "idle";
|
|
18
|
-
mutate: import("@tanstack/react-query
|
|
16
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<IRequestSuccess<TResponse>, IRequestError, {
|
|
19
17
|
data: any;
|
|
20
18
|
requestConfig?: Partial<Omit<IMakeRequest, "body">> | undefined;
|
|
21
19
|
}, unknown>;
|
|
@@ -24,8 +22,11 @@ export declare const usePostRequest: <TResponse>({ path, isFormData, baseUrl, he
|
|
|
24
22
|
failureCount: number;
|
|
25
23
|
failureReason: IRequestError | null;
|
|
26
24
|
isPaused: boolean;
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
variables: {
|
|
26
|
+
data: any;
|
|
27
|
+
requestConfig?: Partial<Omit<IMakeRequest, "body">> | undefined;
|
|
28
|
+
} | undefined;
|
|
29
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<IRequestSuccess<TResponse>, IRequestError, {
|
|
29
30
|
data: any;
|
|
30
31
|
requestConfig?: Partial<Omit<IMakeRequest, "body">> | undefined;
|
|
31
32
|
}, unknown>;
|
|
@@ -43,17 +44,12 @@ export declare const usePostRequest: <TResponse>({ path, isFormData, baseUrl, he
|
|
|
43
44
|
} | {
|
|
44
45
|
isLoading: boolean;
|
|
45
46
|
data: undefined;
|
|
46
|
-
variables: {
|
|
47
|
-
data: any;
|
|
48
|
-
requestConfig?: Partial<Omit<IMakeRequest, "body">> | undefined;
|
|
49
|
-
};
|
|
50
47
|
error: null;
|
|
51
48
|
isError: false;
|
|
52
49
|
isIdle: false;
|
|
53
|
-
isPending: true;
|
|
54
50
|
isSuccess: false;
|
|
55
|
-
status: "
|
|
56
|
-
mutate: import("@tanstack/react-query
|
|
51
|
+
status: "loading";
|
|
52
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<IRequestSuccess<TResponse>, IRequestError, {
|
|
57
53
|
data: any;
|
|
58
54
|
requestConfig?: Partial<Omit<IMakeRequest, "body">> | undefined;
|
|
59
55
|
}, unknown>;
|
|
@@ -62,8 +58,11 @@ export declare const usePostRequest: <TResponse>({ path, isFormData, baseUrl, he
|
|
|
62
58
|
failureCount: number;
|
|
63
59
|
failureReason: IRequestError | null;
|
|
64
60
|
isPaused: boolean;
|
|
65
|
-
|
|
66
|
-
|
|
61
|
+
variables: {
|
|
62
|
+
data: any;
|
|
63
|
+
requestConfig?: Partial<Omit<IMakeRequest, "body">> | undefined;
|
|
64
|
+
} | undefined;
|
|
65
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<IRequestSuccess<TResponse>, IRequestError, {
|
|
67
66
|
data: any;
|
|
68
67
|
requestConfig?: Partial<Omit<IMakeRequest, "body">> | undefined;
|
|
69
68
|
}, unknown>;
|
|
@@ -82,16 +81,11 @@ export declare const usePostRequest: <TResponse>({ path, isFormData, baseUrl, he
|
|
|
82
81
|
isLoading: boolean;
|
|
83
82
|
data: undefined;
|
|
84
83
|
error: IRequestError;
|
|
85
|
-
variables: {
|
|
86
|
-
data: any;
|
|
87
|
-
requestConfig?: Partial<Omit<IMakeRequest, "body">> | undefined;
|
|
88
|
-
};
|
|
89
84
|
isError: true;
|
|
90
85
|
isIdle: false;
|
|
91
|
-
isPending: false;
|
|
92
86
|
isSuccess: false;
|
|
93
87
|
status: "error";
|
|
94
|
-
mutate: import("@tanstack/react-query
|
|
88
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<IRequestSuccess<TResponse>, IRequestError, {
|
|
95
89
|
data: any;
|
|
96
90
|
requestConfig?: Partial<Omit<IMakeRequest, "body">> | undefined;
|
|
97
91
|
}, unknown>;
|
|
@@ -100,8 +94,11 @@ export declare const usePostRequest: <TResponse>({ path, isFormData, baseUrl, he
|
|
|
100
94
|
failureCount: number;
|
|
101
95
|
failureReason: IRequestError | null;
|
|
102
96
|
isPaused: boolean;
|
|
103
|
-
|
|
104
|
-
|
|
97
|
+
variables: {
|
|
98
|
+
data: any;
|
|
99
|
+
requestConfig?: Partial<Omit<IMakeRequest, "body">> | undefined;
|
|
100
|
+
} | undefined;
|
|
101
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<IRequestSuccess<TResponse>, IRequestError, {
|
|
105
102
|
data: any;
|
|
106
103
|
requestConfig?: Partial<Omit<IMakeRequest, "body">> | undefined;
|
|
107
104
|
}, unknown>;
|
|
@@ -120,16 +117,11 @@ export declare const usePostRequest: <TResponse>({ path, isFormData, baseUrl, he
|
|
|
120
117
|
isLoading: boolean;
|
|
121
118
|
data: IRequestSuccess<TResponse>;
|
|
122
119
|
error: null;
|
|
123
|
-
variables: {
|
|
124
|
-
data: any;
|
|
125
|
-
requestConfig?: Partial<Omit<IMakeRequest, "body">> | undefined;
|
|
126
|
-
};
|
|
127
120
|
isError: false;
|
|
128
121
|
isIdle: false;
|
|
129
|
-
isPending: false;
|
|
130
122
|
isSuccess: true;
|
|
131
123
|
status: "success";
|
|
132
|
-
mutate: import("@tanstack/react-query
|
|
124
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<IRequestSuccess<TResponse>, IRequestError, {
|
|
133
125
|
data: any;
|
|
134
126
|
requestConfig?: Partial<Omit<IMakeRequest, "body">> | undefined;
|
|
135
127
|
}, unknown>;
|
|
@@ -138,8 +130,11 @@ export declare const usePostRequest: <TResponse>({ path, isFormData, baseUrl, he
|
|
|
138
130
|
failureCount: number;
|
|
139
131
|
failureReason: IRequestError | null;
|
|
140
132
|
isPaused: boolean;
|
|
141
|
-
|
|
142
|
-
|
|
133
|
+
variables: {
|
|
134
|
+
data: any;
|
|
135
|
+
requestConfig?: Partial<Omit<IMakeRequest, "body">> | undefined;
|
|
136
|
+
} | undefined;
|
|
137
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<IRequestSuccess<TResponse>, IRequestError, {
|
|
143
138
|
data: any;
|
|
144
139
|
requestConfig?: Partial<Omit<IMakeRequest, "body">> | undefined;
|
|
145
140
|
}, unknown>;
|
|
@@ -68,8 +68,7 @@ const usePostRequest = ({ path, isFormData = false, baseUrl, headers, fileSelect
|
|
|
68
68
|
}
|
|
69
69
|
};
|
|
70
70
|
// register post mutation
|
|
71
|
-
const mutation = useMutation({
|
|
72
|
-
mutationFn: async (postData) => new Promise((res, rej) => sendRequest(res, rej, postData)),
|
|
71
|
+
const mutation = useMutation(async (postData) => new Promise((res, rej) => sendRequest(res, rej, postData)), {
|
|
73
72
|
mutationKey: [path, { type: 'mutation' }],
|
|
74
73
|
});
|
|
75
74
|
const post = async (data, options) => {
|
|
@@ -89,7 +88,7 @@ const usePostRequest = ({ path, isFormData = false, baseUrl, headers, fileSelect
|
|
|
89
88
|
}
|
|
90
89
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
91
90
|
}, [isFutureMutationsPaused]);
|
|
92
|
-
return { post, uploadProgressPercent, ...mutation, isLoading: mutation.
|
|
91
|
+
return { post, uploadProgressPercent, ...mutation, isLoading: mutation.isLoading || isFutureMutationsPaused };
|
|
93
92
|
};
|
|
94
93
|
|
|
95
94
|
export { usePostRequest };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePostRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePostRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ventlio/tanstack-query",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"contributors": [
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"@rollup/plugin-json": "^6.0.0",
|
|
48
48
|
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
49
49
|
"@rollup/plugin-typescript": "^11.0.0",
|
|
50
|
-
"@tanstack/react-query": "^
|
|
50
|
+
"@tanstack/react-query": "^4.26.1",
|
|
51
51
|
"@testing-library/react": "^13.1",
|
|
52
52
|
"@testing-library/react-hooks": "^8.0.1",
|
|
53
53
|
"@types/axios": "^0.14.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useQueryClient } from '@tanstack/react-query';
|
|
2
2
|
|
|
3
|
-
export const useKeyTrackerModel = (keyTracker: string) => {
|
|
3
|
+
export const useKeyTrackerModel = <T>(keyTracker: string) => {
|
|
4
4
|
const queryClient = useQueryClient();
|
|
5
5
|
|
|
6
6
|
const getQueryKey = (innerKeyTracker?: string) => {
|
|
@@ -12,7 +12,7 @@ export const useKeyTrackerModel = (keyTracker: string) => {
|
|
|
12
12
|
const refetchQuery = async (innerKeyTracker?: string) => {
|
|
13
13
|
const queryKey: any = getQueryKey(innerKeyTracker ?? keyTracker);
|
|
14
14
|
|
|
15
|
-
await queryClient.refetchQueries({
|
|
15
|
+
await queryClient.refetchQueries<T>({
|
|
16
16
|
queryKey,
|
|
17
17
|
exact: true,
|
|
18
18
|
});
|
|
@@ -5,7 +5,7 @@ import { useQueryConfig } from '../config';
|
|
|
5
5
|
import type { QueryModelAddPosition, QueryModelBuilder } from './model.interface';
|
|
6
6
|
import { useKeyTrackerModel } from './useKeyTrackerModel';
|
|
7
7
|
|
|
8
|
-
export const useQueryModel = <T>(keyTracker: string): QueryModelBuilder<T> => {
|
|
8
|
+
export const useQueryModel = <T>(keyTracker: string, exact: boolean = true): QueryModelBuilder<T> => {
|
|
9
9
|
const queryClient = useQueryClient();
|
|
10
10
|
const { getQueryKey } = useKeyTrackerModel(keyTracker);
|
|
11
11
|
const queryKey = getQueryKey() as any[];
|
|
@@ -24,7 +24,7 @@ export const useQueryModel = <T>(keyTracker: string): QueryModelBuilder<T> => {
|
|
|
24
24
|
if (!path) {
|
|
25
25
|
queryClient.setQueryData(queryKey, records);
|
|
26
26
|
} else {
|
|
27
|
-
const queryData = queryClient.getQueryData(queryKey) ?? {};
|
|
27
|
+
const queryData = queryClient.getQueryData(queryKey, { exact }) ?? {};
|
|
28
28
|
queryClient.setQueryData(queryKey, lodashSet(queryData, path, records));
|
|
29
29
|
}
|
|
30
30
|
|
|
@@ -32,7 +32,7 @@ export const useQueryModel = <T>(keyTracker: string): QueryModelBuilder<T> => {
|
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
const findAll = (path?: string): T[] | T | undefined => {
|
|
35
|
-
const data = queryClient.getQueryData(queryKey);
|
|
35
|
+
const data = queryClient.getQueryData(queryKey, { exact });
|
|
36
36
|
|
|
37
37
|
if (!data) {
|
|
38
38
|
return [];
|
|
@@ -62,7 +62,7 @@ export const useQueryModel = <T>(keyTracker: string): QueryModelBuilder<T> => {
|
|
|
62
62
|
};
|
|
63
63
|
|
|
64
64
|
const get = (path?: string): T | undefined => {
|
|
65
|
-
let data = queryClient.getQueryData(queryKey);
|
|
65
|
+
let data = queryClient.getQueryData(queryKey, { exact });
|
|
66
66
|
if (path) {
|
|
67
67
|
data = result<T>(data, path);
|
|
68
68
|
}
|
|
@@ -75,7 +75,7 @@ export const useQueryModel = <T>(keyTracker: string): QueryModelBuilder<T> => {
|
|
|
75
75
|
newData = lodashSet(data, path, newData);
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
return queryClient.setQueryData(queryKey, newData
|
|
78
|
+
return queryClient.setQueryData(queryKey, newData) as DataType;
|
|
79
79
|
};
|
|
80
80
|
|
|
81
81
|
const getModelConfig = () => {
|
|
@@ -108,7 +108,7 @@ export const useQueryModel = <T>(keyTracker: string): QueryModelBuilder<T> => {
|
|
|
108
108
|
if (!path) {
|
|
109
109
|
queryClient.setQueryData(queryKey, newData);
|
|
110
110
|
} else {
|
|
111
|
-
const queryData = queryClient.getQueryData(queryKey) ?? {};
|
|
111
|
+
const queryData = queryClient.getQueryData(queryKey, { exact }) ?? {};
|
|
112
112
|
queryClient.setQueryData(queryKey, lodashSet(queryData, path, newData));
|
|
113
113
|
}
|
|
114
114
|
return updatedRecord;
|
|
@@ -135,7 +135,7 @@ export const useQueryModel = <T>(keyTracker: string): QueryModelBuilder<T> => {
|
|
|
135
135
|
if (!path) {
|
|
136
136
|
queryClient.setQueryData(queryKey, newData);
|
|
137
137
|
} else {
|
|
138
|
-
const queryData = queryClient.getQueryData(queryKey) ?? {};
|
|
138
|
+
const queryData = queryClient.getQueryData(queryKey, { exact }) ?? {};
|
|
139
139
|
queryClient.setQueryData(queryKey, lodashSet(queryData, path, newData));
|
|
140
140
|
}
|
|
141
141
|
return updated;
|
|
@@ -12,7 +12,7 @@ export const useRefetchQuery = async (queryKey: any[]) => {
|
|
|
12
12
|
{ throwOnError: true, cancelRefetch: true }
|
|
13
13
|
);
|
|
14
14
|
|
|
15
|
-
return queryClient.getQueriesData<T>(
|
|
15
|
+
return queryClient.getQueriesData<T>(innerQueryKey ?? queryKey);
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
return { refetchQuery };
|
|
@@ -52,13 +52,12 @@ export const useDeleteRequest = <TResponse>(deleteOptions?: DefaultRequestOption
|
|
|
52
52
|
}
|
|
53
53
|
};
|
|
54
54
|
|
|
55
|
-
const query = useQuery<any, any, IRequestSuccess<TResponse>>(
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
const query = useQuery<any, any, IRequestSuccess<TResponse>>(
|
|
56
|
+
[requestPath, {}],
|
|
57
|
+
({ queryKey }) =>
|
|
58
58
|
new Promise<IRequestSuccess<TResponse> | IRequestError>((res, rej) => sendRequest(res, rej, queryKey)),
|
|
59
|
-
enabled: false,
|
|
60
|
-
|
|
61
|
-
});
|
|
59
|
+
{ enabled: false, ...options }
|
|
60
|
+
);
|
|
62
61
|
|
|
63
62
|
const updatedPathAsync = async (link: string) => {
|
|
64
63
|
return setRequestPath(link);
|
|
@@ -79,7 +78,8 @@ export const useDeleteRequest = <TResponse>(deleteOptions?: DefaultRequestOption
|
|
|
79
78
|
): Promise<IRequestSuccess<TResponse> | undefined> => {
|
|
80
79
|
if (!isFutureQueriesPaused) {
|
|
81
80
|
// set enabled to be true for every delete
|
|
82
|
-
internalDeleteOptions = internalDeleteOptions ?? {
|
|
81
|
+
internalDeleteOptions = internalDeleteOptions ?? {};
|
|
82
|
+
internalDeleteOptions.enabled = true;
|
|
83
83
|
|
|
84
84
|
await setOptionsAsync(internalDeleteOptions);
|
|
85
85
|
await updatedPathAsync(link);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { QueryKey, UseQueryOptions } from '@tanstack/react-query';
|
|
1
|
+
import type { InfiniteData, QueryKey, UseQueryOptions } from '@tanstack/react-query';
|
|
2
2
|
import { useInfiniteQuery, useQueryClient } from '@tanstack/react-query';
|
|
3
3
|
import { startTransition, useEffect, useMemo, useState } from 'react';
|
|
4
4
|
import { useEnvironmentVariables, useQueryConfig } from '../config';
|
|
@@ -110,17 +110,19 @@ export const useGetInfiniteRequest = <TResponse extends Record<string, any>>({
|
|
|
110
110
|
return pathname + '?' + queryParams.toString();
|
|
111
111
|
};
|
|
112
112
|
|
|
113
|
-
const query = useInfiniteQuery<any, any, IRequestSuccess<TResponse & { pagination: Pagination }>>(
|
|
114
|
-
|
|
115
|
-
|
|
113
|
+
const query = useInfiniteQuery<any, any, IRequestSuccess<TResponse & { pagination: Pagination }>>(
|
|
114
|
+
[requestPath, {}],
|
|
115
|
+
({ pageParam = requestPath, queryKey }) =>
|
|
116
116
|
new Promise<IRequestSuccess<TResponse & { pagination: Pagination }> | IRequestError>((res, rej) =>
|
|
117
|
-
sendRequest(res, rej, queryKey, pageParam
|
|
117
|
+
sendRequest(res, rej, queryKey, pageParam)
|
|
118
118
|
),
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
119
|
+
{
|
|
120
|
+
enabled: load && !isFutureQueriesPaused,
|
|
121
|
+
getNextPageParam: (lastPage) => constructPaginationLink('next_page', lastPage),
|
|
122
|
+
getPreviousPageParam: (lastPage) => constructPaginationLink('previous_page', lastPage),
|
|
123
|
+
...options,
|
|
124
|
+
}
|
|
125
|
+
);
|
|
124
126
|
|
|
125
127
|
const setOptionsAsync = async (fetchOptions: any) => {
|
|
126
128
|
startTransition(() => {
|
|
@@ -137,10 +139,12 @@ export const useGetInfiniteRequest = <TResponse extends Record<string, any>>({
|
|
|
137
139
|
Array<any>
|
|
138
140
|
>
|
|
139
141
|
): Promise<
|
|
140
|
-
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
142
|
+
| InfiniteData<
|
|
143
|
+
IRequestSuccess<
|
|
144
|
+
TResponse & {
|
|
145
|
+
pagination: Pagination;
|
|
146
|
+
}
|
|
147
|
+
>
|
|
144
148
|
>
|
|
145
149
|
| undefined
|
|
146
150
|
> => {
|
|
@@ -173,6 +177,7 @@ export const useGetInfiniteRequest = <TResponse extends Record<string, any>>({
|
|
|
173
177
|
if (keyTracker) {
|
|
174
178
|
// set expiration time for the tracker
|
|
175
179
|
queryClient.setQueryDefaults([keyTracker], {
|
|
180
|
+
cacheTime: Infinity,
|
|
176
181
|
staleTime: Infinity,
|
|
177
182
|
});
|
|
178
183
|
|
|
@@ -78,13 +78,15 @@ export const useGetRequest = <TResponse extends Record<string, any>>({
|
|
|
78
78
|
}
|
|
79
79
|
};
|
|
80
80
|
|
|
81
|
-
const query = useQuery<any, any, IRequestSuccess<TResponse>>(
|
|
82
|
-
|
|
83
|
-
|
|
81
|
+
const query = useQuery<any, any, IRequestSuccess<TResponse>>(
|
|
82
|
+
[requestPath, {}],
|
|
83
|
+
({ queryKey }) =>
|
|
84
84
|
new Promise<IRequestSuccess<TResponse> | IRequestError>((res, rej) => sendRequest(res, rej, queryKey)),
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
{
|
|
86
|
+
enabled: load && !isFutureQueriesPaused,
|
|
87
|
+
...options,
|
|
88
|
+
}
|
|
89
|
+
);
|
|
88
90
|
|
|
89
91
|
useEffect(() => {
|
|
90
92
|
if (path) {
|
|
@@ -96,6 +98,7 @@ export const useGetRequest = <TResponse extends Record<string, any>>({
|
|
|
96
98
|
if (keyTracker) {
|
|
97
99
|
// set expiration time for the tracker
|
|
98
100
|
queryClient.setQueryDefaults([keyTracker], {
|
|
101
|
+
cacheTime: Infinity,
|
|
99
102
|
staleTime: Infinity,
|
|
100
103
|
});
|
|
101
104
|
|