@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.
Files changed (34) hide show
  1. package/dist/index.mjs +41 -50
  2. package/dist/index.mjs.map +1 -1
  3. package/dist/model/useKeyTrackerModel.d.ts +1 -1
  4. package/dist/model/useQueryModel.d.ts +1 -1
  5. package/dist/model/useQueryModel.js +6 -6
  6. package/dist/model/useRefetchQuery.d.ts +1 -1
  7. package/dist/model/useRefetchQuery.js +1 -1
  8. package/dist/queries/useDeleteRequest.d.ts +66 -6
  9. package/dist/queries/useDeleteRequest.js +3 -7
  10. package/dist/queries/useDeleteRequest.js.map +1 -1
  11. package/dist/queries/useGetInfiniteRequest.d.ts +109 -25
  12. package/dist/queries/useGetInfiniteRequest.js +2 -3
  13. package/dist/queries/useGetInfiniteRequest.js.map +1 -1
  14. package/dist/queries/useGetRequest.d.ts +74 -6
  15. package/dist/queries/useGetRequest.js +2 -3
  16. package/dist/queries/useGetRequest.js.map +1 -1
  17. package/dist/queries/usePatchRequest.d.ts +13 -21
  18. package/dist/queries/usePatchRequest.js +4 -7
  19. package/dist/queries/usePatchRequest.js.map +1 -1
  20. package/dist/queries/usePostRequest.d.ts +25 -30
  21. package/dist/queries/usePostRequest.js +2 -3
  22. package/dist/queries/usePostRequest.js.map +1 -1
  23. package/dist/request/make-request.js +21 -20
  24. package/dist/request/make-request.js.map +1 -1
  25. package/package.json +2 -2
  26. package/src/model/useKeyTrackerModel.ts +2 -2
  27. package/src/model/useQueryModel.ts +7 -7
  28. package/src/model/useRefetchQuery.ts +1 -1
  29. package/src/queries/useDeleteRequest.ts +7 -7
  30. package/src/queries/useGetInfiniteRequest.ts +19 -14
  31. package/src/queries/useGetRequest.ts +9 -6
  32. package/src/queries/usePatchRequest.ts +5 -5
  33. package/src/queries/usePostRequest.ts +2 -4
  34. 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({ queryKey: innerQueryKey ?? queryKey });
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
- if (isApp) {
352
- headers['Content-Type'] = ContentType.MULTIPART_FORM_DATA;
353
- // add the app files
354
- for (const fileKey in appFiles) {
355
- const currentFile = appFiles[fileKey];
356
- if (Array.isArray(currentFile)) {
357
- for (const innerFile of currentFile) {
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
- else {
367
- delete headers['Content-Type'];
368
- }
364
+ }
365
+ else {
366
+ delete headers['Content-Type'];
369
367
  }
370
368
  try {
371
369
  const axiosRequest = axiosInstance({ baseURL, headers, timeout });
372
- // send request
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 ?? { queryKey: [] };
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
- mutationFn: (dataData) => new Promise((res, rej) => {
776
- return sendRequest(res, rej, dataData);
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.isPending || isFutureMutationsPaused };
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.isPending || isFutureMutationsPaused };
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 };
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- export declare const useKeyTrackerModel: (keyTracker: string) => {
1
+ export declare const useKeyTrackerModel: <T>(keyTracker: string) => {
2
2
  refetchQuery: (innerKeyTracker?: string) => Promise<void>;
3
3
  getQueryKey: (innerKeyTracker?: string) => any[] | undefined;
4
4
  };
@@ -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-core/build/legacy/queryClient-K0zFyarY").t, T | undefined][]>;
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({ queryKey: innerQueryKey ?? queryKey });
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-core/build/legacy/queryClient-K0zFyarY").a4 | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-K0zFyarY").ak<IRequestSuccess<TResponse>, any>>;
28
- fetchStatus: import("@tanstack/query-core/build/legacy/queryClient-K0zFyarY").ac;
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-core/build/legacy/queryClient-K0zFyarY").a4 | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-K0zFyarY").ak<IRequestSuccess<TResponse>, any>>;
56
- fetchStatus: import("@tanstack/query-core/build/legacy/queryClient-K0zFyarY").ac;
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 ?? { queryKey: [] };
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: IRequestSuccess<TResponse & {
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-core/build/legacy/queryClient-K0zFyarY").a9 | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-K0zFyarY").as<IRequestSuccess<TResponse & {
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-core/build/legacy/queryClient-K0zFyarY").aa | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-K0zFyarY").as<IRequestSuccess<TResponse & {
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: boolean;
38
- hasPreviousPage: boolean;
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-core/build/legacy/queryClient-K0zFyarY").a4 | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-K0zFyarY").ak<IRequestSuccess<TResponse & {
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
- }>, any>>;
57
- fetchStatus: import("@tanstack/query-core/build/legacy/queryClient-K0zFyarY").ac;
58
- get: (link: string, fetchOptions?: UseQueryOptions<IRequestSuccess<TResponse | undefined>, IRequestError, IRequestSuccess<TResponse | undefined>, any[]> | undefined) => Promise<IRequestSuccess<TResponse & {
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
- }> | undefined>;
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-core/build/legacy/queryClient-K0zFyarY").a9 | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-K0zFyarY").as<IRequestSuccess<TResponse & {
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-core/build/legacy/queryClient-K0zFyarY").aa | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-K0zFyarY").as<IRequestSuccess<TResponse & {
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: boolean;
80
- hasPreviousPage: boolean;
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-core/build/legacy/queryClient-K0zFyarY").a4 | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-K0zFyarY").ak<IRequestSuccess<TResponse & {
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
- }>, any>>;
99
- fetchStatus: import("@tanstack/query-core/build/legacy/queryClient-K0zFyarY").ac;
100
- get: (link: string, fetchOptions?: UseQueryOptions<IRequestSuccess<TResponse | undefined>, IRequestError, IRequestSuccess<TResponse | undefined>, any[]> | undefined) => Promise<IRequestSuccess<TResponse & {
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
- }> | undefined>;
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, {}]);