@ventlio/tanstack-query 0.3.3 → 0.3.5

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.
@@ -1,23 +1,13 @@
1
- import { useQueryClient } from '@tanstack/react-query';
2
- import { useQueryConfig } from './useQueryConfig.js';
1
+ import { useHeaderStore } from '../stores/useHeaderStore.js';
2
+ import '../stores/usePauseFutureRequests.js';
3
3
 
4
4
  const useQueryHeaders = () => {
5
- const queryClient = useQueryClient();
6
- const { headers, options } = useQueryConfig();
5
+ const { headers, setHeader } = useHeaderStore();
7
6
  const getHeaders = () => {
8
7
  return headers;
9
8
  };
10
9
  const setQueryHeaders = (newHeaders) => {
11
- const defaultMeta = {
12
- headers: { ...headers, ...newHeaders },
13
- options,
14
- };
15
- queryClient.setDefaultOptions({
16
- queries: {
17
- meta: defaultMeta,
18
- },
19
- mutations: { meta: defaultMeta },
20
- });
10
+ setHeader(newHeaders);
21
11
  };
22
12
  return { setQueryHeaders, getHeaders };
23
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useQueryHeaders.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"useQueryHeaders.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
package/dist/index.js CHANGED
@@ -19,5 +19,6 @@ export { buildFormData } from './request/buildFormData.js';
19
19
  export { makeRequest } from './request/make-request.js';
20
20
  export { ContentType, HttpMethod } from './request/request.enum.js';
21
21
  export { errorTransformer, successTransformer } from './request/transformer.js';
22
+ export { useHeaderStore } from './stores/useHeaderStore.js';
22
23
  export { usePauseFutureRequests } from './stores/usePauseFutureRequests.js';
23
24
  //# sourceMappingURL=index.js.map
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,10 +1,10 @@
1
1
  import 'url-search-params-polyfill';
2
2
  import { useQueryClient, useQuery, useInfiniteQuery, useMutation } from '@tanstack/react-query';
3
+ import { create } from 'zustand';
3
4
  import { useState, useEffect, useMemo, startTransition } from 'react';
4
5
  import result from 'lodash.result';
5
6
  import lodashSet from 'lodash.set';
6
7
  import axios from 'axios';
7
- import { create } from 'zustand';
8
8
 
9
9
  const bootstrapQueryRequest = (queryClient, options) => {
10
10
  // make query config doesn't expire
@@ -48,23 +48,35 @@ const useEnvironmentVariables = () => {
48
48
  };
49
49
  };
50
50
 
51
+ const useHeaderStore = create((set) => ({
52
+ headers: undefined,
53
+ setHeader(headers) {
54
+ set({ headers });
55
+ },
56
+ }));
57
+
58
+ const usePauseFutureRequests = create((set) => {
59
+ const pauseFutureQueries = (status) => {
60
+ return set({ isFutureQueriesPaused: status });
61
+ };
62
+ const pauseFutureMutation = (status) => {
63
+ return set({ isFutureQueriesPaused: status });
64
+ };
65
+ return {
66
+ isFutureMutationsPaused: false,
67
+ isFutureQueriesPaused: false,
68
+ pauseFutureQueries,
69
+ pauseFutureMutation,
70
+ };
71
+ });
72
+
51
73
  const useQueryHeaders = () => {
52
- const queryClient = useQueryClient();
53
- const { headers, options } = useQueryConfig();
74
+ const { headers, setHeader } = useHeaderStore();
54
75
  const getHeaders = () => {
55
76
  return headers;
56
77
  };
57
78
  const setQueryHeaders = (newHeaders) => {
58
- const defaultMeta = {
59
- headers: { ...headers, ...newHeaders },
60
- options,
61
- };
62
- queryClient.setDefaultOptions({
63
- queries: {
64
- meta: defaultMeta,
65
- },
66
- mutations: { meta: defaultMeta },
67
- });
79
+ setHeader(newHeaders);
68
80
  };
69
81
  return { setQueryHeaders, getHeaders };
70
82
  };
@@ -402,21 +414,6 @@ function getAppFiles(body, fileSelectors = []) {
402
414
  return files;
403
415
  }
404
416
 
405
- const usePauseFutureRequests = create((set) => {
406
- const pauseFutureQueries = (status) => {
407
- return set({ isFutureQueriesPaused: status });
408
- };
409
- const pauseFutureMutation = (status) => {
410
- return set({ isFutureQueriesPaused: status });
411
- };
412
- return {
413
- isFutureMutationsPaused: false,
414
- isFutureQueriesPaused: false,
415
- pauseFutureQueries,
416
- pauseFutureMutation,
417
- };
418
- });
419
-
420
417
  const useDeleteRequest = (deleteOptions) => {
421
418
  const { baseUrl, headers } = deleteOptions ?? {};
422
419
  const [requestPath, setRequestPath] = useState('');
@@ -425,10 +422,8 @@ const useDeleteRequest = (deleteOptions) => {
425
422
  const [requestPayload, setRequestPayload] = useState();
426
423
  const isFutureQueriesPaused = usePauseFutureRequests((state) => state.isFutureQueriesPaused);
427
424
  const { API_URL, TIMEOUT } = useEnvironmentVariables();
428
- const { getHeaders } = useQueryHeaders();
425
+ const globalHeaders = useHeaderStore((state) => state.headers);
429
426
  const sendRequest = async (res, rej, queryKey) => {
430
- // get request headers
431
- const globalHeaders = getHeaders();
432
427
  const [url] = queryKey;
433
428
  const requestUrl = (url ?? requestPath);
434
429
  const requestOptions = {
@@ -488,7 +483,7 @@ const useDeleteRequest = (deleteOptions) => {
488
483
 
489
484
  const useGetInfiniteRequest = ({ path, load = false, queryOptions, keyTracker, baseUrl, headers, }) => {
490
485
  const { API_URL, TIMEOUT } = useEnvironmentVariables();
491
- const { getHeaders } = useQueryHeaders();
486
+ const globalHeaders = useHeaderStore((state) => state.headers);
492
487
  const [requestPath, setRequestPath] = useState(path);
493
488
  const [options, setOptions] = useState(queryOptions);
494
489
  const { options: queryConfigOptions } = useQueryConfig();
@@ -500,7 +495,6 @@ const useGetInfiniteRequest = ({ path, load = false, queryOptions, keyTracker, b
500
495
  const sendRequest = async (res, rej, queryKey, pageParam) => {
501
496
  if (load) {
502
497
  // get request headers
503
- const globalHeaders = getHeaders();
504
498
  const requestOptions = {
505
499
  path: pageParam ?? requestPath,
506
500
  headers: { ...globalHeaders, ...headers },
@@ -595,7 +589,7 @@ const useGetRequest = ({ path, load = false, queryOptions, keyTracker, baseUrl,
595
589
  const [options, setOptions] = useState(queryOptions);
596
590
  const [page, setPage] = useState(1);
597
591
  const { API_URL, TIMEOUT } = useEnvironmentVariables();
598
- const { getHeaders } = useQueryHeaders();
592
+ const globalHeaders = useHeaderStore((state) => state.headers);
599
593
  const { options: queryConfigOptions } = useQueryConfig();
600
594
  const [requestPayload, setRequestPayload] = useState();
601
595
  const isFutureQueriesPaused = usePauseFutureRequests((state) => state.isFutureQueriesPaused);
@@ -604,8 +598,6 @@ const useGetRequest = ({ path, load = false, queryOptions, keyTracker, baseUrl,
604
598
  queryClient = useMemo(() => queryClient, []);
605
599
  const sendRequest = async (res, rej, queryKey) => {
606
600
  if (load) {
607
- // get request headers
608
- const globalHeaders = getHeaders();
609
601
  const [url] = queryKey;
610
602
  const requestUrl = (url ?? requestPath);
611
603
  const requestOptions = {
@@ -729,13 +721,12 @@ const useGetRequest = ({ path, load = false, queryOptions, keyTracker, baseUrl,
729
721
  const usePatchRequest = ({ path, baseUrl, headers }) => {
730
722
  const { API_URL, TIMEOUT } = useEnvironmentVariables();
731
723
  const { uploadProgressPercent, onUploadProgress } = useUploadProgress();
724
+ const globalHeaders = useHeaderStore((state) => state.headers);
732
725
  const [requestPayload, setRequestPayload] = useState();
733
726
  const isFutureMutationsPaused = usePauseFutureRequests((state) => state.isFutureMutationsPaused);
734
- const { getHeaders } = useQueryHeaders();
735
727
  const config = useQueryConfig();
736
728
  const sendRequest = async (res, rej, data) => {
737
729
  // get request headers
738
- const globalHeaders = getHeaders();
739
730
  const requestOptions = {
740
731
  path: path,
741
732
  body: data,
@@ -799,14 +790,13 @@ const usePatchRequest = ({ path, baseUrl, headers }) => {
799
790
  const usePostRequest = ({ path, isFormData = false, baseUrl, headers, fileSelectors, }) => {
800
791
  const { API_URL, TIMEOUT } = useEnvironmentVariables();
801
792
  const config = useQueryConfig();
802
- const { getHeaders } = useQueryHeaders();
793
+ const globalHeaders = useHeaderStore((state) => state.headers);
803
794
  const { isApp } = useReactNativeEnv();
804
795
  const { uploadProgressPercent, onUploadProgress } = useUploadProgress();
805
796
  const [requestPayload, setRequestPayload] = useState();
806
797
  const isFutureMutationsPaused = usePauseFutureRequests((state) => state.isFutureMutationsPaused);
807
798
  const sendRequest = async (res, rej, postData) => {
808
799
  // get request headers
809
- const globalHeaders = getHeaders();
810
800
  const { data, requestConfig } = postData;
811
801
  delete requestConfig?.body;
812
802
  const requestOptions = {
@@ -876,5 +866,5 @@ const usePostRequest = ({ path, isFormData = false, baseUrl, headers, fileSelect
876
866
  return { post, uploadProgressPercent, ...mutation, isLoading: mutation.isLoading || isFutureMutationsPaused };
877
867
  };
878
868
 
879
- export { ContentType, HttpMethod, axiosInstance, bootstrapQueryRequest, buildFormData, errorTransformer, getDateInFuture, makeRequest, scrollToTop, successTransformer, useDeleteRequest, useEnvironmentVariables, useGetInfiniteRequest, useGetRequest, useKeyTrackerModel, usePatchRequest, usePauseFutureRequests, usePostRequest, useQueryConfig, useQueryHeaders, useQueryModel, useReactNativeEnv, useRefetchQuery, useUploadProgress };
869
+ 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 };
880
870
  //# 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,6 +3,8 @@ import result from 'lodash.result';
3
3
  import lodashSet from 'lodash.set';
4
4
  import 'url-search-params-polyfill';
5
5
  import { useQueryConfig } from '../config/useQueryConfig.js';
6
+ import '../stores/useHeaderStore.js';
7
+ import '../stores/usePauseFutureRequests.js';
6
8
  import { useKeyTrackerModel } from './useKeyTrackerModel.js';
7
9
 
8
10
  const useQueryModel = (keyTracker, exact = true) => {
@@ -1 +1 @@
1
- {"version":3,"file":"useQueryModel.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"useQueryModel.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,11 +3,11 @@ import { useState, useEffect } from 'react';
3
3
  import 'url-search-params-polyfill';
4
4
  import { useEnvironmentVariables } from '../config/useEnvironmentVariables.js';
5
5
  import { useQueryConfig } from '../config/useQueryConfig.js';
6
- import { useQueryHeaders } from '../config/useQueryHeaders.js';
6
+ import { useHeaderStore } from '../stores/useHeaderStore.js';
7
+ import { usePauseFutureRequests } from '../stores/usePauseFutureRequests.js';
7
8
  import 'axios';
8
9
  import { makeRequest } from '../request/make-request.js';
9
10
  import { HttpMethod } from '../request/request.enum.js';
10
- import { usePauseFutureRequests } from '../stores/usePauseFutureRequests.js';
11
11
 
12
12
  const useDeleteRequest = (deleteOptions) => {
13
13
  const { baseUrl, headers } = deleteOptions ?? {};
@@ -17,10 +17,8 @@ const useDeleteRequest = (deleteOptions) => {
17
17
  const [requestPayload, setRequestPayload] = useState();
18
18
  const isFutureQueriesPaused = usePauseFutureRequests((state) => state.isFutureQueriesPaused);
19
19
  const { API_URL, TIMEOUT } = useEnvironmentVariables();
20
- const { getHeaders } = useQueryHeaders();
20
+ const globalHeaders = useHeaderStore((state) => state.headers);
21
21
  const sendRequest = async (res, rej, queryKey) => {
22
- // get request headers
23
- const globalHeaders = getHeaders();
24
22
  const [url] = queryKey;
25
23
  const requestUrl = (url ?? requestPath);
26
24
  const requestOptions = {
@@ -1 +1 @@
1
- {"version":3,"file":"useDeleteRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"useDeleteRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,15 +3,15 @@ import { useState, useMemo, useEffect, startTransition } from 'react';
3
3
  import 'url-search-params-polyfill';
4
4
  import { useEnvironmentVariables } from '../config/useEnvironmentVariables.js';
5
5
  import { useQueryConfig } from '../config/useQueryConfig.js';
6
- import { useQueryHeaders } from '../config/useQueryHeaders.js';
6
+ import { useHeaderStore } from '../stores/useHeaderStore.js';
7
+ import { usePauseFutureRequests } from '../stores/usePauseFutureRequests.js';
7
8
  import 'axios';
8
9
  import { makeRequest } from '../request/make-request.js';
9
10
  import '../request/request.enum.js';
10
- import { usePauseFutureRequests } from '../stores/usePauseFutureRequests.js';
11
11
 
12
12
  const useGetInfiniteRequest = ({ path, load = false, queryOptions, keyTracker, baseUrl, headers, }) => {
13
13
  const { API_URL, TIMEOUT } = useEnvironmentVariables();
14
- const { getHeaders } = useQueryHeaders();
14
+ const globalHeaders = useHeaderStore((state) => state.headers);
15
15
  const [requestPath, setRequestPath] = useState(path);
16
16
  const [options, setOptions] = useState(queryOptions);
17
17
  const { options: queryConfigOptions } = useQueryConfig();
@@ -23,7 +23,6 @@ const useGetInfiniteRequest = ({ path, load = false, queryOptions, keyTracker, b
23
23
  const sendRequest = async (res, rej, queryKey, pageParam) => {
24
24
  if (load) {
25
25
  // get request headers
26
- const globalHeaders = getHeaders();
27
26
  const requestOptions = {
28
27
  path: pageParam ?? requestPath,
29
28
  headers: { ...globalHeaders, ...headers },
@@ -1 +1 @@
1
- {"version":3,"file":"useGetInfiniteRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"useGetInfiniteRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,18 +3,18 @@ import { useState, useMemo, useEffect, startTransition } from 'react';
3
3
  import 'url-search-params-polyfill';
4
4
  import { useEnvironmentVariables } from '../config/useEnvironmentVariables.js';
5
5
  import { useQueryConfig } from '../config/useQueryConfig.js';
6
- import { useQueryHeaders } from '../config/useQueryHeaders.js';
6
+ import { useHeaderStore } from '../stores/useHeaderStore.js';
7
+ import { usePauseFutureRequests } from '../stores/usePauseFutureRequests.js';
7
8
  import 'axios';
8
9
  import { makeRequest } from '../request/make-request.js';
9
10
  import '../request/request.enum.js';
10
- import { usePauseFutureRequests } from '../stores/usePauseFutureRequests.js';
11
11
 
12
12
  const useGetRequest = ({ path, load = false, queryOptions, keyTracker, baseUrl, headers, }) => {
13
13
  const [requestPath, setRequestPath] = useState(path);
14
14
  const [options, setOptions] = useState(queryOptions);
15
15
  const [page, setPage] = useState(1);
16
16
  const { API_URL, TIMEOUT } = useEnvironmentVariables();
17
- const { getHeaders } = useQueryHeaders();
17
+ const globalHeaders = useHeaderStore((state) => state.headers);
18
18
  const { options: queryConfigOptions } = useQueryConfig();
19
19
  const [requestPayload, setRequestPayload] = useState();
20
20
  const isFutureQueriesPaused = usePauseFutureRequests((state) => state.isFutureQueriesPaused);
@@ -23,8 +23,6 @@ const useGetRequest = ({ path, load = false, queryOptions, keyTracker, baseUrl,
23
23
  queryClient = useMemo(() => queryClient, []);
24
24
  const sendRequest = async (res, rej, queryKey) => {
25
25
  if (load) {
26
- // get request headers
27
- const globalHeaders = getHeaders();
28
26
  const [url] = queryKey;
29
27
  const requestUrl = (url ?? requestPath);
30
28
  const requestOptions = {
@@ -1 +1 @@
1
- {"version":3,"file":"useGetRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"useGetRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,24 +3,23 @@ import { useState, useEffect } from 'react';
3
3
  import 'url-search-params-polyfill';
4
4
  import { useEnvironmentVariables } from '../config/useEnvironmentVariables.js';
5
5
  import { useQueryConfig } from '../config/useQueryConfig.js';
6
- import { useQueryHeaders } from '../config/useQueryHeaders.js';
6
+ import { useHeaderStore } from '../stores/useHeaderStore.js';
7
+ import { usePauseFutureRequests } from '../stores/usePauseFutureRequests.js';
7
8
  import { scrollToTop } from '../helpers/scrollToTop.js';
8
9
  import { useUploadProgress } from '../hooks/useUploadProgress.js';
9
10
  import 'axios';
10
11
  import { makeRequest } from '../request/make-request.js';
11
12
  import { HttpMethod } from '../request/request.enum.js';
12
- import { usePauseFutureRequests } from '../stores/usePauseFutureRequests.js';
13
13
 
14
14
  const usePatchRequest = ({ path, baseUrl, headers }) => {
15
15
  const { API_URL, TIMEOUT } = useEnvironmentVariables();
16
16
  const { uploadProgressPercent, onUploadProgress } = useUploadProgress();
17
+ const globalHeaders = useHeaderStore((state) => state.headers);
17
18
  const [requestPayload, setRequestPayload] = useState();
18
19
  const isFutureMutationsPaused = usePauseFutureRequests((state) => state.isFutureMutationsPaused);
19
- const { getHeaders } = useQueryHeaders();
20
20
  const config = useQueryConfig();
21
21
  const sendRequest = async (res, rej, data) => {
22
22
  // get request headers
23
- const globalHeaders = getHeaders();
24
23
  const requestOptions = {
25
24
  path: path,
26
25
  body: data,
@@ -1 +1 @@
1
- {"version":3,"file":"usePatchRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"usePatchRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,7 +2,8 @@ import { useMutation } from '@tanstack/react-query';
2
2
  import 'url-search-params-polyfill';
3
3
  import { useEnvironmentVariables } from '../config/useEnvironmentVariables.js';
4
4
  import { useQueryConfig } from '../config/useQueryConfig.js';
5
- import { useQueryHeaders } from '../config/useQueryHeaders.js';
5
+ import { useHeaderStore } from '../stores/useHeaderStore.js';
6
+ import { usePauseFutureRequests } from '../stores/usePauseFutureRequests.js';
6
7
  import { useReactNativeEnv } from '../config/useReactNativeEnv.js';
7
8
  import { useState, useEffect } from 'react';
8
9
  import { scrollToTop } from '../helpers/scrollToTop.js';
@@ -10,19 +11,17 @@ import { useUploadProgress } from '../hooks/useUploadProgress.js';
10
11
  import 'axios';
11
12
  import { makeRequest } from '../request/make-request.js';
12
13
  import { HttpMethod } from '../request/request.enum.js';
13
- import { usePauseFutureRequests } from '../stores/usePauseFutureRequests.js';
14
14
 
15
15
  const usePostRequest = ({ path, isFormData = false, baseUrl, headers, fileSelectors, }) => {
16
16
  const { API_URL, TIMEOUT } = useEnvironmentVariables();
17
17
  const config = useQueryConfig();
18
- const { getHeaders } = useQueryHeaders();
18
+ const globalHeaders = useHeaderStore((state) => state.headers);
19
19
  const { isApp } = useReactNativeEnv();
20
20
  const { uploadProgressPercent, onUploadProgress } = useUploadProgress();
21
21
  const [requestPayload, setRequestPayload] = useState();
22
22
  const isFutureMutationsPaused = usePauseFutureRequests((state) => state.isFutureMutationsPaused);
23
23
  const sendRequest = async (res, rej, postData) => {
24
24
  // get request headers
25
- const globalHeaders = getHeaders();
26
25
  const { data, requestConfig } = postData;
27
26
  delete requestConfig?.body;
28
27
  const requestOptions = {
@@ -1 +1 @@
1
- {"version":3,"file":"usePostRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"usePostRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1,2 @@
1
+ export * from './useHeaderStore';
1
2
  export * from './usePauseFutureRequests';
@@ -0,0 +1,7 @@
1
+ import type { QueryHeaders } from '../types';
2
+ interface IUserHeaders {
3
+ headers: QueryHeaders | undefined;
4
+ setHeader: (headers: QueryHeaders) => void;
5
+ }
6
+ export declare const useHeaderStore: import("zustand").UseBoundStore<import("zustand").StoreApi<IUserHeaders>>;
7
+ export {};
@@ -0,0 +1,11 @@
1
+ import { create } from 'zustand';
2
+
3
+ const useHeaderStore = create((set) => ({
4
+ headers: undefined,
5
+ setHeader(headers) {
6
+ set({ headers });
7
+ },
8
+ }));
9
+
10
+ export { useHeaderStore };
11
+ //# sourceMappingURL=useHeaderStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHeaderStore.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -20,10 +20,10 @@ export interface BootstrapModelConfig {
20
20
  }
21
21
  export type ContextType = 'app' | 'web' | 'electronjs';
22
22
  export interface TanstackQueryConfig {
23
- headers: RawAxiosRequestHeaders;
24
23
  options?: BootstrapConfig;
25
24
  }
26
25
  export interface IUseQueryHeaders {
27
- getHeaders: () => TanstackQueryConfig['headers'];
28
- setQueryHeaders: (header: TanstackQueryConfig['headers']) => void;
26
+ getHeaders: () => QueryHeaders;
27
+ setQueryHeaders: (header: QueryHeaders) => void;
29
28
  }
29
+ export type QueryHeaders = RawAxiosRequestHeaders | undefined;
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@ventlio/tanstack-query",
3
- "version": "0.3.3",
3
+ "version": "0.3.5",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "contributors": [
7
7
  {
8
- "email": "soromgawide@gmail.com",
8
+ "email": "stancoproof@gmail.com",
9
9
  "name": "stancobridge",
10
10
  "url": "https://github.com/stancobridge"
11
11
  }
@@ -1,27 +1,15 @@
1
- import { useQueryClient } from '@tanstack/react-query';
2
- import type { IUseQueryHeaders, TanstackQueryConfig } from '../types';
3
- import { useQueryConfig } from './useQueryConfig';
1
+ import { useHeaderStore } from '../stores';
2
+ import type { IUseQueryHeaders, QueryHeaders } from '../types';
4
3
 
5
4
  export const useQueryHeaders = (): IUseQueryHeaders => {
6
- const queryClient = useQueryClient();
7
- const { headers, options } = useQueryConfig();
5
+ const { headers, setHeader } = useHeaderStore();
8
6
 
9
- const getHeaders = (): TanstackQueryConfig['headers'] => {
7
+ const getHeaders = (): QueryHeaders => {
10
8
  return headers;
11
9
  };
12
10
 
13
- const setQueryHeaders = (newHeaders: TanstackQueryConfig['headers']) => {
14
- const defaultMeta = {
15
- headers: { ...headers, ...newHeaders },
16
- options,
17
- };
18
-
19
- queryClient.setDefaultOptions({
20
- queries: {
21
- meta: defaultMeta,
22
- },
23
- mutations: { meta: defaultMeta },
24
- });
11
+ const setQueryHeaders = (newHeaders: QueryHeaders) => {
12
+ setHeader(newHeaders);
25
13
  };
26
14
 
27
15
  return { setQueryHeaders, getHeaders };
@@ -1,11 +1,10 @@
1
1
  import type { QueryKey, UseQueryOptions } from '@tanstack/react-query';
2
2
  import { useQuery } from '@tanstack/react-query';
3
- import type { RawAxiosRequestHeaders } from 'axios';
4
3
  import { useEffect, useState } from 'react';
5
- import { useEnvironmentVariables, useQueryConfig, useQueryHeaders } from '../config';
4
+ import { useEnvironmentVariables, useQueryConfig } from '../config';
6
5
  import type { IRequestError, IRequestSuccess } from '../request';
7
6
  import { HttpMethod, makeRequest } from '../request';
8
- import { usePauseFutureRequests } from '../stores';
7
+ import { useHeaderStore, usePauseFutureRequests } from '../stores';
9
8
  import type { DefaultRequestOptions } from './queries.interface';
10
9
 
11
10
  export const useDeleteRequest = <TResponse>(deleteOptions?: DefaultRequestOptions) => {
@@ -20,12 +19,9 @@ export const useDeleteRequest = <TResponse>(deleteOptions?: DefaultRequestOption
20
19
 
21
20
  const { API_URL, TIMEOUT } = useEnvironmentVariables();
22
21
 
23
- const { getHeaders } = useQueryHeaders();
22
+ const globalHeaders = useHeaderStore((state) => state.headers);
24
23
 
25
24
  const sendRequest = async (res: (value: any) => void, rej: (reason?: any) => void, queryKey: QueryKey) => {
26
- // get request headers
27
- const globalHeaders: RawAxiosRequestHeaders = getHeaders();
28
-
29
25
  const [url] = queryKey;
30
26
  const requestUrl = (url ?? requestPath) as string;
31
27
 
@@ -1,12 +1,11 @@
1
1
  import type { InfiniteData, QueryKey, UseQueryOptions } from '@tanstack/react-query';
2
2
  import { useInfiniteQuery, useQueryClient } from '@tanstack/react-query';
3
- import type { RawAxiosRequestHeaders } from 'axios';
4
3
  import { startTransition, useEffect, useMemo, useState } from 'react';
5
- import { useEnvironmentVariables, useQueryConfig, useQueryHeaders } from '../config';
4
+ import { useEnvironmentVariables, useQueryConfig } from '../config';
6
5
 
7
6
  import type { IRequestError, IRequestSuccess } from '../request';
8
7
  import { makeRequest } from '../request';
9
- import { usePauseFutureRequests } from '../stores';
8
+ import { useHeaderStore, usePauseFutureRequests } from '../stores';
10
9
  import type { DefaultRequestOptions, TanstackInfiniteQueryOption } from './queries.interface';
11
10
 
12
11
  interface Pagination {
@@ -32,7 +31,7 @@ export const useGetInfiniteRequest = <TResponse extends Record<string, any>>({
32
31
  keyTracker?: string;
33
32
  } & DefaultRequestOptions) => {
34
33
  const { API_URL, TIMEOUT } = useEnvironmentVariables();
35
- const { getHeaders } = useQueryHeaders();
34
+ const globalHeaders = useHeaderStore((state) => state.headers);
36
35
  const [requestPath, setRequestPath] = useState<string>(path);
37
36
 
38
37
  const [options, setOptions] = useState<any>(queryOptions);
@@ -59,7 +58,6 @@ export const useGetInfiniteRequest = <TResponse extends Record<string, any>>({
59
58
  ) => {
60
59
  if (load) {
61
60
  // get request headers
62
- const globalHeaders: RawAxiosRequestHeaders = getHeaders();
63
61
 
64
62
  const requestOptions = {
65
63
  path: pageParam ?? requestPath,
@@ -1,12 +1,11 @@
1
1
  import type { QueryKey, 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 type { RawAxiosRequestHeaders } from '../../node_modules/axios/index';
5
- import { useEnvironmentVariables, useQueryConfig, useQueryHeaders } from '../config';
4
+ import { useEnvironmentVariables, useQueryConfig } from '../config';
6
5
 
7
6
  import type { IRequestError, IRequestSuccess } from '../request';
8
7
  import { makeRequest } from '../request';
9
- import { usePauseFutureRequests } from '../stores';
8
+ import { useHeaderStore, usePauseFutureRequests } from '../stores';
10
9
  import type { DefaultRequestOptions, IPagination, TanstackQueryOption } from './queries.interface';
11
10
 
12
11
  export const useGetRequest = <TResponse extends Record<string, any>>({
@@ -27,7 +26,8 @@ export const useGetRequest = <TResponse extends Record<string, any>>({
27
26
  const [page, setPage] = useState<number>(1);
28
27
 
29
28
  const { API_URL, TIMEOUT } = useEnvironmentVariables();
30
- const { getHeaders } = useQueryHeaders();
29
+ const globalHeaders = useHeaderStore((state) => state.headers);
30
+
31
31
  const { options: queryConfigOptions } = useQueryConfig();
32
32
  const [requestPayload, setRequestPayload] = useState<Record<any, any>>();
33
33
 
@@ -46,9 +46,6 @@ export const useGetRequest = <TResponse extends Record<string, any>>({
46
46
  queryKey: QueryKey
47
47
  ) => {
48
48
  if (load) {
49
- // get request headers
50
- const globalHeaders: RawAxiosRequestHeaders = getHeaders();
51
-
52
49
  const [url] = queryKey;
53
50
  const requestUrl = (url ?? requestPath) as string;
54
51
 
@@ -1,30 +1,27 @@
1
1
  import type { MutateOptions } from '@tanstack/react-query';
2
2
  import { useMutation } from '@tanstack/react-query';
3
- import type { RawAxiosRequestHeaders } from 'axios';
4
3
  import { useEffect, useState } from 'react';
5
- import { useEnvironmentVariables, useQueryConfig, useQueryHeaders } from '../config';
4
+ import { useEnvironmentVariables, useQueryConfig } from '../config';
6
5
  import { scrollToTop } from '../helpers';
7
6
  import { useUploadProgress } from '../hooks';
8
7
  import { HttpMethod, makeRequest } from '../request';
9
8
  import type { IRequestError, IRequestSuccess } from '../request/request.interface';
10
- import { usePauseFutureRequests } from '../stores';
9
+ import { useHeaderStore, usePauseFutureRequests } from '../stores';
11
10
  import type { DefaultRequestOptions } from './queries.interface';
12
11
 
13
12
  export const usePatchRequest = <TResponse>({ path, baseUrl, headers }: { path: string } & DefaultRequestOptions) => {
14
13
  const { API_URL, TIMEOUT } = useEnvironmentVariables();
15
14
  const { uploadProgressPercent, onUploadProgress } = useUploadProgress();
15
+ const globalHeaders = useHeaderStore((state) => state.headers);
16
16
 
17
17
  const [requestPayload, setRequestPayload] = useState<Record<any, any>>();
18
18
 
19
19
  const isFutureMutationsPaused = usePauseFutureRequests((state) => state.isFutureMutationsPaused);
20
20
 
21
- const { getHeaders } = useQueryHeaders();
22
-
23
21
  const config = useQueryConfig();
24
22
 
25
23
  const sendRequest = async (res: (value: any) => void, rej: (reason?: any) => void, data: any) => {
26
24
  // get request headers
27
- const globalHeaders: RawAxiosRequestHeaders = getHeaders();
28
25
 
29
26
  const requestOptions = {
30
27
  path: path,
@@ -1,14 +1,13 @@
1
1
  import type { MutateOptions } from '@tanstack/react-query';
2
2
  import { useMutation } from '@tanstack/react-query';
3
- import { useEnvironmentVariables, useQueryConfig, useQueryHeaders, useReactNativeEnv } from '../config';
3
+ import { useEnvironmentVariables, useQueryConfig, useReactNativeEnv } from '../config';
4
4
 
5
- import type { RawAxiosRequestHeaders } from 'axios';
6
5
  import { useEffect, useState } from 'react';
7
6
  import { scrollToTop } from '../helpers';
8
7
  import { useUploadProgress } from '../hooks';
9
8
  import type { IMakeRequest, IRequestError, IRequestSuccess } from '../request';
10
9
  import { HttpMethod, makeRequest } from '../request';
11
- import { usePauseFutureRequests } from '../stores';
10
+ import { useHeaderStore, usePauseFutureRequests } from '../stores';
12
11
  import type { DefaultRequestOptions } from './queries.interface';
13
12
 
14
13
  export const usePostRequest = <TResponse>({
@@ -26,7 +25,7 @@ export const usePostRequest = <TResponse>({
26
25
 
27
26
  const config = useQueryConfig();
28
27
 
29
- const { getHeaders } = useQueryHeaders();
28
+ const globalHeaders = useHeaderStore((state) => state.headers);
30
29
  const { isApp } = useReactNativeEnv();
31
30
  const { uploadProgressPercent, onUploadProgress } = useUploadProgress();
32
31
  const [requestPayload, setRequestPayload] = useState<Record<any, any>>();
@@ -39,7 +38,6 @@ export const usePostRequest = <TResponse>({
39
38
  postData: { data: any; requestConfig?: Partial<IMakeRequest> }
40
39
  ) => {
41
40
  // get request headers
42
- const globalHeaders: RawAxiosRequestHeaders = getHeaders();
43
41
 
44
42
  const { data, requestConfig } = postData;
45
43
 
@@ -1 +1,2 @@
1
+ export * from './useHeaderStore';
1
2
  export * from './usePauseFutureRequests';
@@ -0,0 +1,13 @@
1
+ import { create } from 'zustand';
2
+ import type { QueryHeaders } from '../types';
3
+
4
+ interface IUserHeaders {
5
+ headers: QueryHeaders | undefined;
6
+ setHeader: (headers: QueryHeaders) => void;
7
+ }
8
+ export const useHeaderStore = create<IUserHeaders>((set) => ({
9
+ headers: undefined,
10
+ setHeader(headers) {
11
+ set({ headers });
12
+ },
13
+ }));
@@ -19,11 +19,12 @@ export interface BootstrapModelConfig {
19
19
 
20
20
  export type ContextType = 'app' | 'web' | 'electronjs';
21
21
  export interface TanstackQueryConfig {
22
- headers: RawAxiosRequestHeaders;
23
22
  options?: BootstrapConfig;
24
23
  }
25
24
 
26
25
  export interface IUseQueryHeaders {
27
- getHeaders: () => TanstackQueryConfig['headers'];
28
- setQueryHeaders: (header: TanstackQueryConfig['headers']) => void;
26
+ getHeaders: () => QueryHeaders;
27
+ setQueryHeaders: (header: QueryHeaders) => void;
29
28
  }
29
+
30
+ export type QueryHeaders = RawAxiosRequestHeaders | undefined;