@ventlio/tanstack-query 0.2.21 → 0.2.23
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/config/config.interface.d.ts +4 -0
- package/dist/config/index.d.ts +2 -2
- package/dist/config/useEnvironmentVariables.d.ts +2 -0
- package/dist/config/useEnvironmentVariables.js +13 -0
- package/dist/config/useEnvironmentVariables.js.map +1 -0
- package/dist/config/useQueryConfig.js +2 -2
- package/dist/index.js +2 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +27 -41
- package/dist/index.mjs.map +1 -1
- package/dist/queries/useDeleteRequest.js +5 -3
- package/dist/queries/useDeleteRequest.js.map +1 -1
- package/dist/queries/useGetRequest.js +5 -3
- package/dist/queries/useGetRequest.js.map +1 -1
- package/dist/queries/usePatchRequest.js +5 -3
- package/dist/queries/usePatchRequest.js.map +1 -1
- package/dist/queries/usePostRequest.js +5 -3
- package/dist/queries/usePostRequest.js.map +1 -1
- package/dist/types/index.d.ts +0 -10
- package/package.json +1 -1
- package/src/config/config.interface.ts +4 -0
- package/src/config/index.ts +2 -2
- package/src/config/useEnvironmentVariables.ts +12 -0
- package/src/config/useQueryConfig.ts +3 -6
- package/src/queries/useDeleteRequest.ts +6 -4
- package/src/queries/useGetRequest.ts +5 -4
- package/src/queries/usePatchRequest.ts +5 -4
- package/src/queries/usePostRequest.ts +6 -4
- package/src/types/index.ts +0 -12
- package/dist/config/useQueryBaseURL.d.ts +0 -2
- package/dist/config/useQueryBaseURL.js +0 -22
- package/dist/config/useQueryBaseURL.js.map +0 -1
- package/dist/config/useQueryTimeout.d.ts +0 -2
- package/dist/config/useQueryTimeout.js +0 -19
- package/dist/config/useQueryTimeout.js.map +0 -1
- package/src/config/useQueryBaseURL.ts +0 -21
- package/src/config/useQueryTimeout.ts +0 -18
package/dist/config/index.d.ts
CHANGED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const useEnvironmentVariables = () => {
|
|
4
|
+
const url = process.env.REACT_APP_API_URL || process.env.NEXT_PUBLIC_API_URL;
|
|
5
|
+
const timeout = process.env.REACT_APP_API_TIMEOUT || process.env.NEXT_PUBLIC_API_TIMEOUT;
|
|
6
|
+
return {
|
|
7
|
+
API_URL: url,
|
|
8
|
+
TIMEOUT: Number(timeout),
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
exports.useEnvironmentVariables = useEnvironmentVariables;
|
|
13
|
+
//# sourceMappingURL=useEnvironmentVariables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEnvironmentVariables.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
|
|
@@ -4,8 +4,8 @@ var reactQuery = require('@tanstack/react-query');
|
|
|
4
4
|
|
|
5
5
|
const useQueryConfig = () => {
|
|
6
6
|
const queryClient = reactQuery.useQueryClient();
|
|
7
|
-
const { headers = {}
|
|
8
|
-
return { headers
|
|
7
|
+
const { headers = {} } = queryClient.getQueryData(['config']) ?? {};
|
|
8
|
+
return { headers };
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
exports.useQueryConfig = useQueryConfig;
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var useEnvironmentVariables = require('./config/useEnvironmentVariables.js');
|
|
4
4
|
var useQueryConfig = require('./config/useQueryConfig.js');
|
|
5
5
|
var useQueryHeaders = require('./config/useQueryHeaders.js');
|
|
6
|
-
var useQueryTimeout = require('./config/useQueryTimeout.js');
|
|
7
6
|
var scrollToTop = require('./helpers/scrollToTop.js');
|
|
8
7
|
var useKeyTrackerModel = require('./model/useKeyTrackerModel.js');
|
|
9
8
|
var useQueryModel = require('./model/useQueryModel.js');
|
|
@@ -20,10 +19,9 @@ var transformer = require('./request/transformer.js');
|
|
|
20
19
|
|
|
21
20
|
|
|
22
21
|
|
|
23
|
-
exports.
|
|
22
|
+
exports.useEnvironmentVariables = useEnvironmentVariables.useEnvironmentVariables;
|
|
24
23
|
exports.useQueryConfig = useQueryConfig.useQueryConfig;
|
|
25
24
|
exports.useQueryHeaders = useQueryHeaders.useQueryHeaders;
|
|
26
|
-
exports.useQueryTimeout = useQueryTimeout.useQueryTimeout;
|
|
27
25
|
exports.scrollToTop = scrollToTop.scrollToTop;
|
|
28
26
|
exports.useKeyTrackerModel = useKeyTrackerModel.useKeyTrackerModel;
|
|
29
27
|
exports.useQueryModel = useQueryModel.useQueryModel;
|
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
|
@@ -2,25 +2,19 @@ import { useQueryClient, useQuery, useMutation } from '@tanstack/react-query';
|
|
|
2
2
|
import { useState, useMemo, useEffect, startTransition } from 'react';
|
|
3
3
|
import axios from 'axios';
|
|
4
4
|
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
return {
|
|
5
|
+
const useEnvironmentVariables = () => {
|
|
6
|
+
const url = process.env.REACT_APP_API_URL || process.env.NEXT_PUBLIC_API_URL;
|
|
7
|
+
const timeout = process.env.REACT_APP_API_TIMEOUT || process.env.NEXT_PUBLIC_API_TIMEOUT;
|
|
8
|
+
return {
|
|
9
|
+
API_URL: url,
|
|
10
|
+
TIMEOUT: Number(timeout),
|
|
11
|
+
};
|
|
9
12
|
};
|
|
10
13
|
|
|
11
|
-
const
|
|
12
|
-
const { baseURL } = useQueryConfig();
|
|
14
|
+
const useQueryConfig = () => {
|
|
13
15
|
const queryClient = useQueryClient();
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
const newConfig = {
|
|
17
|
-
...config,
|
|
18
|
-
baseURL: newBaseUrl,
|
|
19
|
-
};
|
|
20
|
-
return newConfig;
|
|
21
|
-
});
|
|
22
|
-
};
|
|
23
|
-
return { baseURL, setQueryBaseUrl };
|
|
16
|
+
const { headers = {} } = queryClient.getQueryData(['config']) ?? {};
|
|
17
|
+
return { headers };
|
|
24
18
|
};
|
|
25
19
|
|
|
26
20
|
const useQueryHeaders = () => {
|
|
@@ -35,18 +29,6 @@ const useQueryHeaders = () => {
|
|
|
35
29
|
return { headers, setQueryHeaders };
|
|
36
30
|
};
|
|
37
31
|
|
|
38
|
-
const useQueryTimeout = () => {
|
|
39
|
-
const { timeout } = useQueryConfig();
|
|
40
|
-
const queryClient = useQueryClient();
|
|
41
|
-
const setQueryTimeout = (newTimeout) => {
|
|
42
|
-
queryClient.setQueryData(['config'], (config) => {
|
|
43
|
-
const newConfig = { ...config, timeout: newTimeout };
|
|
44
|
-
return newConfig;
|
|
45
|
-
});
|
|
46
|
-
};
|
|
47
|
-
return { timeout, setQueryTimeout };
|
|
48
|
-
};
|
|
49
|
-
|
|
50
32
|
const scrollToTop = () => {
|
|
51
33
|
window.scrollTo({
|
|
52
34
|
top: 0,
|
|
@@ -188,15 +170,16 @@ async function makeRequest({ body, method = HttpMethod.GET, path, isFormData, he
|
|
|
188
170
|
const useDeleteRequest = () => {
|
|
189
171
|
const [requestPath, updateDeletePath] = useState('');
|
|
190
172
|
const [options, setOptions] = useState();
|
|
191
|
-
const {
|
|
173
|
+
const { API_URL, TIMEOUT } = useEnvironmentVariables();
|
|
174
|
+
const { headers } = useQueryConfig();
|
|
192
175
|
const query = useQuery([requestPath, {}], () => new Promise((res, rej) => {
|
|
193
176
|
setTimeout(async () => {
|
|
194
177
|
const postResponse = await makeRequest({
|
|
195
178
|
path: requestPath,
|
|
196
179
|
headers,
|
|
197
180
|
method: HttpMethod.DELETE,
|
|
198
|
-
baseURL,
|
|
199
|
-
timeout,
|
|
181
|
+
baseURL: API_URL,
|
|
182
|
+
timeout: TIMEOUT,
|
|
200
183
|
});
|
|
201
184
|
if (postResponse.status) {
|
|
202
185
|
res(postResponse);
|
|
@@ -230,7 +213,8 @@ const useGetRequest = ({ path, load = false, queryOptions, keyTracker, }) => {
|
|
|
230
213
|
const [requestPath, updatePath] = useState(path);
|
|
231
214
|
const [options, setOptions] = useState(queryOptions);
|
|
232
215
|
const [page, setPage] = useState(1);
|
|
233
|
-
const {
|
|
216
|
+
const { API_URL, TIMEOUT } = useEnvironmentVariables();
|
|
217
|
+
const { headers } = useQueryConfig();
|
|
234
218
|
let queryClient = useQueryClient();
|
|
235
219
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
236
220
|
queryClient = useMemo(() => queryClient, []);
|
|
@@ -238,8 +222,8 @@ const useGetRequest = ({ path, load = false, queryOptions, keyTracker, }) => {
|
|
|
238
222
|
const postResponse = await makeRequest({
|
|
239
223
|
path: requestPath,
|
|
240
224
|
headers,
|
|
241
|
-
baseURL,
|
|
242
|
-
timeout,
|
|
225
|
+
baseURL: API_URL,
|
|
226
|
+
timeout: TIMEOUT,
|
|
243
227
|
});
|
|
244
228
|
if (postResponse.status) {
|
|
245
229
|
res(postResponse);
|
|
@@ -326,7 +310,8 @@ const useGetRequest = ({ path, load = false, queryOptions, keyTracker, }) => {
|
|
|
326
310
|
};
|
|
327
311
|
|
|
328
312
|
const usePatchRequest = ({ path }) => {
|
|
329
|
-
const {
|
|
313
|
+
const { API_URL, TIMEOUT } = useEnvironmentVariables();
|
|
314
|
+
const { headers } = useQueryConfig();
|
|
330
315
|
// register post mutation
|
|
331
316
|
const mutation = useMutation((postData) => new Promise((res, rej) => {
|
|
332
317
|
makeRequest({
|
|
@@ -334,8 +319,8 @@ const usePatchRequest = ({ path }) => {
|
|
|
334
319
|
body: postData,
|
|
335
320
|
method: HttpMethod.PATCH,
|
|
336
321
|
headers,
|
|
337
|
-
baseURL,
|
|
338
|
-
timeout,
|
|
322
|
+
baseURL: API_URL,
|
|
323
|
+
timeout: TIMEOUT,
|
|
339
324
|
}).then((postResponse) => {
|
|
340
325
|
if (postResponse.status) {
|
|
341
326
|
// scroll to top after success
|
|
@@ -359,7 +344,8 @@ const usePatchRequest = ({ path }) => {
|
|
|
359
344
|
};
|
|
360
345
|
|
|
361
346
|
const usePostRequest = ({ path, isFormData = false, }) => {
|
|
362
|
-
const {
|
|
347
|
+
const { API_URL, TIMEOUT } = useEnvironmentVariables();
|
|
348
|
+
const { headers } = useQueryConfig();
|
|
363
349
|
// register post mutation
|
|
364
350
|
const mutation = useMutation(async (postData) => new Promise((res, rej) => {
|
|
365
351
|
makeRequest({
|
|
@@ -368,8 +354,8 @@ const usePostRequest = ({ path, isFormData = false, }) => {
|
|
|
368
354
|
method: HttpMethod.POST,
|
|
369
355
|
isFormData,
|
|
370
356
|
headers,
|
|
371
|
-
baseURL,
|
|
372
|
-
timeout,
|
|
357
|
+
baseURL: API_URL,
|
|
358
|
+
timeout: TIMEOUT,
|
|
373
359
|
}).then((postResponse) => {
|
|
374
360
|
if (postResponse.status) {
|
|
375
361
|
// scroll to top after success
|
|
@@ -395,5 +381,5 @@ const usePostRequest = ({ path, isFormData = false, }) => {
|
|
|
395
381
|
return { post, ...mutation };
|
|
396
382
|
};
|
|
397
383
|
|
|
398
|
-
export { ContentType, HttpMethod, axiosInstance, buildFormData, errorTransformer, makeRequest, scrollToTop, successTransformer, useDeleteRequest, useGetRequest, useKeyTrackerModel, usePatchRequest, usePostRequest,
|
|
384
|
+
export { ContentType, HttpMethod, axiosInstance, buildFormData, errorTransformer, makeRequest, scrollToTop, successTransformer, useDeleteRequest, useEnvironmentVariables, useGetRequest, useKeyTrackerModel, usePatchRequest, usePostRequest, useQueryConfig, useQueryHeaders, useQueryModel, useRefetchQuery };
|
|
399
385
|
//# 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var reactQuery = require('@tanstack/react-query');
|
|
4
4
|
var react = require('react');
|
|
5
|
+
var useEnvironmentVariables = require('../config/useEnvironmentVariables.js');
|
|
5
6
|
var useQueryConfig = require('../config/useQueryConfig.js');
|
|
6
7
|
require('axios');
|
|
7
8
|
var makeRequest = require('../request/make-request.js');
|
|
@@ -10,15 +11,16 @@ var request_enum = require('../request/request.enum.js');
|
|
|
10
11
|
const useDeleteRequest = () => {
|
|
11
12
|
const [requestPath, updateDeletePath] = react.useState('');
|
|
12
13
|
const [options, setOptions] = react.useState();
|
|
13
|
-
const {
|
|
14
|
+
const { API_URL, TIMEOUT } = useEnvironmentVariables.useEnvironmentVariables();
|
|
15
|
+
const { headers } = useQueryConfig.useQueryConfig();
|
|
14
16
|
const query = reactQuery.useQuery([requestPath, {}], () => new Promise((res, rej) => {
|
|
15
17
|
setTimeout(async () => {
|
|
16
18
|
const postResponse = await makeRequest.makeRequest({
|
|
17
19
|
path: requestPath,
|
|
18
20
|
headers,
|
|
19
21
|
method: request_enum.HttpMethod.DELETE,
|
|
20
|
-
baseURL,
|
|
21
|
-
timeout,
|
|
22
|
+
baseURL: API_URL,
|
|
23
|
+
timeout: TIMEOUT,
|
|
22
24
|
});
|
|
23
25
|
if (postResponse.status) {
|
|
24
26
|
res(postResponse);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeleteRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useDeleteRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var reactQuery = require('@tanstack/react-query');
|
|
4
4
|
var react = require('react');
|
|
5
|
+
var useEnvironmentVariables = require('../config/useEnvironmentVariables.js');
|
|
5
6
|
var useQueryConfig = require('../config/useQueryConfig.js');
|
|
6
7
|
require('axios');
|
|
7
8
|
var makeRequest = require('../request/make-request.js');
|
|
@@ -11,7 +12,8 @@ const useGetRequest = ({ path, load = false, queryOptions, keyTracker, }) => {
|
|
|
11
12
|
const [requestPath, updatePath] = react.useState(path);
|
|
12
13
|
const [options, setOptions] = react.useState(queryOptions);
|
|
13
14
|
const [page, setPage] = react.useState(1);
|
|
14
|
-
const {
|
|
15
|
+
const { API_URL, TIMEOUT } = useEnvironmentVariables.useEnvironmentVariables();
|
|
16
|
+
const { headers } = useQueryConfig.useQueryConfig();
|
|
15
17
|
let queryClient = reactQuery.useQueryClient();
|
|
16
18
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
17
19
|
queryClient = react.useMemo(() => queryClient, []);
|
|
@@ -19,8 +21,8 @@ const useGetRequest = ({ path, load = false, queryOptions, keyTracker, }) => {
|
|
|
19
21
|
const postResponse = await makeRequest.makeRequest({
|
|
20
22
|
path: requestPath,
|
|
21
23
|
headers,
|
|
22
|
-
baseURL,
|
|
23
|
-
timeout,
|
|
24
|
+
baseURL: API_URL,
|
|
25
|
+
timeout: TIMEOUT,
|
|
24
26
|
});
|
|
25
27
|
if (postResponse.status) {
|
|
26
28
|
res(postResponse);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useGetRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -5,10 +5,12 @@ var scrollToTop = require('../helpers/scrollToTop.js');
|
|
|
5
5
|
require('axios');
|
|
6
6
|
var makeRequest = require('../request/make-request.js');
|
|
7
7
|
var request_enum = require('../request/request.enum.js');
|
|
8
|
+
var useEnvironmentVariables = require('../config/useEnvironmentVariables.js');
|
|
8
9
|
var useQueryConfig = require('../config/useQueryConfig.js');
|
|
9
10
|
|
|
10
11
|
const usePatchRequest = ({ path }) => {
|
|
11
|
-
const {
|
|
12
|
+
const { API_URL, TIMEOUT } = useEnvironmentVariables.useEnvironmentVariables();
|
|
13
|
+
const { headers } = useQueryConfig.useQueryConfig();
|
|
12
14
|
// register post mutation
|
|
13
15
|
const mutation = reactQuery.useMutation((postData) => new Promise((res, rej) => {
|
|
14
16
|
makeRequest.makeRequest({
|
|
@@ -16,8 +18,8 @@ const usePatchRequest = ({ path }) => {
|
|
|
16
18
|
body: postData,
|
|
17
19
|
method: request_enum.HttpMethod.PATCH,
|
|
18
20
|
headers,
|
|
19
|
-
baseURL,
|
|
20
|
-
timeout,
|
|
21
|
+
baseURL: API_URL,
|
|
22
|
+
timeout: TIMEOUT,
|
|
21
23
|
}).then((postResponse) => {
|
|
22
24
|
if (postResponse.status) {
|
|
23
25
|
// scroll to top after success
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePatchRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePatchRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var reactQuery = require('@tanstack/react-query');
|
|
4
|
+
var useEnvironmentVariables = require('../config/useEnvironmentVariables.js');
|
|
4
5
|
var useQueryConfig = require('../config/useQueryConfig.js');
|
|
5
6
|
require('axios');
|
|
6
7
|
var makeRequest = require('../request/make-request.js');
|
|
7
8
|
var request_enum = require('../request/request.enum.js');
|
|
8
9
|
|
|
9
10
|
const usePostRequest = ({ path, isFormData = false, }) => {
|
|
10
|
-
const {
|
|
11
|
+
const { API_URL, TIMEOUT } = useEnvironmentVariables.useEnvironmentVariables();
|
|
12
|
+
const { headers } = useQueryConfig.useQueryConfig();
|
|
11
13
|
// register post mutation
|
|
12
14
|
const mutation = reactQuery.useMutation(async (postData) => new Promise((res, rej) => {
|
|
13
15
|
makeRequest.makeRequest({
|
|
@@ -16,8 +18,8 @@ const usePostRequest = ({ path, isFormData = false, }) => {
|
|
|
16
18
|
method: request_enum.HttpMethod.POST,
|
|
17
19
|
isFormData,
|
|
18
20
|
headers,
|
|
19
|
-
baseURL,
|
|
20
|
-
timeout,
|
|
21
|
+
baseURL: API_URL,
|
|
22
|
+
timeout: TIMEOUT,
|
|
21
23
|
}).then((postResponse) => {
|
|
22
24
|
if (postResponse.status) {
|
|
23
25
|
// scroll to top after success
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePostRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePostRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,18 +1,8 @@
|
|
|
1
1
|
import type { RawAxiosRequestHeaders } from 'axios';
|
|
2
2
|
export interface TanstackQueryConfig {
|
|
3
|
-
baseURL: string;
|
|
4
|
-
timeout?: number;
|
|
5
3
|
headers: RawAxiosRequestHeaders;
|
|
6
4
|
}
|
|
7
5
|
export interface IUseQueryHeaders {
|
|
8
6
|
headers: TanstackQueryConfig['headers'];
|
|
9
7
|
setQueryHeaders: (header: TanstackQueryConfig['headers']) => void;
|
|
10
8
|
}
|
|
11
|
-
export interface IUseQueryTimeout {
|
|
12
|
-
timeout: TanstackQueryConfig['timeout'];
|
|
13
|
-
setQueryTimeout: (timeout: TanstackQueryConfig['timeout']) => void;
|
|
14
|
-
}
|
|
15
|
-
export interface IUseQueryBaseURL {
|
|
16
|
-
baseURL: TanstackQueryConfig['baseURL'];
|
|
17
|
-
setQueryBaseUrl: (baseURL: TanstackQueryConfig['baseURL']) => void;
|
|
18
|
-
}
|
package/package.json
CHANGED
package/src/config/index.ts
CHANGED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { IConfig } from './config.interface';
|
|
2
|
+
|
|
3
|
+
export const useEnvironmentVariables = (): IConfig => {
|
|
4
|
+
const url = process.env.REACT_APP_API_URL || process.env.NEXT_PUBLIC_API_URL;
|
|
5
|
+
const timeout =
|
|
6
|
+
process.env.REACT_APP_API_TIMEOUT || process.env.NEXT_PUBLIC_API_TIMEOUT;
|
|
7
|
+
|
|
8
|
+
return {
|
|
9
|
+
API_URL: url as string,
|
|
10
|
+
TIMEOUT: Number(timeout),
|
|
11
|
+
};
|
|
12
|
+
};
|
|
@@ -4,11 +4,8 @@ import type { TanstackQueryConfig } from '../types';
|
|
|
4
4
|
export const useQueryConfig = (): TanstackQueryConfig => {
|
|
5
5
|
const queryClient = useQueryClient();
|
|
6
6
|
|
|
7
|
-
const {
|
|
8
|
-
|
|
9
|
-
baseURL = '',
|
|
10
|
-
timeout = 10000,
|
|
11
|
-
} = queryClient.getQueryData<TanstackQueryConfig>(['config']) ?? {};
|
|
7
|
+
const { headers = {} } =
|
|
8
|
+
queryClient.getQueryData<TanstackQueryConfig>(['config']) ?? {};
|
|
12
9
|
|
|
13
|
-
return { headers
|
|
10
|
+
return { headers };
|
|
14
11
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { UseQueryOptions } from '@tanstack/react-query';
|
|
2
2
|
import { useQuery } from '@tanstack/react-query';
|
|
3
3
|
import { useState } from 'react';
|
|
4
|
-
import { useQueryConfig } from '../config';
|
|
4
|
+
import { useEnvironmentVariables, useQueryConfig } from '../config';
|
|
5
5
|
import type { IRequestError, IRequestSuccess } from '../request';
|
|
6
6
|
import { HttpMethod, makeRequest } from '../request';
|
|
7
7
|
|
|
@@ -9,7 +9,9 @@ export const useDeleteRequest = <TResponse>() => {
|
|
|
9
9
|
const [requestPath, updateDeletePath] = useState<string>('');
|
|
10
10
|
const [options, setOptions] = useState<any>();
|
|
11
11
|
|
|
12
|
-
const {
|
|
12
|
+
const { API_URL, TIMEOUT } = useEnvironmentVariables();
|
|
13
|
+
|
|
14
|
+
const { headers } = useQueryConfig();
|
|
13
15
|
|
|
14
16
|
const query = useQuery<any, any, IRequestSuccess<TResponse>>(
|
|
15
17
|
[requestPath, {}],
|
|
@@ -20,8 +22,8 @@ export const useDeleteRequest = <TResponse>() => {
|
|
|
20
22
|
path: requestPath,
|
|
21
23
|
headers,
|
|
22
24
|
method: HttpMethod.DELETE,
|
|
23
|
-
baseURL,
|
|
24
|
-
timeout,
|
|
25
|
+
baseURL: API_URL,
|
|
26
|
+
timeout: TIMEOUT,
|
|
25
27
|
});
|
|
26
28
|
if (postResponse.status) {
|
|
27
29
|
res(postResponse as IRequestSuccess<TResponse>);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { UseQueryOptions } from '@tanstack/react-query';
|
|
2
2
|
import { useQuery, useQueryClient } from '@tanstack/react-query';
|
|
3
3
|
import { startTransition, useEffect, useMemo, useState } from 'react';
|
|
4
|
-
import { useQueryConfig } from '../config';
|
|
4
|
+
import { useEnvironmentVariables, useQueryConfig } from '../config';
|
|
5
5
|
import type { IRequestError, IRequestSuccess } from '../request';
|
|
6
6
|
import { makeRequest } from '../request';
|
|
7
7
|
import type { IPagination, TanstackQueryOption } from './queries.interface';
|
|
@@ -21,7 +21,8 @@ export const useGetRequest = <TResponse extends Record<string, any>>({
|
|
|
21
21
|
const [options, setOptions] = useState<any>(queryOptions);
|
|
22
22
|
const [page, setPage] = useState<number>(1);
|
|
23
23
|
|
|
24
|
-
const {
|
|
24
|
+
const { API_URL, TIMEOUT } = useEnvironmentVariables();
|
|
25
|
+
const { headers } = useQueryConfig();
|
|
25
26
|
|
|
26
27
|
let queryClient = useQueryClient();
|
|
27
28
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -39,8 +40,8 @@ export const useGetRequest = <TResponse extends Record<string, any>>({
|
|
|
39
40
|
const postResponse = await makeRequest<TResponse>({
|
|
40
41
|
path: requestPath,
|
|
41
42
|
headers,
|
|
42
|
-
baseURL,
|
|
43
|
-
timeout,
|
|
43
|
+
baseURL: API_URL,
|
|
44
|
+
timeout: TIMEOUT,
|
|
44
45
|
});
|
|
45
46
|
if (postResponse.status) {
|
|
46
47
|
res(postResponse as IRequestSuccess<TResponse>);
|
|
@@ -3,14 +3,15 @@ import { useMutation } from '@tanstack/react-query';
|
|
|
3
3
|
import { scrollToTop } from '../helpers';
|
|
4
4
|
import { HttpMethod, makeRequest } from '../request';
|
|
5
5
|
|
|
6
|
-
import { useQueryConfig } from '../config';
|
|
6
|
+
import { useEnvironmentVariables, useQueryConfig } from '../config';
|
|
7
7
|
import type {
|
|
8
8
|
IRequestError,
|
|
9
9
|
IRequestSuccess,
|
|
10
10
|
} from '../request/request.interface';
|
|
11
11
|
|
|
12
12
|
export const usePatchRequest = <TResponse>({ path }: { path: string }) => {
|
|
13
|
-
const {
|
|
13
|
+
const { API_URL, TIMEOUT } = useEnvironmentVariables();
|
|
14
|
+
const { headers } = useQueryConfig();
|
|
14
15
|
|
|
15
16
|
// register post mutation
|
|
16
17
|
const mutation = useMutation<IRequestSuccess<TResponse>, IRequestError>(
|
|
@@ -21,8 +22,8 @@ export const usePatchRequest = <TResponse>({ path }: { path: string }) => {
|
|
|
21
22
|
body: postData,
|
|
22
23
|
method: HttpMethod.PATCH,
|
|
23
24
|
headers,
|
|
24
|
-
baseURL,
|
|
25
|
-
timeout,
|
|
25
|
+
baseURL: API_URL,
|
|
26
|
+
timeout: TIMEOUT,
|
|
26
27
|
}).then((postResponse) => {
|
|
27
28
|
if (postResponse.status) {
|
|
28
29
|
// scroll to top after success
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { MutateOptions } from '@tanstack/react-query';
|
|
2
2
|
import { useMutation } from '@tanstack/react-query';
|
|
3
|
-
import { useQueryConfig } from '../config';
|
|
3
|
+
import { useEnvironmentVariables, useQueryConfig } from '../config';
|
|
4
4
|
import type { IRequestError, IRequestSuccess } from '../request';
|
|
5
5
|
import { HttpMethod, makeRequest } from '../request';
|
|
6
6
|
|
|
@@ -11,7 +11,9 @@ export const usePostRequest = <TResponse>({
|
|
|
11
11
|
path: string;
|
|
12
12
|
isFormData?: boolean;
|
|
13
13
|
}) => {
|
|
14
|
-
const {
|
|
14
|
+
const { API_URL, TIMEOUT } = useEnvironmentVariables();
|
|
15
|
+
|
|
16
|
+
const { headers } = useQueryConfig();
|
|
15
17
|
|
|
16
18
|
// register post mutation
|
|
17
19
|
const mutation = useMutation<IRequestSuccess<TResponse>, IRequestError>(
|
|
@@ -23,8 +25,8 @@ export const usePostRequest = <TResponse>({
|
|
|
23
25
|
method: HttpMethod.POST,
|
|
24
26
|
isFormData,
|
|
25
27
|
headers,
|
|
26
|
-
baseURL,
|
|
27
|
-
timeout,
|
|
28
|
+
baseURL: API_URL,
|
|
29
|
+
timeout: TIMEOUT,
|
|
28
30
|
}).then((postResponse) => {
|
|
29
31
|
if (postResponse.status) {
|
|
30
32
|
// scroll to top after success
|
package/src/types/index.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import type { RawAxiosRequestHeaders } from 'axios';
|
|
2
2
|
|
|
3
3
|
export interface TanstackQueryConfig {
|
|
4
|
-
baseURL: string;
|
|
5
|
-
timeout?: number;
|
|
6
4
|
headers: RawAxiosRequestHeaders;
|
|
7
5
|
}
|
|
8
6
|
|
|
@@ -10,13 +8,3 @@ export interface IUseQueryHeaders {
|
|
|
10
8
|
headers: TanstackQueryConfig['headers'];
|
|
11
9
|
setQueryHeaders: (header: TanstackQueryConfig['headers']) => void;
|
|
12
10
|
}
|
|
13
|
-
|
|
14
|
-
export interface IUseQueryTimeout {
|
|
15
|
-
timeout: TanstackQueryConfig['timeout'];
|
|
16
|
-
setQueryTimeout: (timeout: TanstackQueryConfig['timeout']) => void;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export interface IUseQueryBaseURL {
|
|
20
|
-
baseURL: TanstackQueryConfig['baseURL'];
|
|
21
|
-
setQueryBaseUrl: (baseURL: TanstackQueryConfig['baseURL']) => void;
|
|
22
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var reactQuery = require('@tanstack/react-query');
|
|
4
|
-
var useQueryConfig = require('./useQueryConfig.js');
|
|
5
|
-
|
|
6
|
-
const useQueryBaseURL = () => {
|
|
7
|
-
const { baseURL } = useQueryConfig.useQueryConfig();
|
|
8
|
-
const queryClient = reactQuery.useQueryClient();
|
|
9
|
-
const setQueryBaseUrl = (newBaseUrl) => {
|
|
10
|
-
queryClient.setQueryData(['config'], (config) => {
|
|
11
|
-
const newConfig = {
|
|
12
|
-
...config,
|
|
13
|
-
baseURL: newBaseUrl,
|
|
14
|
-
};
|
|
15
|
-
return newConfig;
|
|
16
|
-
});
|
|
17
|
-
};
|
|
18
|
-
return { baseURL, setQueryBaseUrl };
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
exports.useQueryBaseURL = useQueryBaseURL;
|
|
22
|
-
//# sourceMappingURL=useQueryBaseURL.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useQueryBaseURL.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var reactQuery = require('@tanstack/react-query');
|
|
4
|
-
var useQueryConfig = require('./useQueryConfig.js');
|
|
5
|
-
|
|
6
|
-
const useQueryTimeout = () => {
|
|
7
|
-
const { timeout } = useQueryConfig.useQueryConfig();
|
|
8
|
-
const queryClient = reactQuery.useQueryClient();
|
|
9
|
-
const setQueryTimeout = (newTimeout) => {
|
|
10
|
-
queryClient.setQueryData(['config'], (config) => {
|
|
11
|
-
const newConfig = { ...config, timeout: newTimeout };
|
|
12
|
-
return newConfig;
|
|
13
|
-
});
|
|
14
|
-
};
|
|
15
|
-
return { timeout, setQueryTimeout };
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
exports.useQueryTimeout = useQueryTimeout;
|
|
19
|
-
//# sourceMappingURL=useQueryTimeout.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useQueryTimeout.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { useQueryClient } from '@tanstack/react-query';
|
|
2
|
-
import type { IUseQueryBaseURL, TanstackQueryConfig } from '../types';
|
|
3
|
-
import { useQueryConfig } from './useQueryConfig';
|
|
4
|
-
|
|
5
|
-
export const useQueryBaseURL = (): IUseQueryBaseURL => {
|
|
6
|
-
const { baseURL } = useQueryConfig();
|
|
7
|
-
const queryClient = useQueryClient();
|
|
8
|
-
|
|
9
|
-
const setQueryBaseUrl = (newBaseUrl: TanstackQueryConfig['baseURL']) => {
|
|
10
|
-
queryClient.setQueryData<TanstackQueryConfig>(['config'], (config): any => {
|
|
11
|
-
const newConfig = {
|
|
12
|
-
...config,
|
|
13
|
-
baseURL: newBaseUrl,
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
return newConfig;
|
|
17
|
-
});
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
return { baseURL, setQueryBaseUrl };
|
|
21
|
-
};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { useQueryClient } from '@tanstack/react-query';
|
|
2
|
-
import type { IUseQueryTimeout, TanstackQueryConfig } from '../types';
|
|
3
|
-
import { useQueryConfig } from './useQueryConfig';
|
|
4
|
-
|
|
5
|
-
export const useQueryTimeout = (): IUseQueryTimeout => {
|
|
6
|
-
const { timeout } = useQueryConfig();
|
|
7
|
-
const queryClient = useQueryClient();
|
|
8
|
-
|
|
9
|
-
const setQueryTimeout = (newTimeout: TanstackQueryConfig['timeout']) => {
|
|
10
|
-
queryClient.setQueryData<TanstackQueryConfig>(['config'], (config): any => {
|
|
11
|
-
const newConfig = { ...config, timeout: newTimeout };
|
|
12
|
-
|
|
13
|
-
return newConfig;
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
return { timeout, setQueryTimeout };
|
|
18
|
-
};
|