@ventlio/tanstack-query 0.5.7 → 0.5.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/dist/_virtual/index.js +8 -0
  2. package/dist/{index.js.map → _virtual/index.js.map} +1 -1
  3. package/dist/_virtual/use-sync-external-store-shim.development.js +4 -0
  4. package/dist/_virtual/use-sync-external-store-shim.development.js.map +1 -0
  5. package/dist/_virtual/use-sync-external-store-shim.production.js +4 -0
  6. package/dist/_virtual/use-sync-external-store-shim.production.js.map +1 -0
  7. package/dist/_virtual/with-selector.development.js +4 -0
  8. package/dist/_virtual/with-selector.development.js.map +1 -0
  9. package/dist/_virtual/with-selector.js +8 -0
  10. package/dist/_virtual/with-selector.js.map +1 -0
  11. package/dist/_virtual/with-selector.production.js +4 -0
  12. package/dist/_virtual/with-selector.production.js.map +1 -0
  13. package/dist/config/bootStore.d.ts +3 -0
  14. package/dist/config/bootstrapQueryRequest.d.ts +1 -1
  15. package/dist/config/index.d.ts +0 -1
  16. package/dist/index.mjs +732 -51
  17. package/dist/index.mjs.map +1 -1
  18. package/dist/node_modules/@tanstack/react-store/dist/esm/index.js +48 -0
  19. package/dist/node_modules/@tanstack/react-store/dist/esm/index.js.map +1 -0
  20. package/dist/node_modules/@tanstack/react-store/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +110 -0
  21. package/dist/node_modules/@tanstack/react-store/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -0
  22. package/dist/node_modules/@tanstack/react-store/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js +98 -0
  23. package/dist/node_modules/@tanstack/react-store/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js.map +1 -0
  24. package/dist/node_modules/@tanstack/react-store/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +107 -0
  25. package/dist/node_modules/@tanstack/react-store/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -0
  26. package/dist/node_modules/@tanstack/react-store/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +78 -0
  27. package/dist/node_modules/@tanstack/react-store/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js.map +1 -0
  28. package/dist/node_modules/@tanstack/react-store/node_modules/use-sync-external-store/shim/index.js +22 -0
  29. package/dist/node_modules/@tanstack/react-store/node_modules/use-sync-external-store/shim/index.js.map +1 -0
  30. package/dist/node_modules/@tanstack/react-store/node_modules/use-sync-external-store/shim/with-selector.js +13 -0
  31. package/dist/node_modules/@tanstack/react-store/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -0
  32. package/dist/node_modules/@tanstack/store/dist/esm/derived.js +119 -0
  33. package/dist/node_modules/@tanstack/store/dist/esm/derived.js.map +1 -0
  34. package/dist/node_modules/@tanstack/store/dist/esm/scheduler.js +88 -0
  35. package/dist/node_modules/@tanstack/store/dist/esm/scheduler.js.map +1 -0
  36. package/dist/node_modules/@tanstack/store/dist/esm/store.js +29 -0
  37. package/dist/node_modules/@tanstack/store/dist/esm/store.js.map +1 -0
  38. package/dist/src/config/bootStore.js +16 -0
  39. package/dist/src/config/bootStore.js.map +1 -0
  40. package/dist/src/config/bootstrapQueryRequest.js +11 -0
  41. package/dist/{config → src/config}/bootstrapQueryRequest.js.map +1 -1
  42. package/dist/src/config/useEnvironmentVariables.js +16 -0
  43. package/dist/{config → src/config}/useEnvironmentVariables.js.map +1 -1
  44. package/dist/src/config/useReactNativeEnv.js +13 -0
  45. package/dist/{config → src/config}/useReactNativeEnv.js.map +1 -1
  46. package/dist/{index.js → src/index.js} +0 -1
  47. package/dist/src/index.js.map +1 -0
  48. package/dist/{model → src/model}/useQueryModel.js +4 -7
  49. package/dist/{model → src/model}/useQueryModel.js.map +1 -1
  50. package/dist/{queries → src/queries}/useDeleteRequest.js +5 -4
  51. package/dist/{queries → src/queries}/useDeleteRequest.js.map +1 -1
  52. package/dist/{queries → src/queries}/useGetInfiniteRequest.js +5 -4
  53. package/dist/{queries → src/queries}/useGetInfiniteRequest.js.map +1 -1
  54. package/dist/{queries → src/queries}/useGetRequest.js +5 -4
  55. package/dist/{queries → src/queries}/useGetRequest.js.map +1 -1
  56. package/dist/{queries → src/queries}/usePatchRequest.js +7 -6
  57. package/dist/{queries → src/queries}/usePatchRequest.js.map +1 -1
  58. package/dist/{queries → src/queries}/usePostRequest.js +7 -6
  59. package/dist/{queries → src/queries}/usePostRequest.js.map +1 -1
  60. package/dist/src/stores/useBaseUrlStore.js +9 -0
  61. package/dist/src/stores/useBaseUrlStore.js.map +1 -0
  62. package/dist/stores/useBaseUrlStore.d.ts +4 -0
  63. package/package.json +2 -1
  64. package/src/config/bootStore.ts +14 -0
  65. package/src/config/bootstrapQueryRequest.ts +4 -15
  66. package/src/config/index.ts +0 -1
  67. package/src/config/useEnvironmentVariables.ts +4 -2
  68. package/src/config/useReactNativeEnv.ts +6 -5
  69. package/src/model/useQueryModel.ts +4 -4
  70. package/src/queries/useDeleteRequest.ts +7 -4
  71. package/src/queries/useGetInfiniteRequest.ts +7 -4
  72. package/src/queries/useGetRequest.ts +7 -4
  73. package/src/queries/usePatchRequest.ts +8 -7
  74. package/src/queries/usePostRequest.ts +8 -6
  75. package/src/queries/usePutRequest.ts +8 -6
  76. package/src/stores/useBaseUrlStore.ts +9 -0
  77. package/dist/config/bootstrapQueryRequest.js +0 -21
  78. package/dist/config/useEnvironmentVariables.js +0 -14
  79. package/dist/config/useQueryConfig.d.ts +0 -2
  80. package/dist/config/useQueryConfig.js +0 -11
  81. package/dist/config/useQueryConfig.js.map +0 -1
  82. package/dist/config/useReactNativeEnv.js +0 -12
  83. package/src/config/useQueryConfig.ts +0 -11
  84. /package/dist/{config → src/config}/useQueryHeaders.js +0 -0
  85. /package/dist/{config → src/config}/useQueryHeaders.js.map +0 -0
  86. /package/dist/{helpers → src/helpers}/scrollToTop.js +0 -0
  87. /package/dist/{helpers → src/helpers}/scrollToTop.js.map +0 -0
  88. /package/dist/{helpers → src/helpers}/timeFuncs.js +0 -0
  89. /package/dist/{helpers → src/helpers}/timeFuncs.js.map +0 -0
  90. /package/dist/{hooks → src/hooks}/useUploadProgress.js +0 -0
  91. /package/dist/{hooks → src/hooks}/useUploadProgress.js.map +0 -0
  92. /package/dist/{model → src/model}/useKeyTrackerModel.js +0 -0
  93. /package/dist/{model → src/model}/useKeyTrackerModel.js.map +0 -0
  94. /package/dist/{model → src/model}/useRefetchQuery.js +0 -0
  95. /package/dist/{model → src/model}/useRefetchQuery.js.map +0 -0
  96. /package/dist/{request → src/request}/axios-instance.js +0 -0
  97. /package/dist/{request → src/request}/axios-instance.js.map +0 -0
  98. /package/dist/{request → src/request}/buildFormData.js +0 -0
  99. /package/dist/{request → src/request}/buildFormData.js.map +0 -0
  100. /package/dist/{request → src/request}/make-request.js +0 -0
  101. /package/dist/{request → src/request}/make-request.js.map +0 -0
  102. /package/dist/{request → src/request}/request.enum.js +0 -0
  103. /package/dist/{request → src/request}/request.enum.js.map +0 -0
  104. /package/dist/{request → src/request}/transformer.js +0 -0
  105. /package/dist/{request → src/request}/transformer.js.map +0 -0
  106. /package/dist/{stores → src/stores}/useHeaderStore.js +0 -0
  107. /package/dist/{stores → src/stores}/useHeaderStore.js.map +0 -0
  108. /package/dist/{stores → src/stores}/usePauseFutureRequests.js +0 -0
  109. /package/dist/{stores → src/stores}/usePauseFutureRequests.js.map +0 -0
