@ventlio/tanstack-query 0.2.8 → 0.2.9
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.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +44 -3
- package/dist/index.mjs.map +1 -1
- package/dist/model/index.d.ts +2 -0
- package/dist/model/useKeyTrackerModel.d.ts +6 -0
- package/dist/model/useKeyTrackerModel.js +27 -0
- package/dist/model/useKeyTrackerModel.js.map +1 -0
- package/dist/model/useRefetchQuery.d.ts +3 -0
- package/dist/model/useRefetchQuery.js +19 -0
- package/dist/model/useRefetchQuery.js.map +1 -0
- package/dist/queries/useGetRequest.d.ts +2 -1
- package/dist/queries/useGetRequest.js +9 -1
- package/dist/queries/useGetRequest.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -5,7 +5,9 @@ var useQueryConfig = require('./config/useQueryConfig.js');
|
|
|
5
5
|
var useQueryHeaders = require('./config/useQueryHeaders.js');
|
|
6
6
|
var useQueryTimeout = require('./config/useQueryTimeout.js');
|
|
7
7
|
var scrollToTop = require('./helpers/scrollToTop.js');
|
|
8
|
+
var useKeyTrackerModel = require('./model/useKeyTrackerModel.js');
|
|
8
9
|
var useQueryModel = require('./model/useQueryModel.js');
|
|
10
|
+
var useRefetchQuery = require('./model/useRefetchQuery.js');
|
|
9
11
|
var useDeleteRequest = require('./queries/useDeleteRequest.js');
|
|
10
12
|
var useGetRequest = require('./queries/useGetRequest.js');
|
|
11
13
|
var usePatchRequest = require('./queries/usePatchRequest.js');
|
|
@@ -23,7 +25,9 @@ exports.useQueryConfig = useQueryConfig.useQueryConfig;
|
|
|
23
25
|
exports.useQueryHeaders = useQueryHeaders.useQueryHeaders;
|
|
24
26
|
exports.useQueryTimeout = useQueryTimeout.useQueryTimeout;
|
|
25
27
|
exports.scrollToTop = scrollToTop.scrollToTop;
|
|
28
|
+
exports.useKeyTrackerModel = useKeyTrackerModel.useKeyTrackerModel;
|
|
26
29
|
exports.useQueryModel = useQueryModel.useQueryModel;
|
|
30
|
+
exports.useRefetchQuery = useRefetchQuery.useRefetchQuery;
|
|
27
31
|
exports.useDeleteRequest = useDeleteRequest.useDeleteRequest;
|
|
28
32
|
exports.useGetRequest = useGetRequest.useGetRequest;
|
|
29
33
|
exports.usePatchRequest = usePatchRequest.usePatchRequest;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useQueryClient, useQuery, useMutation } from '@tanstack/react-query';
|
|
2
|
-
import { useState, useEffect, startTransition } from 'react';
|
|
2
|
+
import { useState, useMemo, useEffect, startTransition } from 'react';
|
|
3
3
|
import axios from 'axios';
|
|
4
4
|
|
|
5
5
|
const useQueryConfig = () => {
|
|
@@ -53,11 +53,44 @@ const scrollToTop = () => {
|
|
|
53
53
|
});
|
|
54
54
|
};
|
|
55
55
|
|
|
56
|
+
const useKeyTrackerModel = (keyTracker) => {
|
|
57
|
+
const queryClient = useQueryClient();
|
|
58
|
+
const [data, setData] = useState();
|
|
59
|
+
const [queryKey, setQueryKey] = useState();
|
|
60
|
+
const getQueryKey = (innerKeyTracker) => {
|
|
61
|
+
const key = queryClient.getQueryData([
|
|
62
|
+
innerKeyTracker ?? keyTracker,
|
|
63
|
+
]);
|
|
64
|
+
setQueryKey(key);
|
|
65
|
+
return key;
|
|
66
|
+
};
|
|
67
|
+
const refetchQuery = (innerKeyTracker) => {
|
|
68
|
+
const key = getQueryKey(innerKeyTracker ?? keyTracker);
|
|
69
|
+
const queryData = queryClient.getQueryData(key);
|
|
70
|
+
setData(queryData);
|
|
71
|
+
return queryData;
|
|
72
|
+
};
|
|
73
|
+
return { refetchQuery, getQueryKey, queryKey, data };
|
|
74
|
+
};
|
|
75
|
+
|
|
56
76
|
const useQueryModel = (queryKey, filters) => {
|
|
57
77
|
const queryClient = useQueryClient();
|
|
58
78
|
return queryClient.getQueryData(queryKey, filters);
|
|
59
79
|
};
|
|
60
80
|
|
|
81
|
+
const useRefetchQuery = async (queryKey) => {
|
|
82
|
+
const queryClient = useQueryClient();
|
|
83
|
+
const refetchQuery = async (innerQueryKey) => {
|
|
84
|
+
await queryClient.refetchQueries({
|
|
85
|
+
queryKey,
|
|
86
|
+
exact: true,
|
|
87
|
+
type: 'active',
|
|
88
|
+
}, { throwOnError: true, cancelRefetch: true });
|
|
89
|
+
return queryClient.getQueriesData(innerQueryKey ?? queryKey);
|
|
90
|
+
};
|
|
91
|
+
return { refetchQuery };
|
|
92
|
+
};
|
|
93
|
+
|
|
61
94
|
const axiosInstance = ({ baseURL, timeout, headers, }) => {
|
|
62
95
|
return axios.create({
|
|
63
96
|
baseURL,
|
|
@@ -189,11 +222,14 @@ const useDeleteRequest = () => {
|
|
|
189
222
|
return { destroy, ...query };
|
|
190
223
|
};
|
|
191
224
|
|
|
192
|
-
const useGetRequest = ({ path, load = false, queryOptions, }) => {
|
|
225
|
+
const useGetRequest = ({ path, load = false, queryOptions, keyTracker, }) => {
|
|
193
226
|
const [requestPath, updatePath] = useState(path);
|
|
194
227
|
const [options, setOptions] = useState(queryOptions);
|
|
195
228
|
const [page, setPage] = useState(1);
|
|
196
229
|
const { headers, baseURL, timeout } = useQueryConfig();
|
|
230
|
+
let queryClient = useQueryClient();
|
|
231
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
232
|
+
queryClient = useMemo(() => queryClient, []);
|
|
197
233
|
const sendRequest = async (res, rej) => {
|
|
198
234
|
const postResponse = await makeRequest({
|
|
199
235
|
path: requestPath,
|
|
@@ -219,6 +255,11 @@ const useGetRequest = ({ path, load = false, queryOptions, }) => {
|
|
|
219
255
|
updatePath(path);
|
|
220
256
|
}
|
|
221
257
|
}, [path]);
|
|
258
|
+
useEffect(() => {
|
|
259
|
+
if (keyTracker) {
|
|
260
|
+
queryClient.setQueryData([keyTracker], [requestPath, {}]);
|
|
261
|
+
}
|
|
262
|
+
}, [keyTracker, requestPath, queryClient]);
|
|
222
263
|
const nextPage = () => {
|
|
223
264
|
if (query.data?.data.pagination) {
|
|
224
265
|
const pagination = query.data.data.pagination;
|
|
@@ -350,5 +391,5 @@ const usePostRequest = ({ path, isFormData = false, }) => {
|
|
|
350
391
|
return { post, ...mutation };
|
|
351
392
|
};
|
|
352
393
|
|
|
353
|
-
export { ContentType, HttpMethod, axiosInstance, buildFormData, errorTransformer, makeRequest, scrollToTop, successTransformer, useDeleteRequest, useGetRequest, usePatchRequest, usePostRequest, useQueryBaseURL, useQueryConfig, useQueryHeaders, useQueryModel, useQueryTimeout };
|
|
394
|
+
export { ContentType, HttpMethod, axiosInstance, buildFormData, errorTransformer, makeRequest, scrollToTop, successTransformer, useDeleteRequest, useGetRequest, useKeyTrackerModel, usePatchRequest, usePostRequest, useQueryBaseURL, useQueryConfig, useQueryHeaders, useQueryModel, useQueryTimeout, useRefetchQuery };
|
|
354
395
|
//# sourceMappingURL=index.mjs.map
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/model/index.d.ts
CHANGED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var reactQuery = require('@tanstack/react-query');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
|
|
6
|
+
const useKeyTrackerModel = (keyTracker) => {
|
|
7
|
+
const queryClient = reactQuery.useQueryClient();
|
|
8
|
+
const [data, setData] = react.useState();
|
|
9
|
+
const [queryKey, setQueryKey] = react.useState();
|
|
10
|
+
const getQueryKey = (innerKeyTracker) => {
|
|
11
|
+
const key = queryClient.getQueryData([
|
|
12
|
+
innerKeyTracker ?? keyTracker,
|
|
13
|
+
]);
|
|
14
|
+
setQueryKey(key);
|
|
15
|
+
return key;
|
|
16
|
+
};
|
|
17
|
+
const refetchQuery = (innerKeyTracker) => {
|
|
18
|
+
const key = getQueryKey(innerKeyTracker ?? keyTracker);
|
|
19
|
+
const queryData = queryClient.getQueryData(key);
|
|
20
|
+
setData(queryData);
|
|
21
|
+
return queryData;
|
|
22
|
+
};
|
|
23
|
+
return { refetchQuery, getQueryKey, queryKey, data };
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
exports.useKeyTrackerModel = useKeyTrackerModel;
|
|
27
|
+
//# sourceMappingURL=useKeyTrackerModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useKeyTrackerModel.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var reactQuery = require('@tanstack/react-query');
|
|
4
|
+
|
|
5
|
+
const useRefetchQuery = async (queryKey) => {
|
|
6
|
+
const queryClient = reactQuery.useQueryClient();
|
|
7
|
+
const refetchQuery = async (innerQueryKey) => {
|
|
8
|
+
await queryClient.refetchQueries({
|
|
9
|
+
queryKey,
|
|
10
|
+
exact: true,
|
|
11
|
+
type: 'active',
|
|
12
|
+
}, { throwOnError: true, cancelRefetch: true });
|
|
13
|
+
return queryClient.getQueriesData(innerQueryKey ?? queryKey);
|
|
14
|
+
};
|
|
15
|
+
return { refetchQuery };
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
exports.useRefetchQuery = useRefetchQuery;
|
|
19
|
+
//# sourceMappingURL=useRefetchQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRefetchQuery.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
import type { UseQueryOptions } from '@tanstack/react-query';
|
|
3
3
|
import type { IRequestError, IRequestSuccess } from '../request';
|
|
4
4
|
import type { TanstackQueryOption } from './queries.interface';
|
|
5
|
-
export declare const useGetRequest: <TResponse extends Record<string, any>>({ path, load, queryOptions, }: {
|
|
5
|
+
export declare const useGetRequest: <TResponse extends Record<string, any>>({ path, load, queryOptions, keyTracker, }: {
|
|
6
6
|
path: string;
|
|
7
7
|
load?: boolean | undefined;
|
|
8
8
|
queryOptions?: TanstackQueryOption<TResponse> | undefined;
|
|
9
|
+
keyTracker?: string | undefined;
|
|
9
10
|
}) => {
|
|
10
11
|
updatePath: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
11
12
|
nextPage: () => void;
|
|
@@ -7,11 +7,14 @@ require('axios');
|
|
|
7
7
|
var makeRequest = require('../request/make-request.js');
|
|
8
8
|
require('../request/request.enum.js');
|
|
9
9
|
|
|
10
|
-
const useGetRequest = ({ path, load = false, queryOptions, }) => {
|
|
10
|
+
const useGetRequest = ({ path, load = false, queryOptions, keyTracker, }) => {
|
|
11
11
|
const [requestPath, updatePath] = react.useState(path);
|
|
12
12
|
const [options, setOptions] = react.useState(queryOptions);
|
|
13
13
|
const [page, setPage] = react.useState(1);
|
|
14
14
|
const { headers, baseURL, timeout } = useQueryConfig.useQueryConfig();
|
|
15
|
+
let queryClient = reactQuery.useQueryClient();
|
|
16
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
17
|
+
queryClient = react.useMemo(() => queryClient, []);
|
|
15
18
|
const sendRequest = async (res, rej) => {
|
|
16
19
|
const postResponse = await makeRequest.makeRequest({
|
|
17
20
|
path: requestPath,
|
|
@@ -37,6 +40,11 @@ const useGetRequest = ({ path, load = false, queryOptions, }) => {
|
|
|
37
40
|
updatePath(path);
|
|
38
41
|
}
|
|
39
42
|
}, [path]);
|
|
43
|
+
react.useEffect(() => {
|
|
44
|
+
if (keyTracker) {
|
|
45
|
+
queryClient.setQueryData([keyTracker], [requestPath, {}]);
|
|
46
|
+
}
|
|
47
|
+
}, [keyTracker, requestPath, queryClient]);
|
|
40
48
|
const nextPage = () => {
|
|
41
49
|
if (query.data?.data.pagination) {
|
|
42
50
|
const pagination = query.data.data.pagination;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useGetRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|