@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.
Files changed (37) hide show
  1. package/dist/config/config.interface.d.ts +4 -0
  2. package/dist/config/index.d.ts +2 -2
  3. package/dist/config/useEnvironmentVariables.d.ts +2 -0
  4. package/dist/config/useEnvironmentVariables.js +13 -0
  5. package/dist/config/useEnvironmentVariables.js.map +1 -0
  6. package/dist/config/useQueryConfig.js +2 -2
  7. package/dist/index.js +2 -4
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.mjs +27 -41
  10. package/dist/index.mjs.map +1 -1
  11. package/dist/queries/useDeleteRequest.js +5 -3
  12. package/dist/queries/useDeleteRequest.js.map +1 -1
  13. package/dist/queries/useGetRequest.js +5 -3
  14. package/dist/queries/useGetRequest.js.map +1 -1
  15. package/dist/queries/usePatchRequest.js +5 -3
  16. package/dist/queries/usePatchRequest.js.map +1 -1
  17. package/dist/queries/usePostRequest.js +5 -3
  18. package/dist/queries/usePostRequest.js.map +1 -1
  19. package/dist/types/index.d.ts +0 -10
  20. package/package.json +1 -1
  21. package/src/config/config.interface.ts +4 -0
  22. package/src/config/index.ts +2 -2
  23. package/src/config/useEnvironmentVariables.ts +12 -0
  24. package/src/config/useQueryConfig.ts +3 -6
  25. package/src/queries/useDeleteRequest.ts +6 -4
  26. package/src/queries/useGetRequest.ts +5 -4
  27. package/src/queries/usePatchRequest.ts +5 -4
  28. package/src/queries/usePostRequest.ts +6 -4
  29. package/src/types/index.ts +0 -12
  30. package/dist/config/useQueryBaseURL.d.ts +0 -2
  31. package/dist/config/useQueryBaseURL.js +0 -22
  32. package/dist/config/useQueryBaseURL.js.map +0 -1
  33. package/dist/config/useQueryTimeout.d.ts +0 -2
  34. package/dist/config/useQueryTimeout.js +0 -19
  35. package/dist/config/useQueryTimeout.js.map +0 -1
  36. package/src/config/useQueryBaseURL.ts +0 -21
  37. package/src/config/useQueryTimeout.ts +0 -18
@@ -0,0 +1,4 @@
1
+ export interface IConfig {
2
+ API_URL: string;
3
+ TIMEOUT: number;
4
+ }
@@ -1,4 +1,4 @@
1
- export * from './useQueryBaseURL';
1
+ export * from './config.interface';
2
+ export * from './useEnvironmentVariables';
2
3
  export * from './useQueryConfig';
3
4
  export * from './useQueryHeaders';
4
- export * from './useQueryTimeout';
@@ -0,0 +1,2 @@
1
+ import type { IConfig } from './config.interface';
2
+ export declare const useEnvironmentVariables: () => IConfig;
@@ -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 = {}, baseURL = '', timeout = 10000, } = queryClient.getQueryData(['config']) ?? {};
8
- return { headers, baseURL, timeout };
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 useQueryBaseURL = require('./config/useQueryBaseURL.js');
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.useQueryBaseURL = useQueryBaseURL.useQueryBaseURL;
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 useQueryConfig = () => {
6
- const queryClient = useQueryClient();
7
- const { headers = {}, baseURL = '', timeout = 10000, } = queryClient.getQueryData(['config']) ?? {};
8
- return { headers, baseURL, timeout };
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 useQueryBaseURL = () => {
12
- const { baseURL } = useQueryConfig();
14
+ const useQueryConfig = () => {
13
15
  const queryClient = useQueryClient();
14
- const setQueryBaseUrl = (newBaseUrl) => {
15
- queryClient.setQueryData(['config'], (config) => {
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 { headers, baseURL, timeout } = useQueryConfig();
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 { headers, baseURL, timeout } = useQueryConfig();
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 { headers, baseURL, timeout } = useQueryConfig();
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 { headers, baseURL, timeout } = useQueryConfig();
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, useQueryBaseURL, useQueryConfig, useQueryHeaders, useQueryModel, useQueryTimeout, useRefetchQuery };
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
@@ -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 { headers, baseURL, timeout } = useQueryConfig.useQueryConfig();
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 { headers, baseURL, timeout } = useQueryConfig.useQueryConfig();
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 { headers, baseURL, timeout } = useQueryConfig.useQueryConfig();
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 { headers, baseURL, timeout } = useQueryConfig.useQueryConfig();
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ventlio/tanstack-query",
3
- "version": "0.2.21",
3
+ "version": "0.2.23",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "contributors": [
@@ -0,0 +1,4 @@
1
+ export interface IConfig {
2
+ API_URL: string;
3
+ TIMEOUT: number;
4
+ }
@@ -1,4 +1,4 @@
1
- export * from './useQueryBaseURL';
1
+ export * from './config.interface';
2
+ export * from './useEnvironmentVariables';
2
3
  export * from './useQueryConfig';
3
4
  export * from './useQueryHeaders';
4
- export * from './useQueryTimeout';
@@ -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
- headers = {},
9
- baseURL = '',
10
- timeout = 10000,
11
- } = queryClient.getQueryData<TanstackQueryConfig>(['config']) ?? {};
7
+ const { headers = {} } =
8
+ queryClient.getQueryData<TanstackQueryConfig>(['config']) ?? {};
12
9
 
13
- return { headers, baseURL, timeout };
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 { headers, baseURL, timeout } = useQueryConfig();
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 { headers, baseURL, timeout } = useQueryConfig();
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 { headers, baseURL, timeout } = useQueryConfig();
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 { headers, baseURL, timeout } = useQueryConfig();
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
@@ -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,2 +0,0 @@
1
- import type { IUseQueryBaseURL } from '../types';
2
- export declare const useQueryBaseURL: () => IUseQueryBaseURL;
@@ -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,2 +0,0 @@
1
- import type { IUseQueryTimeout } from '../types';
2
- export declare const useQueryTimeout: () => IUseQueryTimeout;
@@ -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
- };