@@ -1,10 +1,11 @@
1
1
  import { useMutation } from '@tanstack/react-query';
2
2
  import 'url-search-params-polyfill';
3
+ import { bootStore } from '../config/bootStore.js';
3
4
  import { useEnvironmentVariables } from '../config/useEnvironmentVariables.js';
4
- import { useQueryConfig } from '../config/useQueryConfig.js';
5
5
  import { useHeaderStore } from '../stores/useHeaderStore.js';
6
6
  import { usePauseFutureRequests } from '../stores/usePauseFutureRequests.js';
7
7
  import { useReactNativeEnv } from '../config/useReactNativeEnv.js';
8
+ import { useStore } from '../../node_modules/@tanstack/react-store/dist/esm/index.js';
8
9
  import { useState, useEffect } from 'react';
9
10
  import { scrollToTop } from '../helpers/scrollToTop.js';
10
11
  import { useUploadProgress } from '../hooks/useUploadProgress.js';
@@ -14,7 +15,7 @@ import { HttpMethod } from '../request/request.enum.js';
14
15
 
15
16
  const usePostRequest = ({ path, isFormData = false, baseUrl, headers, fileSelectors, }) => {
16
17
  const { API_URL, TIMEOUT } = useEnvironmentVariables();
17
- const config = useQueryConfig();
18
+ const { middleware, context } = useStore(bootStore);
18
19
  const globalHeaders = useHeaderStore((state) => state.headers);
19
20
  const { isApp } = useReactNativeEnv();
20
21
  const { uploadProgressPercent, onUploadProgress } = useUploadProgress();
@@ -40,9 +41,9 @@ const usePostRequest = ({ path, isFormData = false, baseUrl, headers, fileSelect
40
41
  ...requestConfig,
41
42
  };
42
43
  let postResponse;
43
- if (config.options?.middleware) {
44
+ if (middleware) {
44
45
  // perform global middleware
45
- postResponse = await config.options.middleware(async (options) => await makeRequest(options ? { ...requestOptions, ...options } : requestOptions), {
46
+ postResponse = await middleware(async (options) => await makeRequest(options ? { ...requestOptions, ...options } : requestOptions), {
46
47
  path,
47
48
  baseUrl: baseUrl ?? API_URL,
48
49
  body: data,
@@ -53,14 +54,14 @@ const usePostRequest = ({ path, isFormData = false, baseUrl, headers, fileSelect
53
54
  }
54
55
  if (postResponse.status) {
55
56
  // scroll to top after success
56
- if (config.options?.context !== 'app') {
57
+ if (context !== 'app') {
57
58
  scrollToTop();
58
59
  }
59
60
  res(postResponse);
60
61
  }
61
62
  else {
62
63
  // scroll to top after error
63
- if (config.options?.context !== 'app') {
64
+ if (context !== 'app') {
64
65
  scrollToTop();
65
66
  }
66
67
  rej(postResponse);
@@ -1 +1 @@
1
- {"version":3,"file":"usePostRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"usePostRequest.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,9 @@
1
+ import { create } from 'zustand';
2
+
3
+ const useBaseUrlStore = create((set) => ({
4
+ baseUrl: undefined,
5
+ setBaseUrl: (baseUrl) => set({ baseUrl }),
6
+ }));
7
+
8
+ export { useBaseUrlStore };
9
+ //# sourceMappingURL=useBaseUrlStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBaseUrlStore.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -0,0 +1,4 @@
1
+ export declare const useBaseUrlStore: import("zustand").UseBoundStore<import("zustand").StoreApi<{
2
+ baseUrl?: string;
3
+ setBaseUrl: (baseUrl?: string) => void;
4
+ }>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ventlio/tanstack-query",
3
- "version": "0.5.7",
3
+ "version": "0.5.9",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "contributors": [
@@ -87,6 +87,7 @@
87
87
  "src"
88
88
  ],
89
89
  "dependencies": {
90
+ "@tanstack/react-store": "^0.7.0",
90
91
  "lodash.result": "^4.5.2",
91
92
  "lodash.set": "^4.3.2",
92
93
  "url-search-params-polyfill": "^8.2.5",
@@ -0,0 +1,14 @@
1
+ import { Store } from '@tanstack/react-store';
2
+ import { BootstrapConfig } from '../types';
3
+
4
+ export const bootStore = new Store<BootstrapConfig>({
5
+ context: 'web',
6
+ environments: {
7
+ appBaseUrl: undefined as any,
8
+ appTimeout: 30000,
9
+ },
10
+ middleware: (next) => {
11
+ return next();
12
+ },
13
+ modelConfig: undefined,
14
+ });
@@ -1,22 +1,11 @@
1
1
  import type { QueryClient } from '@tanstack/react-query';
2
2
  import 'url-search-params-polyfill';
3
3
  import type { BootstrapConfig } from '../types';
4
+ import { bootStore } from './bootStore';
4
5
 
5
- export const bootstrapQueryRequest = (queryClient: QueryClient, options?: BootstrapConfig): void => {
6
- // make query config doesn't expire
7
-
6
+ export const bootstrapQueryRequest = async (queryClient: QueryClient, options: BootstrapConfig): Promise<void> => {
8
7
  // set default query config
9
- const defaultMeta = {
10
- headers: {
11
- Authorization: ``,
12
- },
13
- options,
14
- };
8
+ await queryClient.resumePausedMutations();
15
9
 
16
- queryClient.setDefaultOptions({
17
- queries: {
18
- meta: defaultMeta,
19
- },
20
- mutations: { meta: defaultMeta },
21
- });
10
+ bootStore.setState(() => options);
22
11
  };
@@ -1,6 +1,5 @@
1
1
  export * from './bootstrapQueryRequest';
2
2
  export * from './config.interface';
3
3
  export * from './useEnvironmentVariables';
4
- export * from './useQueryConfig';
5
4
  export * from './useQueryHeaders';
6
5
  export * from './useReactNativeEnv';
@@ -1,10 +1,12 @@
1
+ import { useBaseUrlStore } from '../stores/useBaseUrlStore';
1
2
  import type { IConfig } from './config.interface';
2
3
  import { useReactNativeEnv } from './useReactNativeEnv';
3
4
 
4
5
  export const useEnvironmentVariables = (): IConfig => {
5
6
  const { appTimeout, appUrl } = useReactNativeEnv();
6
- const url = process.env.REACT_APP_API_URL ?? process.env.NEXT_PUBLIC_API_URL ?? appUrl;
7
- const timeout = process.env.REACT_APP_API_TIMEOUT ?? process.env.NEXT_PUBLIC_API_TIMEOUT ?? appTimeout;
7
+ const { baseUrl } = useBaseUrlStore();
8
+ const url = baseUrl ?? process.env.REACT_APP_API_URL ?? process.env.NEXT_PUBLIC_API_URL ?? appUrl;
9
+ const timeout = baseUrl ?? process.env.REACT_APP_API_TIMEOUT ?? process.env.NEXT_PUBLIC_API_TIMEOUT ?? appTimeout;
8
10
 
9
11
  return {
10
12
  API_URL: url as string,
@@ -1,11 +1,12 @@
1
- import { useQueryConfig } from './useQueryConfig';
1
+ import { useStore } from '@tanstack/react-store';
2
+ import { bootStore } from './bootStore';
2
3
 
3
4
  export const useReactNativeEnv = () => {
4
- const config = useQueryConfig();
5
+ const { environments, context } = useStore(bootStore);
5
6
 
6
- const appUrl: string | undefined = config.options?.environments?.appBaseUrl;
7
- const appTimeout: number | undefined = config.options?.environments?.appTimeout;
8
- const isApp = config.options?.context === 'app';
7
+ const appUrl: string | undefined = environments?.appBaseUrl;
8
+ const appTimeout: number | undefined = environments?.appTimeout;
9
+ const isApp = context === 'app';
9
10
 
10
11
  return { appUrl, appTimeout, isApp };
11
12
  };
@@ -1,7 +1,8 @@
1
1
  import { useQueryClient } from '@tanstack/react-query';
2
+ import { useStore } from '@tanstack/react-store';
2
3
  import result from 'lodash.result';
3
4
  import { default as lodashSet } from 'lodash.set';
4
- import { useQueryConfig } from '../config';
5
+ import { bootStore } from '../config/bootStore';
5
6
  import type { QueryModelAddPosition, QueryModelBuilder } from './model.interface';
6
7
  import { useKeyTrackerModel } from './useKeyTrackerModel';
7
8
 
@@ -9,7 +10,7 @@ export const useQueryModel = <T>(keyTracker: string): QueryModelBuilder<T> => {
9
10
  const queryClient = useQueryClient();
10
11
  const { getQueryKey } = useKeyTrackerModel(keyTracker);
11
12
  const queryKey = getQueryKey() as any[];
12
- const config = useQueryConfig();
13
+ const config = useStore(bootStore);
13
14
 
14
15
  const add = (data: T, position?: QueryModelAddPosition, path?: string): T | undefined => {
15
16
  let records = (findAll(path) ?? []) as T[];
@@ -79,8 +80,7 @@ export const useQueryModel = <T>(keyTracker: string): QueryModelBuilder<T> => {
79
80
  };
80
81
 
81
82
  const getModelConfig = () => {
82
- const { options } = config;
83
- const { modelConfig } = options ?? {};
83
+ const { modelConfig } = config;
84
84
 
85
85
  return modelConfig;
86
86
  };
@@ -1,7 +1,9 @@
1
1
  import type { QueryKey, UseQueryOptions } from '@tanstack/react-query';
2
2
  import { useQuery } from '@tanstack/react-query';
3
+ import { useStore } from '@tanstack/react-store';
3
4
  import { useEffect, useState } from 'react';
4
- import { useEnvironmentVariables, useQueryConfig } from '../config';
5
+ import { useEnvironmentVariables } from '../config';
6
+ import { bootStore } from '../config/bootStore';
5
7
  import type { IRequestError, IRequestSuccess } from '../request';
6
8
  import { HttpMethod, makeRequest } from '../request';
7
9
  import { useHeaderStore, usePauseFutureRequests } from '../stores';
@@ -12,7 +14,8 @@ export const useDeleteRequest = <TResponse>(deleteOptions?: DefaultRequestOption
12
14
  const [requestPath, setRequestPath] = useState<string>('');
13
15
  const [options, setOptions] = useState<any>();
14
16
 
15
- const { options: queryConfigOptions } = useQueryConfig();
17
+ const { middleware } = useStore(bootStore);
18
+
16
19
  const [requestPayload, setRequestPayload] = useState<Record<any, any>>();
17
20
 
18
21
  const isFutureQueriesPaused = usePauseFutureRequests((state) => state.isFutureQueriesPaused);
@@ -34,9 +37,9 @@ export const useDeleteRequest = <TResponse>(deleteOptions?: DefaultRequestOption
34
37
  };
35
38
 
36
39
  let deleteResponse: IRequestError | IRequestSuccess<TResponse>;
37
- if (queryConfigOptions?.middleware) {
40
+ if (middleware) {
38
41
  // perform global middleware
39
- deleteResponse = await queryConfigOptions.middleware(
42
+ deleteResponse = await middleware(
40
43
  async (middlewareOptions) =>
41
44
  await makeRequest<TResponse>(
42
45
  middlewareOptions ? { ...requestOptions, ...middlewareOptions } : requestOptions
@@ -1,8 +1,10 @@
1
1
  import type { InfiniteData, UseQueryOptions } from '@tanstack/react-query';
2
2
  import { useInfiniteQuery, useQueryClient } from '@tanstack/react-query';
3
3
  import { startTransition, useEffect, useMemo, useState } from 'react';
4
- import { useEnvironmentVariables, useQueryConfig } from '../config';
4
+ import { useEnvironmentVariables } from '../config';
5
5
 
6
+ import { useStore } from '@tanstack/react-store';
7
+ import { bootStore } from '../config/bootStore';
6
8
  import type { IRequestError, IRequestSuccess } from '../request';
7
9
  import { makeRequest } from '../request';
8
10
  import { useHeaderStore, usePauseFutureRequests } from '../stores';
@@ -35,7 +37,8 @@ export const useGetInfiniteRequest = <TResponse extends Record<string, any>>({
35
37
  const [requestPath, setRequestPath] = useState<string>(path);
36
38
 
37
39
  const [options, setOptions] = useState<any>(queryOptions);
38
- const { options: queryConfigOptions } = useQueryConfig();
40
+ const { middleware } = useStore(bootStore);
41
+
39
42
  const [requestPayload, setRequestPayload] = useState<Record<any, any>>();
40
43
 
41
44
  const isFutureQueriesPaused = usePauseFutureRequests((state) => state.isFutureQueriesPaused);
@@ -66,9 +69,9 @@ export const useGetInfiniteRequest = <TResponse extends Record<string, any>>({
66
69
  };
67
70
 
68
71
  let getResponse: IRequestError | IRequestSuccess<TResponse>;
69
- if (queryConfigOptions?.middleware) {
72
+ if (middleware) {
70
73
  // perform global middleware
71
- getResponse = await queryConfigOptions.middleware(
74
+ getResponse = await middleware(
72
75
  async (middlewareOptions) =>
73
76
  await makeRequest<TResponse>(
74
77
  middlewareOptions ? { ...requestOptions, ...middlewareOptions } : requestOptions
@@ -1,7 +1,9 @@
1
1
  import { QueryKey, useQuery, useQueryClient, UseQueryOptions } from '@tanstack/react-query';
2
2
  import { startTransition, useEffect, useMemo, useState } from 'react';
3
- import { useEnvironmentVariables, useQueryConfig } from '../config';
3
+ import { useEnvironmentVariables } from '../config';
4
4
 
5
+ import { useStore } from '@tanstack/react-store';
6
+ import { bootStore } from '../config/bootStore';
5
7
  import { IRequestError, IRequestSuccess, makeRequest } from '../request';
6
8
  import { useHeaderStore, usePauseFutureRequests } from '../stores';
7
9
  import { DefaultRequestOptions, IPagination, TanstackQueryOption } from './queries.interface';
@@ -24,9 +26,10 @@ export const useGetRequest = <TResponse extends Record<string, any>>({
24
26
  const [page, setPage] = useState<number>(1);
25
27
 
26
28
  const { API_URL, TIMEOUT } = useEnvironmentVariables();
29
+ const { middleware } = useStore(bootStore);
30
+
27
31
  const globalHeaders = useHeaderStore((state) => state.headers);
28
32
 
29
- const { options: queryConfigOptions } = useQueryConfig();
30
33
  const [requestPayload, setRequestPayload] = useState<Record<any, any>>();
31
34
 
32
35
  const isFutureQueriesPaused = usePauseFutureRequests((state) => state.isFutureQueriesPaused);
@@ -54,9 +57,9 @@ export const useGetRequest = <TResponse extends Record<string, any>>({
54
57
  };
55
58
 
56
59
  let getResponse: IRequestError | IRequestSuccess<TResponse>;
57
- if (queryConfigOptions?.middleware) {
60
+ if (middleware) {
58
61
  // perform global middleware
59
- getResponse = await queryConfigOptions.middleware(
62
+ getResponse = await middleware(
60
63
  async (middlewareOptions) =>
61
64
  await makeRequest<TResponse>(
62
65
  middlewareOptions ? { ...requestOptions, ...middlewareOptions } : requestOptions
@@ -1,7 +1,9 @@
1
1
  import type { MutateOptions } from '@tanstack/react-query';
2
2
  import { useMutation } from '@tanstack/react-query';
3
+ import { useStore } from '@tanstack/react-store';
3
4
  import { useEffect, useState } from 'react';
4
- import { useEnvironmentVariables, useQueryConfig } from '../config';
5
+ import { useEnvironmentVariables } from '../config';
6
+ import { bootStore } from '../config/bootStore';
5
7
  import { scrollToTop } from '../helpers';
6
8
  import { useUploadProgress } from '../hooks';
7
9
  import { HttpMethod, makeRequest } from '../request';
@@ -17,8 +19,7 @@ export const usePatchRequest = <TResponse>({ path, baseUrl, headers }: { path: s
17
19
  const [requestPayload, setRequestPayload] = useState<Record<any, any>>();
18
20
 
19
21
  const isFutureMutationsPaused = usePauseFutureRequests((state) => state.isFutureMutationsPaused);
20
-
21
- const config = useQueryConfig();
22
+ const { middleware, context } = useStore(bootStore);
22
23
 
23
24
  const sendRequest = async (res: (value: any) => void, rej: (reason?: any) => void, data: any) => {
24
25
  // get request headers
@@ -34,9 +35,9 @@ export const usePatchRequest = <TResponse>({ path, baseUrl, headers }: { path: s
34
35
  };
35
36
 
36
37
  let patchResponse: IRequestError | IRequestSuccess<TResponse>;
37
- if (config.options?.middleware) {
38
+ if (middleware) {
38
39
  // perform global middleware
39
- const middlewareResponse = await config.options.middleware(
40
+ const middlewareResponse = await middleware(
40
41
  async (options) => await makeRequest<TResponse>(options ? { ...requestOptions, ...options } : requestOptions),
41
42
  {
42
43
  path,
@@ -51,13 +52,13 @@ export const usePatchRequest = <TResponse>({ path, baseUrl, headers }: { path: s
51
52
  }
52
53
  if (patchResponse.status) {
53
54
  // scroll to top after success
54
- if (config.options?.context !== 'app') {
55
+ if (context !== 'app') {
55
56
  scrollToTop();
56
57
  }
57
58
  res(patchResponse as IRequestSuccess<TResponse>);
58
59
  } else {
59
60
  // scroll to top after error
60
- if (config.options?.context !== 'app') {
61
+ if (context !== 'app') {
61
62
  scrollToTop();
62
63
  }
63
64
  rej(patchResponse);
@@ -1,8 +1,10 @@
1
1
  import type { MutateOptions } from '@tanstack/react-query';
2
2
  import { useMutation } from '@tanstack/react-query';
3
- import { useEnvironmentVariables, useQueryConfig, useReactNativeEnv } from '../config';
3
+ import { useEnvironmentVariables, useReactNativeEnv } from '../config';
4
4
 
5
+ import { useStore } from '@tanstack/react-store';
5
6
  import { useEffect, useState } from 'react';
7
+ import { bootStore } from '../config/bootStore';
6
8
  import { scrollToTop } from '../helpers';
7
9
  import { useUploadProgress } from '../hooks';
8
10
  import type { IMakeRequest, IRequestError, IRequestSuccess } from '../request';
@@ -23,7 +25,7 @@ export const usePostRequest = <TResponse>({
23
25
  } & DefaultRequestOptions) => {
24
26
  const { API_URL, TIMEOUT } = useEnvironmentVariables();
25
27
 
26
- const config = useQueryConfig();
28
+ const { middleware, context } = useStore(bootStore);
27
29
 
28
30
  const globalHeaders = useHeaderStore((state) => state.headers);
29
31
  const { isApp } = useReactNativeEnv();
@@ -60,9 +62,9 @@ export const usePostRequest = <TResponse>({
60
62
  };
61
63
 
62
64
  let postResponse: IRequestError | IRequestSuccess<TResponse>;
63
- if (config.options?.middleware) {
65
+ if (middleware) {
64
66
  // perform global middleware
65
- postResponse = await config.options.middleware(
67
+ postResponse = await middleware(
66
68
  async (options) => await makeRequest<TResponse>(options ? { ...requestOptions, ...options } : requestOptions),
67
69
  {
68
70
  path,
@@ -77,13 +79,13 @@ export const usePostRequest = <TResponse>({
77
79
  if (postResponse.status) {
78
80
  // scroll to top after success
79
81
 
80
- if (config.options?.context !== 'app') {
82
+ if (context !== 'app') {
81
83
  scrollToTop();
82
84
  }
83
85
  res(postResponse as IRequestSuccess<TResponse>);
84
86
  } else {
85
87
  // scroll to top after error
86
- if (config.options?.context !== 'app') {
88
+ if (context !== 'app') {
87
89
  scrollToTop();
88
90
  }
89
91
  rej(postResponse);
@@ -1,7 +1,9 @@
1
1
  import type { MutateOptions } from '@tanstack/react-query';
2
2
  import { useMutation } from '@tanstack/react-query';
3
+ import { useStore } from '@tanstack/react-store';
3
4
  import { useEffect, useState } from 'react';
4
- import { useEnvironmentVariables, useQueryConfig } from '../config';
5
+ import { useEnvironmentVariables } from '../config';
6
+ import { bootStore } from '../config/bootStore';
5
7
  import { scrollToTop } from '../helpers';
6
8
  import { useUploadProgress } from '../hooks';
7
9
  import { HttpMethod, makeRequest } from '../request';
@@ -18,7 +20,7 @@ export const usePutRequest = <TResponse>({ path, baseUrl, headers }: { path: str
18
20
 
19
21
  const isFutureMutationsPaused = usePauseFutureRequests((state) => state.isFutureMutationsPaused);
20
22
 
21
- const config = useQueryConfig();
23
+ const { middleware, context } = useStore(bootStore);
22
24
 
23
25
  const sendRequest = async (res: (value: any) => void, rej: (reason?: any) => void, data: any) => {
24
26
  // get request headers
@@ -34,9 +36,9 @@ export const usePutRequest = <TResponse>({ path, baseUrl, headers }: { path: str
34
36
  };
35
37
 
36
38
  let putResponse: IRequestError | IRequestSuccess<TResponse>;
37
- if (config.options?.middleware) {
39
+ if (middleware) {
38
40
  // perform global middleware
39
- putResponse = await config.options.middleware(
41
+ putResponse = await middleware(
40
42
  async (options) => await makeRequest<TResponse>(options ? { ...requestOptions, ...options } : requestOptions),
41
43
  {
42
44
  path,
@@ -49,13 +51,13 @@ export const usePutRequest = <TResponse>({ path, baseUrl, headers }: { path: str
49
51
  }
50
52
  if (putResponse.status) {
51
53
  // scroll to top after success
52
- if (config.options?.context !== 'app') {
54
+ if (context !== 'app') {
53
55
  scrollToTop();
54
56
  }
55
57
  res(putResponse as IRequestSuccess<TResponse>);
56
58
  } else {
57
59
  // scroll to top after error
58
- if (config.options?.context !== 'app') {
60
+ if (context !== 'app') {
59
61
  scrollToTop();
60
62
  }
61
63
  rej(putResponse);
@@ -0,0 +1,9 @@
1
+ import { create } from 'zustand';
2
+
3
+ export const useBaseUrlStore = create<{
4
+ baseUrl?: string;
5
+ setBaseUrl: (baseUrl?: string) => void;
6
+ }>((set) => ({
7
+ baseUrl: undefined,
8
+ setBaseUrl: (baseUrl) => set({ baseUrl }),
9
+ }));
@@ -1,21 +0,0 @@
1
- import 'url-search-params-polyfill';
2
-
3
- const bootstrapQueryRequest = (queryClient, options) => {
4
- // make query config doesn't expire
5
- // set default query config
6
- const defaultMeta = {
7
- headers: {
8
- Authorization: ``,
9
- },
10
- options,
11
- };
12
- queryClient.setDefaultOptions({
13
- queries: {
14
- meta: defaultMeta,
15
- },
16
- mutations: { meta: defaultMeta },
17
- });
18
- };
19
-
20
- export { bootstrapQueryRequest };
21
- //# sourceMappingURL=bootstrapQueryRequest.js.map
@@ -1,14 +0,0 @@
1
- import { useReactNativeEnv } from './useReactNativeEnv.js';
2
-
3
- const useEnvironmentVariables = () => {
4
- const { appTimeout, appUrl } = useReactNativeEnv();
5
- const url = process.env.REACT_APP_API_URL ?? process.env.NEXT_PUBLIC_API_URL ?? appUrl;
6
- const timeout = process.env.REACT_APP_API_TIMEOUT ?? process.env.NEXT_PUBLIC_API_TIMEOUT ?? appTimeout;
7
- return {
8
- API_URL: url,
9
- TIMEOUT: Number(timeout),
10
- };
11
- };
12
-
13
- export { useEnvironmentVariables };
14
- //# sourceMappingURL=useEnvironmentVariables.js.map
@@ -1,2 +0,0 @@
1
- import type { TanstackQueryConfig } from '../types';
2
- export declare const useQueryConfig: () => TanstackQueryConfig;
@@ -1,11 +0,0 @@
1
- import { useQueryClient } from '@tanstack/react-query';
2
-
3
- const useQueryConfig = () => {
4
- const queryClient = useQueryClient();
5
- const mutationMeta = (queryClient.getDefaultOptions().mutations?.meta ?? {});
6
- const queryMeta = (queryClient.getDefaultOptions().queries?.meta ?? {});
7
- return { ...queryMeta, ...mutationMeta };
8
- };
9
-
10
- export { useQueryConfig };
11
- //# sourceMappingURL=useQueryConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useQueryConfig.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -1,12 +0,0 @@
1
- import { useQueryConfig } from './useQueryConfig.js';
2
-
3
- const useReactNativeEnv = () => {
4
- const config = useQueryConfig();
5
- const appUrl = config.options?.environments?.appBaseUrl;
6
- const appTimeout = config.options?.environments?.appTimeout;
7
- const isApp = config.options?.context === 'app';
8
- return { appUrl, appTimeout, isApp };
9
- };
10
-
11
- export { useReactNativeEnv };
12
- //# sourceMappingURL=useReactNativeEnv.js.map
@@ -1,11 +0,0 @@
1
- import { useQueryClient } from '@tanstack/react-query';
2
- import type { TanstackQueryConfig } from '../types';
3
-
4
- export const useQueryConfig = (): TanstackQueryConfig => {
5
- const queryClient = useQueryClient();
6
-
7
- const mutationMeta = (queryClient.getDefaultOptions().mutations?.meta ?? {}) as unknown as TanstackQueryConfig;
8
- const queryMeta = (queryClient.getDefaultOptions().queries?.meta ?? {}) as unknown as TanstackQueryConfig;
9
-
10
- return { ...queryMeta, ...mutationMeta };
11
- };
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes