@ventlio/tanstack-query 0.4.0 → 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 +41 -50
- 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/dist/request/make-request.js +21 -20
- package/dist/request/make-request.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
- package/src/request/make-request.ts +22 -18
package/dist/index.mjs
CHANGED
|
@@ -123,7 +123,7 @@ const useKeyTrackerModel = (keyTracker) => {
|
|
|
123
123
|
return { refetchQuery, getQueryKey };
|
|
124
124
|
};
|
|
125
125
|
|
|
126
|
-
const useQueryModel = (keyTracker) => {
|
|
126
|
+
const useQueryModel = (keyTracker, exact = true) => {
|
|
127
127
|
const queryClient = useQueryClient();
|
|
128
128
|
const { getQueryKey } = useKeyTrackerModel(keyTracker);
|
|
129
129
|
const queryKey = getQueryKey();
|
|
@@ -141,13 +141,13 @@ const useQueryModel = (keyTracker) => {
|
|
|
141
141
|
queryClient.setQueryData(queryKey, records);
|
|
142
142
|
}
|
|
143
143
|
else {
|
|
144
|
-
const queryData = queryClient.getQueryData(queryKey) ?? {};
|
|
144
|
+
const queryData = queryClient.getQueryData(queryKey, { exact }) ?? {};
|
|
145
145
|
queryClient.setQueryData(queryKey, lodashSet(queryData, path, records));
|
|
146
146
|
}
|
|
147
147
|
return data;
|
|
148
148
|
};
|
|
149
149
|
const findAll = (path) => {
|
|
150
|
-
const data = queryClient.getQueryData(queryKey);
|
|
150
|
+
const data = queryClient.getQueryData(queryKey, { exact });
|
|
151
151
|
if (!data) {
|
|
152
152
|
return [];
|
|
153
153
|
}
|
|
@@ -169,7 +169,7 @@ const useQueryModel = (keyTracker) => {
|
|
|
169
169
|
return data.find((record) => record[modelConfig.idColumn] === id);
|
|
170
170
|
};
|
|
171
171
|
const get = (path) => {
|
|
172
|
-
let data = queryClient.getQueryData(queryKey);
|
|
172
|
+
let data = queryClient.getQueryData(queryKey, { exact });
|
|
173
173
|
if (path) {
|
|
174
174
|
data = result(data, path);
|
|
175
175
|
}
|
|
@@ -207,7 +207,7 @@ const useQueryModel = (keyTracker) => {
|
|
|
207
207
|
queryClient.setQueryData(queryKey, newData);
|
|
208
208
|
}
|
|
209
209
|
else {
|
|
210
|
-
const queryData = queryClient.getQueryData(queryKey) ?? {};
|
|
210
|
+
const queryData = queryClient.getQueryData(queryKey, { exact }) ?? {};
|
|
211
211
|
queryClient.setQueryData(queryKey, lodashSet(queryData, path, newData));
|
|
212
212
|
}
|
|
213
213
|
return updatedRecord;
|
|
@@ -232,7 +232,7 @@ const useQueryModel = (keyTracker) => {
|
|
|
232
232
|
queryClient.setQueryData(queryKey, newData);
|
|
233
233
|
}
|
|
234
234
|
else {
|
|
235
|
-
const queryData = queryClient.getQueryData(queryKey) ?? {};
|
|
235
|
+
const queryData = queryClient.getQueryData(queryKey, { exact }) ?? {};
|
|
236
236
|
queryClient.setQueryData(queryKey, lodashSet(queryData, path, newData));
|
|
237
237
|
}
|
|
238
238
|
return updated;
|
|
@@ -247,7 +247,7 @@ const useRefetchQuery = async (queryKey) => {
|
|
|
247
247
|
queryKey: innerQueryKey ?? queryKey,
|
|
248
248
|
exact: true,
|
|
249
249
|
}, { throwOnError: true, cancelRefetch: true });
|
|
250
|
-
return queryClient.getQueriesData(
|
|
250
|
+
return queryClient.getQueriesData(innerQueryKey ?? queryKey);
|
|
251
251
|
};
|
|
252
252
|
return { refetchQuery };
|
|
253
253
|
};
|
|
@@ -347,35 +347,36 @@ async function makeRequest({ body = {}, method = HttpMethod.GET, path, isFormDat
|
|
|
347
347
|
if (!isFormData) {
|
|
348
348
|
headers['Content-Type'] = ContentType.APPLICATION_JSON;
|
|
349
349
|
}
|
|
350
|
-
else {
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
body.append(fileKey, innerFile);
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
else {
|
|
362
|
-
body.append(fileKey, currentFile);
|
|
350
|
+
else if (isApp) {
|
|
351
|
+
headers['Content-Type'] = ContentType.MULTIPART_FORM_DATA;
|
|
352
|
+
// add the app files
|
|
353
|
+
for (const fileKey in appFiles) {
|
|
354
|
+
const currentFile = appFiles[fileKey];
|
|
355
|
+
if (Array.isArray(currentFile)) {
|
|
356
|
+
for (const innerFile of currentFile) {
|
|
357
|
+
body.append(fileKey, innerFile);
|
|
363
358
|
}
|
|
364
359
|
}
|
|
360
|
+
else {
|
|
361
|
+
body.append(fileKey, currentFile);
|
|
362
|
+
}
|
|
365
363
|
}
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
364
|
+
}
|
|
365
|
+
else {
|
|
366
|
+
delete headers['Content-Type'];
|
|
369
367
|
}
|
|
370
368
|
try {
|
|
371
369
|
const axiosRequest = axiosInstance({ baseURL, headers, timeout });
|
|
372
|
-
|
|
373
|
-
const resp = await axiosRequest({
|
|
370
|
+
const axiosRequestConfig = {
|
|
374
371
|
url: path,
|
|
375
372
|
method,
|
|
376
|
-
data: body,
|
|
377
373
|
onUploadProgress,
|
|
378
|
-
}
|
|
374
|
+
};
|
|
375
|
+
if (Object.keys(body).length > 0) {
|
|
376
|
+
axiosRequestConfig.data = body;
|
|
377
|
+
}
|
|
378
|
+
// send request
|
|
379
|
+
const resp = await axiosRequest(axiosRequestConfig);
|
|
379
380
|
// get response json
|
|
380
381
|
const jsonResp = await resp.data;
|
|
381
382
|
// get response code
|
|
@@ -450,12 +451,7 @@ const useDeleteRequest = (deleteOptions) => {
|
|
|
450
451
|
rej(null);
|
|
451
452
|
}
|
|
452
453
|
};
|
|
453
|
-
const query = useQuery({
|
|
454
|
-
queryKey: [requestPath, {}],
|
|
455
|
-
queryFn: ({ queryKey }) => new Promise((res, rej) => sendRequest(res, rej, queryKey)),
|
|
456
|
-
enabled: false,
|
|
457
|
-
...options,
|
|
458
|
-
});
|
|
454
|
+
const query = useQuery([requestPath, {}], ({ queryKey }) => new Promise((res, rej) => sendRequest(res, rej, queryKey)), { enabled: false, ...options });
|
|
459
455
|
const updatedPathAsync = async (link) => {
|
|
460
456
|
return setRequestPath(link);
|
|
461
457
|
};
|
|
@@ -465,7 +461,8 @@ const useDeleteRequest = (deleteOptions) => {
|
|
|
465
461
|
const destroy = async (link, internalDeleteOptions) => {
|
|
466
462
|
if (!isFutureQueriesPaused) {
|
|
467
463
|
// set enabled to be true for every delete
|
|
468
|
-
internalDeleteOptions = internalDeleteOptions ?? {
|
|
464
|
+
internalDeleteOptions = internalDeleteOptions ?? {};
|
|
465
|
+
internalDeleteOptions.enabled = true;
|
|
469
466
|
await setOptionsAsync(internalDeleteOptions);
|
|
470
467
|
await updatedPathAsync(link);
|
|
471
468
|
return query.data;
|
|
@@ -537,9 +534,7 @@ const useGetInfiniteRequest = ({ path, load = false, queryOptions, keyTracker, b
|
|
|
537
534
|
queryParams.set('page', String(lastPageItem));
|
|
538
535
|
return pathname + '?' + queryParams.toString();
|
|
539
536
|
};
|
|
540
|
-
const query = useInfiniteQuery({
|
|
541
|
-
queryKey: [requestPath, {}],
|
|
542
|
-
queryFn: ({ pageParam = requestPath, queryKey }) => new Promise((res, rej) => sendRequest(res, rej, queryKey, pageParam)),
|
|
537
|
+
const query = useInfiniteQuery([requestPath, {}], ({ pageParam = requestPath, queryKey }) => new Promise((res, rej) => sendRequest(res, rej, queryKey, pageParam)), {
|
|
543
538
|
enabled: load && !isFutureQueriesPaused,
|
|
544
539
|
getNextPageParam: (lastPage) => constructPaginationLink('next_page', lastPage),
|
|
545
540
|
getPreviousPageParam: (lastPage) => constructPaginationLink('previous_page', lastPage),
|
|
@@ -577,6 +572,7 @@ const useGetInfiniteRequest = ({ path, load = false, queryOptions, keyTracker, b
|
|
|
577
572
|
if (keyTracker) {
|
|
578
573
|
// set expiration time for the tracker
|
|
579
574
|
queryClient.setQueryDefaults([keyTracker], {
|
|
575
|
+
cacheTime: Infinity,
|
|
580
576
|
staleTime: Infinity,
|
|
581
577
|
});
|
|
582
578
|
queryClient.setQueryData([keyTracker], [requestPath, {}]);
|
|
@@ -632,9 +628,7 @@ const useGetRequest = ({ path, load = false, queryOptions, keyTracker, baseUrl,
|
|
|
632
628
|
res(null);
|
|
633
629
|
}
|
|
634
630
|
};
|
|
635
|
-
const query = useQuery({
|
|
636
|
-
queryKey: [requestPath, {}],
|
|
637
|
-
queryFn: ({ queryKey }) => new Promise((res, rej) => sendRequest(res, rej, queryKey)),
|
|
631
|
+
const query = useQuery([requestPath, {}], ({ queryKey }) => new Promise((res, rej) => sendRequest(res, rej, queryKey)), {
|
|
638
632
|
enabled: load && !isFutureQueriesPaused,
|
|
639
633
|
...options,
|
|
640
634
|
});
|
|
@@ -647,6 +641,7 @@ const useGetRequest = ({ path, load = false, queryOptions, keyTracker, baseUrl,
|
|
|
647
641
|
if (keyTracker) {
|
|
648
642
|
// set expiration time for the tracker
|
|
649
643
|
queryClient.setQueryDefaults([keyTracker], {
|
|
644
|
+
cacheTime: Infinity,
|
|
650
645
|
staleTime: Infinity,
|
|
651
646
|
});
|
|
652
647
|
queryClient.setQueryData([keyTracker], [requestPath, {}]);
|
|
@@ -771,12 +766,9 @@ const usePatchRequest = ({ path, baseUrl, headers }) => {
|
|
|
771
766
|
}
|
|
772
767
|
};
|
|
773
768
|
// register post mutation
|
|
774
|
-
const mutation = useMutation({
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
}),
|
|
778
|
-
mutationKey: [path, { type: 'mutation' }],
|
|
779
|
-
});
|
|
769
|
+
const mutation = useMutation((dataData) => new Promise((res, rej) => {
|
|
770
|
+
return sendRequest(res, rej, dataData);
|
|
771
|
+
}), { mutationKey: [path, { type: 'mutation' }] });
|
|
780
772
|
const patch = async (data, options) => {
|
|
781
773
|
if (!isFutureMutationsPaused) {
|
|
782
774
|
return mutation.mutateAsync(data, options);
|
|
@@ -793,7 +785,7 @@ const usePatchRequest = ({ path, baseUrl, headers }) => {
|
|
|
793
785
|
}
|
|
794
786
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
795
787
|
}, [isFutureMutationsPaused]);
|
|
796
|
-
return { patch, uploadProgressPercent, ...mutation, isLoading: mutation.
|
|
788
|
+
return { patch, uploadProgressPercent, ...mutation, isLoading: mutation.isLoading || isFutureMutationsPaused };
|
|
797
789
|
};
|
|
798
790
|
|
|
799
791
|
const usePostRequest = ({ path, isFormData = false, baseUrl, headers, fileSelectors, }) => {
|
|
@@ -852,8 +844,7 @@ const usePostRequest = ({ path, isFormData = false, baseUrl, headers, fileSelect
|
|
|
852
844
|
}
|
|
853
845
|
};
|
|
854
846
|
// register post mutation
|
|
855
|
-
const mutation = useMutation({
|
|
856
|
-
mutationFn: async (postData) => new Promise((res, rej) => sendRequest(res, rej, postData)),
|
|
847
|
+
const mutation = useMutation(async (postData) => new Promise((res, rej) => sendRequest(res, rej, postData)), {
|
|
857
848
|
mutationKey: [path, { type: 'mutation' }],
|
|
858
849
|
});
|
|
859
850
|
const post = async (data, options) => {
|
|
@@ -873,7 +864,7 @@ const usePostRequest = ({ path, isFormData = false, baseUrl, headers, fileSelect
|
|
|
873
864
|
}
|
|
874
865
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
875
866
|
}, [isFutureMutationsPaused]);
|
|
876
|
-
return { post, uploadProgressPercent, ...mutation, isLoading: mutation.
|
|
867
|
+
return { post, uploadProgressPercent, ...mutation, isLoading: mutation.isLoading || isFutureMutationsPaused };
|
|
877
868
|
};
|
|
878
869
|
|
|
879
870
|
export { ContentType, HttpMethod, axiosInstance, bootstrapQueryRequest, buildFormData, errorTransformer, getDateInFuture, makeRequest, scrollToTop, successTransformer, useDeleteRequest, useEnvironmentVariables, useGetInfiniteRequest, useGetRequest, useHeaderStore, useKeyTrackerModel, usePatchRequest, usePauseFutureRequests, usePostRequest, useQueryConfig, useQueryHeaders, useQueryModel, useReactNativeEnv, useRefetchQuery, useUploadProgress };
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { QueryModelBuilder } from './model.interface';
|
|
2
|
-
export declare const useQueryModel: <T>(keyTracker: string) => QueryModelBuilder<T>;
|
|
2
|
+
export declare const useQueryModel: <T>(keyTracker: string, exact?: boolean) => QueryModelBuilder<T>;
|
|
@@ -7,7 +7,7 @@ import '../stores/useHeaderStore.js';
|
|
|
7
7
|
import '../stores/usePauseFutureRequests.js';
|
|
8
8
|
import { useKeyTrackerModel } from './useKeyTrackerModel.js';
|
|
9
9
|
|
|
10
|
-
const useQueryModel = (keyTracker) => {
|
|
10
|
+
const useQueryModel = (keyTracker, exact = true) => {
|
|
11
11
|
const queryClient = useQueryClient();
|
|
12
12
|
const { getQueryKey } = useKeyTrackerModel(keyTracker);
|
|
13
13
|
const queryKey = getQueryKey();
|
|
@@ -25,13 +25,13 @@ const useQueryModel = (keyTracker) => {
|
|
|
25
25
|
queryClient.setQueryData(queryKey, records);
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
28
|
-
const queryData = queryClient.getQueryData(queryKey) ?? {};
|
|
28
|
+
const queryData = queryClient.getQueryData(queryKey, { exact }) ?? {};
|
|
29
29
|
queryClient.setQueryData(queryKey, lodashSet(queryData, path, records));
|
|
30
30
|
}
|
|
31
31
|
return data;
|
|
32
32
|
};
|
|
33
33
|
const findAll = (path) => {
|
|
34
|
-
const data = queryClient.getQueryData(queryKey);
|
|
34
|
+
const data = queryClient.getQueryData(queryKey, { exact });
|
|
35
35
|
if (!data) {
|
|
36
36
|
return [];
|
|
37
37
|
}
|
|
@@ -53,7 +53,7 @@ const useQueryModel = (keyTracker) => {
|
|
|
53
53
|
return data.find((record) => record[modelConfig.idColumn] === id);
|
|
54
54
|
};
|
|
55
55
|
const get = (path) => {
|
|
56
|
-
let data = queryClient.getQueryData(queryKey);
|
|
56
|
+
let data = queryClient.getQueryData(queryKey, { exact });
|
|
57
57
|
if (path) {
|
|
58
58
|
data = result(data, path);
|
|
59
59
|
}
|
|
@@ -91,7 +91,7 @@ const useQueryModel = (keyTracker) => {
|
|
|
91
91
|
queryClient.setQueryData(queryKey, newData);
|
|
92
92
|
}
|
|
93
93
|
else {
|
|
94
|
-
const queryData = queryClient.getQueryData(queryKey) ?? {};
|
|
94
|
+
const queryData = queryClient.getQueryData(queryKey, { exact }) ?? {};
|
|
95
95
|
queryClient.setQueryData(queryKey, lodashSet(queryData, path, newData));
|
|
96
96
|
}
|
|
97
97
|
return updatedRecord;
|
|
@@ -116,7 +116,7 @@ const useQueryModel = (keyTracker) => {
|
|
|
116
116
|
queryClient.setQueryData(queryKey, newData);
|
|
117
117
|
}
|
|
118
118
|
else {
|
|
119
|
-
const queryData = queryClient.getQueryData(queryKey) ?? {};
|
|
119
|
+
const queryData = queryClient.getQueryData(queryKey, { exact }) ?? {};
|
|
120
120
|
queryClient.setQueryData(queryKey, lodashSet(queryData, path, newData));
|
|
121
121
|
}
|
|
122
122
|
return updated;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export declare const useRefetchQuery: (queryKey: any[]) => Promise<{
|
|
2
|
-
refetchQuery: <T>(innerQueryKey?: any[]) => Promise<[import("@tanstack/query
|
|
2
|
+
refetchQuery: <T>(innerQueryKey?: any[]) => Promise<[import("@tanstack/react-query").QueryKey, T | undefined][]>;
|
|
3
3
|
}>;
|
|
@@ -7,7 +7,7 @@ const useRefetchQuery = async (queryKey) => {
|
|
|
7
7
|
queryKey: innerQueryKey ?? queryKey,
|
|
8
8
|
exact: true,
|
|
9
9
|
}, { throwOnError: true, cancelRefetch: true });
|
|
10
|
-
return queryClient.getQueriesData(
|
|
10
|
+
return queryClient.getQueriesData(innerQueryKey ?? queryKey);
|
|
11
11
|
};
|
|
12
12
|
return { refetchQuery };
|
|
13
13
|
};
|
|
@@ -6,7 +6,6 @@ export declare const useDeleteRequest: <TResponse>(deleteOptions?: DefaultReques
|
|
|
6
6
|
data: IRequestSuccess<TResponse>;
|
|
7
7
|
error: any;
|
|
8
8
|
isError: true;
|
|
9
|
-
isPending: false;
|
|
10
9
|
isLoadingError: false;
|
|
11
10
|
isRefetchError: true;
|
|
12
11
|
isSuccess: false;
|
|
@@ -22,10 +21,12 @@ export declare const useDeleteRequest: <TResponse>(deleteOptions?: DefaultReques
|
|
|
22
21
|
isInitialLoading: boolean;
|
|
23
22
|
isPaused: boolean;
|
|
24
23
|
isPlaceholderData: boolean;
|
|
24
|
+
isPreviousData: boolean;
|
|
25
25
|
isRefetching: boolean;
|
|
26
26
|
isStale: boolean;
|
|
27
|
-
refetch: (options?: import("@tanstack/query
|
|
28
|
-
|
|
27
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<IRequestSuccess<TResponse>, any>>;
|
|
28
|
+
remove: () => void;
|
|
29
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
29
30
|
destroy: (link: string, internalDeleteOptions?: (UseQueryOptions<IRequestSuccess<TResponse | undefined>, IRequestError, IRequestSuccess<TResponse | undefined>, any[]> & {
|
|
30
31
|
cached?: boolean | undefined;
|
|
31
32
|
}) | undefined) => Promise<IRequestSuccess<TResponse> | undefined>;
|
|
@@ -34,7 +35,6 @@ export declare const useDeleteRequest: <TResponse>(deleteOptions?: DefaultReques
|
|
|
34
35
|
data: IRequestSuccess<TResponse>;
|
|
35
36
|
error: null;
|
|
36
37
|
isError: false;
|
|
37
|
-
isPending: false;
|
|
38
38
|
isLoadingError: false;
|
|
39
39
|
isRefetchError: false;
|
|
40
40
|
isSuccess: true;
|
|
@@ -50,10 +50,70 @@ export declare const useDeleteRequest: <TResponse>(deleteOptions?: DefaultReques
|
|
|
50
50
|
isInitialLoading: boolean;
|
|
51
51
|
isPaused: boolean;
|
|
52
52
|
isPlaceholderData: boolean;
|
|
53
|
+
isPreviousData: boolean;
|
|
53
54
|
isRefetching: boolean;
|
|
54
55
|
isStale: boolean;
|
|
55
|
-
refetch: (options?: import("@tanstack/query
|
|
56
|
-
|
|
56
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<IRequestSuccess<TResponse>, any>>;
|
|
57
|
+
remove: () => void;
|
|
58
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
59
|
+
destroy: (link: string, internalDeleteOptions?: (UseQueryOptions<IRequestSuccess<TResponse | undefined>, IRequestError, IRequestSuccess<TResponse | undefined>, any[]> & {
|
|
60
|
+
cached?: boolean | undefined;
|
|
61
|
+
}) | undefined) => Promise<IRequestSuccess<TResponse> | undefined>;
|
|
62
|
+
} | {
|
|
63
|
+
isLoading: boolean;
|
|
64
|
+
data: undefined;
|
|
65
|
+
error: any;
|
|
66
|
+
isError: true;
|
|
67
|
+
isLoadingError: true;
|
|
68
|
+
isRefetchError: false;
|
|
69
|
+
isSuccess: false;
|
|
70
|
+
status: "error";
|
|
71
|
+
dataUpdatedAt: number;
|
|
72
|
+
errorUpdatedAt: number;
|
|
73
|
+
failureCount: number;
|
|
74
|
+
failureReason: any;
|
|
75
|
+
errorUpdateCount: number;
|
|
76
|
+
isFetched: boolean;
|
|
77
|
+
isFetchedAfterMount: boolean;
|
|
78
|
+
isFetching: boolean;
|
|
79
|
+
isInitialLoading: boolean;
|
|
80
|
+
isPaused: boolean;
|
|
81
|
+
isPlaceholderData: boolean;
|
|
82
|
+
isPreviousData: boolean;
|
|
83
|
+
isRefetching: boolean;
|
|
84
|
+
isStale: boolean;
|
|
85
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<IRequestSuccess<TResponse>, any>>;
|
|
86
|
+
remove: () => void;
|
|
87
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
88
|
+
destroy: (link: string, internalDeleteOptions?: (UseQueryOptions<IRequestSuccess<TResponse | undefined>, IRequestError, IRequestSuccess<TResponse | undefined>, any[]> & {
|
|
89
|
+
cached?: boolean | undefined;
|
|
90
|
+
}) | undefined) => Promise<IRequestSuccess<TResponse> | undefined>;
|
|
91
|
+
} | {
|
|
92
|
+
isLoading: boolean;
|
|
93
|
+
data: undefined;
|
|
94
|
+
error: null;
|
|
95
|
+
isError: false;
|
|
96
|
+
isLoadingError: false;
|
|
97
|
+
isRefetchError: false;
|
|
98
|
+
isSuccess: false;
|
|
99
|
+
status: "loading";
|
|
100
|
+
dataUpdatedAt: number;
|
|
101
|
+
errorUpdatedAt: number;
|
|
102
|
+
failureCount: number;
|
|
103
|
+
failureReason: any;
|
|
104
|
+
errorUpdateCount: number;
|
|
105
|
+
isFetched: boolean;
|
|
106
|
+
isFetchedAfterMount: boolean;
|
|
107
|
+
isFetching: boolean;
|
|
108
|
+
isInitialLoading: boolean;
|
|
109
|
+
isPaused: boolean;
|
|
110
|
+
isPlaceholderData: boolean;
|
|
111
|
+
isPreviousData: boolean;
|
|
112
|
+
isRefetching: boolean;
|
|
113
|
+
isStale: boolean;
|
|
114
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<IRequestSuccess<TResponse>, any>>;
|
|
115
|
+
remove: () => void;
|
|
116
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
57
117
|
destroy: (link: string, internalDeleteOptions?: (UseQueryOptions<IRequestSuccess<TResponse | undefined>, IRequestError, IRequestSuccess<TResponse | undefined>, any[]> & {
|
|
58
118
|
cached?: boolean | undefined;
|
|
59
119
|
}) | undefined) => Promise<IRequestSuccess<TResponse> | undefined>;
|
|
@@ -45,12 +45,7 @@ const useDeleteRequest = (deleteOptions) => {
|
|
|
45
45
|
rej(null);
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
|
-
const query = useQuery({
|
|
49
|
-
queryKey: [requestPath, {}],
|
|
50
|
-
queryFn: ({ queryKey }) => new Promise((res, rej) => sendRequest(res, rej, queryKey)),
|
|
51
|
-
enabled: false,
|
|
52
|
-
...options,
|
|
53
|
-
});
|
|
48
|
+
const query = useQuery([requestPath, {}], ({ queryKey }) => new Promise((res, rej) => sendRequest(res, rej, queryKey)), { enabled: false, ...options });
|
|
54
49
|
const updatedPathAsync = async (link) => {
|
|
55
50
|
return setRequestPath(link);
|
|
56
51
|
};
|
|
@@ -60,7 +55,8 @@ const useDeleteRequest = (deleteOptions) => {
|
|
|
60
55
|
const destroy = async (link, internalDeleteOptions) => {
|
|
61
56
|
if (!isFutureQueriesPaused) {
|
|
62
57
|
// set enabled to be true for every delete
|
|
63
|
-
internalDeleteOptions = internalDeleteOptions ?? {
|
|
58
|
+
internalDeleteOptions = internalDeleteOptions ?? {};
|
|
59
|
+
internalDeleteOptions.enabled = true;
|
|
64
60
|
await setOptionsAsync(internalDeleteOptions);
|
|
65
61
|
await updatedPathAsync(link);
|
|
66
62
|
return query.data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeleteRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useDeleteRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { UseQueryOptions } from '@tanstack/react-query';
|
|
1
|
+
import type { InfiniteData, UseQueryOptions } from '@tanstack/react-query';
|
|
2
2
|
import type { IRequestError, IRequestSuccess } from '../request';
|
|
3
3
|
import type { DefaultRequestOptions, TanstackInfiniteQueryOption } from './queries.interface';
|
|
4
4
|
interface Pagination {
|
|
@@ -18,24 +18,105 @@ export declare const useGetInfiniteRequest: <TResponse extends Record<string, an
|
|
|
18
18
|
keyTracker?: string | undefined;
|
|
19
19
|
} & DefaultRequestOptions) => {
|
|
20
20
|
isLoading: boolean;
|
|
21
|
-
data:
|
|
21
|
+
data: undefined;
|
|
22
|
+
error: any;
|
|
23
|
+
isError: true;
|
|
24
|
+
isLoadingError: true;
|
|
25
|
+
isRefetchError: false;
|
|
26
|
+
isSuccess: false;
|
|
27
|
+
status: "error";
|
|
28
|
+
fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions | undefined) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<IRequestSuccess<TResponse & {
|
|
29
|
+
pagination: Pagination;
|
|
30
|
+
}>, any>>;
|
|
31
|
+
fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions | undefined) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<IRequestSuccess<TResponse & {
|
|
32
|
+
pagination: Pagination;
|
|
33
|
+
}>, any>>;
|
|
34
|
+
hasNextPage?: boolean | undefined;
|
|
35
|
+
hasPreviousPage?: boolean | undefined;
|
|
36
|
+
isFetchingNextPage: boolean;
|
|
37
|
+
isFetchingPreviousPage: boolean;
|
|
38
|
+
dataUpdatedAt: number;
|
|
39
|
+
errorUpdatedAt: number;
|
|
40
|
+
failureCount: number;
|
|
41
|
+
failureReason: any;
|
|
42
|
+
errorUpdateCount: number;
|
|
43
|
+
isFetched: boolean;
|
|
44
|
+
isFetchedAfterMount: boolean;
|
|
45
|
+
isFetching: boolean;
|
|
46
|
+
isInitialLoading: boolean;
|
|
47
|
+
isPaused: boolean;
|
|
48
|
+
isPlaceholderData: boolean;
|
|
49
|
+
isPreviousData: boolean;
|
|
50
|
+
isRefetching: boolean;
|
|
51
|
+
isStale: boolean;
|
|
52
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<InfiniteData<IRequestSuccess<TResponse & {
|
|
53
|
+
pagination: Pagination;
|
|
54
|
+
}>>, any>>;
|
|
55
|
+
remove: () => void;
|
|
56
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
57
|
+
get: (link: string, fetchOptions?: UseQueryOptions<IRequestSuccess<TResponse | undefined>, IRequestError, IRequestSuccess<TResponse | undefined>, any[]> | undefined) => Promise<InfiniteData<IRequestSuccess<TResponse & {
|
|
58
|
+
pagination: Pagination;
|
|
59
|
+
}>> | undefined>;
|
|
60
|
+
} | {
|
|
61
|
+
isLoading: boolean;
|
|
62
|
+
data: undefined;
|
|
63
|
+
error: null;
|
|
64
|
+
isError: false;
|
|
65
|
+
isLoadingError: false;
|
|
66
|
+
isRefetchError: false;
|
|
67
|
+
isSuccess: false;
|
|
68
|
+
status: "loading";
|
|
69
|
+
fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions | undefined) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<IRequestSuccess<TResponse & {
|
|
22
70
|
pagination: Pagination;
|
|
23
|
-
}
|
|
71
|
+
}>, any>>;
|
|
72
|
+
fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions | undefined) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<IRequestSuccess<TResponse & {
|
|
73
|
+
pagination: Pagination;
|
|
74
|
+
}>, any>>;
|
|
75
|
+
hasNextPage?: boolean | undefined;
|
|
76
|
+
hasPreviousPage?: boolean | undefined;
|
|
77
|
+
isFetchingNextPage: boolean;
|
|
78
|
+
isFetchingPreviousPage: boolean;
|
|
79
|
+
dataUpdatedAt: number;
|
|
80
|
+
errorUpdatedAt: number;
|
|
81
|
+
failureCount: number;
|
|
82
|
+
failureReason: any;
|
|
83
|
+
errorUpdateCount: number;
|
|
84
|
+
isFetched: boolean;
|
|
85
|
+
isFetchedAfterMount: boolean;
|
|
86
|
+
isFetching: boolean;
|
|
87
|
+
isInitialLoading: boolean;
|
|
88
|
+
isPaused: boolean;
|
|
89
|
+
isPlaceholderData: boolean;
|
|
90
|
+
isPreviousData: boolean;
|
|
91
|
+
isRefetching: boolean;
|
|
92
|
+
isStale: boolean;
|
|
93
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<InfiniteData<IRequestSuccess<TResponse & {
|
|
94
|
+
pagination: Pagination;
|
|
95
|
+
}>>, any>>;
|
|
96
|
+
remove: () => void;
|
|
97
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
98
|
+
get: (link: string, fetchOptions?: UseQueryOptions<IRequestSuccess<TResponse | undefined>, IRequestError, IRequestSuccess<TResponse | undefined>, any[]> | undefined) => Promise<InfiniteData<IRequestSuccess<TResponse & {
|
|
99
|
+
pagination: Pagination;
|
|
100
|
+
}>> | undefined>;
|
|
101
|
+
} | {
|
|
102
|
+
isLoading: boolean;
|
|
103
|
+
data: InfiniteData<IRequestSuccess<TResponse & {
|
|
104
|
+
pagination: Pagination;
|
|
105
|
+
}>>;
|
|
24
106
|
error: any;
|
|
25
107
|
isError: true;
|
|
26
|
-
isPending: false;
|
|
27
108
|
isLoadingError: false;
|
|
28
109
|
isRefetchError: true;
|
|
29
110
|
isSuccess: false;
|
|
30
111
|
status: "error";
|
|
31
|
-
fetchNextPage: (options?: import("@tanstack/query
|
|
112
|
+
fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions | undefined) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<IRequestSuccess<TResponse & {
|
|
32
113
|
pagination: Pagination;
|
|
33
114
|
}>, any>>;
|
|
34
|
-
fetchPreviousPage: (options?: import("@tanstack/query
|
|
115
|
+
fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions | undefined) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<IRequestSuccess<TResponse & {
|
|
35
116
|
pagination: Pagination;
|
|
36
117
|
}>, any>>;
|
|
37
|
-
hasNextPage
|
|
38
|
-
hasPreviousPage
|
|
118
|
+
hasNextPage?: boolean | undefined;
|
|
119
|
+
hasPreviousPage?: boolean | undefined;
|
|
39
120
|
isFetchingNextPage: boolean;
|
|
40
121
|
isFetchingPreviousPage: boolean;
|
|
41
122
|
dataUpdatedAt: number;
|
|
@@ -49,35 +130,36 @@ export declare const useGetInfiniteRequest: <TResponse extends Record<string, an
|
|
|
49
130
|
isInitialLoading: boolean;
|
|
50
131
|
isPaused: boolean;
|
|
51
132
|
isPlaceholderData: boolean;
|
|
133
|
+
isPreviousData: boolean;
|
|
52
134
|
isRefetching: boolean;
|
|
53
135
|
isStale: boolean;
|
|
54
|
-
refetch: (options?: import("@tanstack/query
|
|
136
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<InfiniteData<IRequestSuccess<TResponse & {
|
|
55
137
|
pagination: Pagination;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
|
|
138
|
+
}>>, any>>;
|
|
139
|
+
remove: () => void;
|
|
140
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
141
|
+
get: (link: string, fetchOptions?: UseQueryOptions<IRequestSuccess<TResponse | undefined>, IRequestError, IRequestSuccess<TResponse | undefined>, any[]> | undefined) => Promise<InfiniteData<IRequestSuccess<TResponse & {
|
|
59
142
|
pagination: Pagination;
|
|
60
|
-
}
|
|
143
|
+
}>> | undefined>;
|
|
61
144
|
} | {
|
|
62
145
|
isLoading: boolean;
|
|
63
|
-
data: IRequestSuccess<TResponse & {
|
|
146
|
+
data: InfiniteData<IRequestSuccess<TResponse & {
|
|
64
147
|
pagination: Pagination;
|
|
65
|
-
}
|
|
148
|
+
}>>;
|
|
66
149
|
error: null;
|
|
67
150
|
isError: false;
|
|
68
|
-
isPending: false;
|
|
69
151
|
isLoadingError: false;
|
|
70
152
|
isRefetchError: false;
|
|
71
153
|
isSuccess: true;
|
|
72
154
|
status: "success";
|
|
73
|
-
fetchNextPage: (options?: import("@tanstack/query
|
|
155
|
+
fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions | undefined) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<IRequestSuccess<TResponse & {
|
|
74
156
|
pagination: Pagination;
|
|
75
157
|
}>, any>>;
|
|
76
|
-
fetchPreviousPage: (options?: import("@tanstack/query
|
|
158
|
+
fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions | undefined) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<IRequestSuccess<TResponse & {
|
|
77
159
|
pagination: Pagination;
|
|
78
160
|
}>, any>>;
|
|
79
|
-
hasNextPage
|
|
80
|
-
hasPreviousPage
|
|
161
|
+
hasNextPage?: boolean | undefined;
|
|
162
|
+
hasPreviousPage?: boolean | undefined;
|
|
81
163
|
isFetchingNextPage: boolean;
|
|
82
164
|
isFetchingPreviousPage: boolean;
|
|
83
165
|
dataUpdatedAt: number;
|
|
@@ -91,14 +173,16 @@ export declare const useGetInfiniteRequest: <TResponse extends Record<string, an
|
|
|
91
173
|
isInitialLoading: boolean;
|
|
92
174
|
isPaused: boolean;
|
|
93
175
|
isPlaceholderData: boolean;
|
|
176
|
+
isPreviousData: boolean;
|
|
94
177
|
isRefetching: boolean;
|
|
95
178
|
isStale: boolean;
|
|
96
|
-
refetch: (options?: import("@tanstack/query
|
|
179
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<InfiniteData<IRequestSuccess<TResponse & {
|
|
97
180
|
pagination: Pagination;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
|
|
181
|
+
}>>, any>>;
|
|
182
|
+
remove: () => void;
|
|
183
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
184
|
+
get: (link: string, fetchOptions?: UseQueryOptions<IRequestSuccess<TResponse | undefined>, IRequestError, IRequestSuccess<TResponse | undefined>, any[]> | undefined) => Promise<InfiniteData<IRequestSuccess<TResponse & {
|
|
101
185
|
pagination: Pagination;
|
|
102
|
-
}
|
|
186
|
+
}>> | undefined>;
|
|
103
187
|
};
|
|
104
188
|
export {};
|
|
@@ -61,9 +61,7 @@ const useGetInfiniteRequest = ({ path, load = false, queryOptions, keyTracker, b
|
|
|
61
61
|
queryParams.set('page', String(lastPageItem));
|
|
62
62
|
return pathname + '?' + queryParams.toString();
|
|
63
63
|
};
|
|
64
|
-
const query = useInfiniteQuery({
|
|
65
|
-
queryKey: [requestPath, {}],
|
|
66
|
-
queryFn: ({ pageParam = requestPath, queryKey }) => new Promise((res, rej) => sendRequest(res, rej, queryKey, pageParam)),
|
|
64
|
+
const query = useInfiniteQuery([requestPath, {}], ({ pageParam = requestPath, queryKey }) => new Promise((res, rej) => sendRequest(res, rej, queryKey, pageParam)), {
|
|
67
65
|
enabled: load && !isFutureQueriesPaused,
|
|
68
66
|
getNextPageParam: (lastPage) => constructPaginationLink('next_page', lastPage),
|
|
69
67
|
getPreviousPageParam: (lastPage) => constructPaginationLink('previous_page', lastPage),
|
|
@@ -101,6 +99,7 @@ const useGetInfiniteRequest = ({ path, load = false, queryOptions, keyTracker, b
|
|
|
101
99
|
if (keyTracker) {
|
|
102
100
|
// set expiration time for the tracker
|
|
103
101
|
queryClient.setQueryDefaults([keyTracker], {
|
|
102
|
+
cacheTime: Infinity,
|
|
104
103
|
staleTime: Infinity,
|
|
105
104
|
});
|
|
106
105
|
queryClient.setQueryData([keyTracker], [requestPath, {}]);
|