@tanstack/react-query 4.24.9 → 5.0.0-alpha.0

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 (199) hide show
  1. package/build/lib/HydrationBoundary.d.ts +9 -0
  2. package/build/lib/{Hydrate.esm.js → HydrationBoundary.esm.js} +14 -17
  3. package/build/lib/HydrationBoundary.esm.js.map +1 -0
  4. package/build/lib/{Hydrate.js → HydrationBoundary.js} +17 -24
  5. package/build/lib/HydrationBoundary.js.map +1 -0
  6. package/build/lib/{Hydrate.mjs → HydrationBoundary.mjs} +14 -17
  7. package/build/lib/HydrationBoundary.mjs.map +1 -0
  8. package/build/lib/QueryClientProvider.d.ts +4 -19
  9. package/build/lib/QueryClientProvider.esm.js +11 -46
  10. package/build/lib/QueryClientProvider.esm.js.map +1 -1
  11. package/build/lib/QueryClientProvider.js +14 -52
  12. package/build/lib/QueryClientProvider.js.map +1 -1
  13. package/build/lib/QueryClientProvider.mjs +11 -46
  14. package/build/lib/QueryClientProvider.mjs.map +1 -1
  15. package/build/lib/QueryErrorResetBoundary.esm.js +7 -2
  16. package/build/lib/QueryErrorResetBoundary.esm.js.map +1 -1
  17. package/build/lib/QueryErrorResetBoundary.js +10 -8
  18. package/build/lib/QueryErrorResetBoundary.js.map +1 -1
  19. package/build/lib/QueryErrorResetBoundary.mjs +7 -2
  20. package/build/lib/QueryErrorResetBoundary.mjs.map +1 -1
  21. package/build/lib/__tests__/useQuery.types.test.d.ts +1 -2
  22. package/build/lib/__tests__/utils.d.ts +7 -10
  23. package/build/lib/errorBoundaryUtils.d.ts +3 -3
  24. package/build/lib/errorBoundaryUtils.esm.js +3 -3
  25. package/build/lib/errorBoundaryUtils.esm.js.map +1 -1
  26. package/build/lib/errorBoundaryUtils.js +6 -9
  27. package/build/lib/errorBoundaryUtils.js.map +1 -1
  28. package/build/lib/errorBoundaryUtils.mjs +3 -3
  29. package/build/lib/errorBoundaryUtils.mjs.map +1 -1
  30. package/build/lib/index.d.ts +4 -5
  31. package/build/lib/index.esm.js +3 -4
  32. package/build/lib/index.esm.js.map +1 -1
  33. package/build/lib/index.js +6 -9
  34. package/build/lib/index.js.map +1 -1
  35. package/build/lib/index.mjs +3 -4
  36. package/build/lib/index.mjs.map +1 -1
  37. package/build/lib/isRestoring.esm.js.map +1 -1
  38. package/build/lib/isRestoring.js +3 -6
  39. package/build/lib/isRestoring.js.map +1 -1
  40. package/build/lib/isRestoring.mjs.map +1 -1
  41. package/build/lib/suspense.esm.js +5 -5
  42. package/build/lib/suspense.esm.js.map +1 -1
  43. package/build/lib/suspense.js +5 -7
  44. package/build/lib/suspense.js.map +1 -1
  45. package/build/lib/suspense.mjs +5 -5
  46. package/build/lib/suspense.mjs.map +1 -1
  47. package/build/lib/types.d.ts +14 -22
  48. package/build/lib/useBaseQuery.d.ts +2 -2
  49. package/build/lib/useBaseQuery.esm.js +15 -18
  50. package/build/lib/useBaseQuery.esm.js.map +1 -1
  51. package/build/lib/useBaseQuery.js +18 -24
  52. package/build/lib/useBaseQuery.js.map +1 -1
  53. package/build/lib/useBaseQuery.mjs +15 -18
  54. package/build/lib/useBaseQuery.mjs.map +1 -1
  55. package/build/lib/useInfiniteQuery.d.ts +2 -4
  56. package/build/lib/useInfiniteQuery.esm.js +4 -4
  57. package/build/lib/useInfiniteQuery.esm.js.map +1 -1
  58. package/build/lib/useInfiniteQuery.js +3 -5
  59. package/build/lib/useInfiniteQuery.js.map +1 -1
  60. package/build/lib/useInfiniteQuery.mjs +4 -4
  61. package/build/lib/useInfiniteQuery.mjs.map +1 -1
  62. package/build/lib/useIsFetching.d.ts +2 -7
  63. package/build/lib/useIsFetching.esm.js +5 -9
  64. package/build/lib/useIsFetching.esm.js.map +1 -1
  65. package/build/lib/useIsFetching.js +7 -14
  66. package/build/lib/useIsFetching.js.map +1 -1
  67. package/build/lib/useIsFetching.mjs +5 -9
  68. package/build/lib/useIsFetching.mjs.map +1 -1
  69. package/build/lib/useMutation.d.ts +2 -5
  70. package/build/lib/useMutation.esm.js +12 -14
  71. package/build/lib/useMutation.esm.js.map +1 -1
  72. package/build/lib/useMutation.js +14 -19
  73. package/build/lib/useMutation.js.map +1 -1
  74. package/build/lib/useMutation.mjs +12 -14
  75. package/build/lib/useMutation.mjs.map +1 -1
  76. package/build/lib/useMutationState.d.ts +8 -0
  77. package/build/lib/useMutationState.esm.js +37 -0
  78. package/build/lib/useMutationState.esm.js.map +1 -0
  79. package/build/lib/useMutationState.js +59 -0
  80. package/build/lib/useMutationState.js.map +1 -0
  81. package/build/lib/useMutationState.mjs +37 -0
  82. package/build/lib/useMutationState.mjs.map +1 -0
  83. package/build/lib/useQueries.d.ts +9 -7
  84. package/build/lib/useQueries.esm.js +16 -27
  85. package/build/lib/useQueries.esm.js.map +1 -1
  86. package/build/lib/useQueries.js +19 -33
  87. package/build/lib/useQueries.js.map +1 -1
  88. package/build/lib/useQueries.mjs +16 -27
  89. package/build/lib/useQueries.mjs.map +1 -1
  90. package/build/lib/useQuery.d.ts +9 -21
  91. package/build/lib/useQuery.esm.js +5 -4
  92. package/build/lib/useQuery.esm.js.map +1 -1
  93. package/build/lib/useQuery.js +4 -5
  94. package/build/lib/useQuery.js.map +1 -1
  95. package/build/lib/useQuery.mjs +5 -4
  96. package/build/lib/useQuery.mjs.map +1 -1
  97. package/build/lib/utils.d.ts +1 -1
  98. package/build/lib/utils.esm.js +5 -6
  99. package/build/lib/utils.esm.js.map +1 -1
  100. package/build/lib/utils.js +5 -8
  101. package/build/lib/utils.js.map +1 -1
  102. package/build/lib/utils.mjs +5 -6
  103. package/build/lib/utils.mjs.map +1 -1
  104. package/build/umd/index.development.js +1007 -1826
  105. package/build/umd/index.development.js.map +1 -1
  106. package/build/umd/index.production.js +1 -1
  107. package/build/umd/index.production.js.map +1 -1
  108. package/package.json +6 -18
  109. package/src/{Hydrate.tsx → HydrationBoundary.tsx} +17 -18
  110. package/src/QueryClientProvider.tsx +11 -65
  111. package/src/__tests__/{Hydrate.test.tsx → HydrationBoundary.test.tsx} +89 -77
  112. package/src/__tests__/QueryClientProvider.test.tsx +33 -147
  113. package/src/__tests__/QueryResetErrorBoundary.test.tsx +118 -85
  114. package/src/__tests__/ssr-hydration.test.tsx +27 -33
  115. package/src/__tests__/ssr.test.tsx +23 -9
  116. package/src/__tests__/suspense.test.tsx +194 -171
  117. package/src/__tests__/useInfiniteQuery.test.tsx +249 -494
  118. package/src/__tests__/useInfiniteQuery.type.test.tsx +131 -0
  119. package/src/__tests__/useIsFetching.test.tsx +65 -108
  120. package/src/__tests__/useMutation.test.tsx +200 -268
  121. package/src/__tests__/useMutationState.test.tsx +284 -0
  122. package/src/__tests__/useQueries.test.tsx +43 -347
  123. package/src/__tests__/useQuery.test.tsx +890 -686
  124. package/src/__tests__/useQuery.types.test.tsx +23 -24
  125. package/src/__tests__/utils.tsx +14 -23
  126. package/src/errorBoundaryUtils.ts +5 -10
  127. package/src/index.ts +4 -7
  128. package/src/types.ts +33 -38
  129. package/src/useBaseQuery.ts +7 -7
  130. package/src/useInfiniteQuery.ts +12 -77
  131. package/src/useIsFetching.ts +8 -20
  132. package/src/useMutation.ts +8 -66
  133. package/src/useMutationState.ts +81 -0
  134. package/src/useQueries.ts +29 -21
  135. package/src/useQuery.ts +27 -104
  136. package/src/utils.ts +5 -5
  137. package/build/lib/Hydrate.d.ts +0 -10
  138. package/build/lib/Hydrate.esm.js.map +0 -1
  139. package/build/lib/Hydrate.js.map +0 -1
  140. package/build/lib/Hydrate.mjs.map +0 -1
  141. package/build/lib/reactBatchedUpdates.d.ts +0 -2
  142. package/build/lib/reactBatchedUpdates.esm.js +0 -6
  143. package/build/lib/reactBatchedUpdates.esm.js.map +0 -1
  144. package/build/lib/reactBatchedUpdates.js +0 -30
  145. package/build/lib/reactBatchedUpdates.js.map +0 -1
  146. package/build/lib/reactBatchedUpdates.mjs +0 -6
  147. package/build/lib/reactBatchedUpdates.mjs.map +0 -1
  148. package/build/lib/reactBatchedUpdates.native.d.ts +0 -2
  149. package/build/lib/reactBatchedUpdates.native.esm.js +0 -2
  150. package/build/lib/reactBatchedUpdates.native.esm.js.map +0 -1
  151. package/build/lib/reactBatchedUpdates.native.js +0 -13
  152. package/build/lib/reactBatchedUpdates.native.js.map +0 -1
  153. package/build/lib/reactBatchedUpdates.native.mjs +0 -2
  154. package/build/lib/reactBatchedUpdates.native.mjs.map +0 -1
  155. package/build/lib/setBatchUpdatesFn.esm.js +0 -5
  156. package/build/lib/setBatchUpdatesFn.esm.js.map +0 -1
  157. package/build/lib/setBatchUpdatesFn.js +0 -7
  158. package/build/lib/setBatchUpdatesFn.js.map +0 -1
  159. package/build/lib/setBatchUpdatesFn.mjs +0 -5
  160. package/build/lib/setBatchUpdatesFn.mjs.map +0 -1
  161. package/build/lib/useIsMutating.d.ts +0 -7
  162. package/build/lib/useIsMutating.esm.js +0 -16
  163. package/build/lib/useIsMutating.esm.js.map +0 -1
  164. package/build/lib/useIsMutating.js +0 -40
  165. package/build/lib/useIsMutating.js.map +0 -1
  166. package/build/lib/useIsMutating.mjs +0 -16
  167. package/build/lib/useIsMutating.mjs.map +0 -1
  168. package/build/lib/useSyncExternalStore.d.ts +0 -2
  169. package/build/lib/useSyncExternalStore.esm.js +0 -7
  170. package/build/lib/useSyncExternalStore.esm.js.map +0 -1
  171. package/build/lib/useSyncExternalStore.js +0 -11
  172. package/build/lib/useSyncExternalStore.js.map +0 -1
  173. package/build/lib/useSyncExternalStore.mjs +0 -7
  174. package/build/lib/useSyncExternalStore.mjs.map +0 -1
  175. package/build/lib/useSyncExternalStore.native.d.ts +0 -2
  176. package/build/lib/useSyncExternalStore.native.esm.js +0 -2
  177. package/build/lib/useSyncExternalStore.native.esm.js.map +0 -1
  178. package/build/lib/useSyncExternalStore.native.js +0 -13
  179. package/build/lib/useSyncExternalStore.native.js.map +0 -1
  180. package/build/lib/useSyncExternalStore.native.mjs +0 -2
  181. package/build/lib/useSyncExternalStore.native.mjs.map +0 -1
  182. package/codemods/v4/key-transformation.js +0 -138
  183. package/codemods/v4/replace-import-specifier.js +0 -25
  184. package/codemods/v4/utils/index.js +0 -166
  185. package/codemods/v4/utils/replacers/key-replacer.js +0 -160
  186. package/codemods/v4/utils/transformers/query-cache-transformer.js +0 -115
  187. package/codemods/v4/utils/transformers/query-client-transformer.js +0 -49
  188. package/codemods/v4/utils/transformers/use-query-like-transformer.js +0 -32
  189. package/codemods/v4/utils/unprocessable-key-error.js +0 -8
  190. package/src/__tests__/useIsMutating.test.tsx +0 -259
  191. package/src/reactBatchedUpdates.native.ts +0 -4
  192. package/src/reactBatchedUpdates.ts +0 -2
  193. package/src/setBatchUpdatesFn.ts +0 -4
  194. package/src/useIsMutating.ts +0 -39
  195. package/src/useSyncExternalStore.native.ts +0 -5
  196. package/src/useSyncExternalStore.ts +0 -4
  197. /package/build/lib/__tests__/{Hydrate.test.d.ts → HydrationBoundary.test.d.ts} +0 -0
  198. /package/build/lib/__tests__/{useIsMutating.test.d.ts → useInfiniteQuery.type.test.d.ts} +0 -0
  199. /package/build/lib/{setBatchUpdatesFn.d.ts → __tests__/useMutationState.test.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"useIsFetching.esm.js","sources":["../../src/useIsFetching.ts"],"sourcesContent":["import * as React from 'react'\nimport type { QueryKey, QueryFilters } from '@tanstack/query-core'\nimport { notifyManager, parseFilterArgs } from '@tanstack/query-core'\n\nimport { useSyncExternalStore } from './useSyncExternalStore'\nimport type { ContextOptions } from './types'\nimport { useQueryClient } from './QueryClientProvider'\n\ninterface Options extends ContextOptions {}\n\nexport function useIsFetching(filters?: QueryFilters, options?: Options): number\nexport function useIsFetching(\n queryKey?: QueryKey,\n filters?: QueryFilters,\n options?: Options,\n): number\nexport function useIsFetching(\n arg1?: QueryKey | QueryFilters,\n arg2?: QueryFilters | Options,\n arg3?: Options,\n): number {\n const [filters, options = {}] = parseFilterArgs(arg1, arg2, arg3)\n const queryClient = useQueryClient({ context: options.context })\n const queryCache = queryClient.getQueryCache()\n\n return useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n queryCache.subscribe(notifyManager.batchCalls(onStoreChange)),\n [queryCache],\n ),\n () => queryClient.isFetching(filters),\n () => queryClient.isFetching(filters),\n )\n}\n"],"names":["useIsFetching","arg1","arg2","arg3","filters","options","parseFilterArgs","queryClient","useQueryClient","context","queryCache","getQueryCache","useSyncExternalStore","React","useCallback","onStoreChange","subscribe","notifyManager","batchCalls","isFetching"],"mappings":";;;;;AAgBO,SAASA,aAAT,CACLC,IADK,EAELC,IAFK,EAGLC,IAHK,EAIG;AACR,EAAA,MAAM,CAACC,OAAD,EAAUC,OAAO,GAAG,EAApB,CAAA,GAA0BC,eAAe,CAACL,IAAD,EAAOC,IAAP,EAAaC,IAAb,CAA/C,CAAA;EACA,MAAMI,WAAW,GAAGC,cAAc,CAAC;IAAEC,OAAO,EAAEJ,OAAO,CAACI,OAAAA;AAAnB,GAAD,CAAlC,CAAA;AACA,EAAA,MAAMC,UAAU,GAAGH,WAAW,CAACI,aAAZ,EAAnB,CAAA;AAEA,EAAA,OAAOC,oBAAoB,CACzBC,KAAK,CAACC,WAAN,CACGC,aAAD,IACEL,UAAU,CAACM,SAAX,CAAqBC,aAAa,CAACC,UAAd,CAAyBH,aAAzB,CAArB,CAFJ,EAGE,CAACL,UAAD,CAHF,CADyB,EAMzB,MAAMH,WAAW,CAACY,UAAZ,CAAuBf,OAAvB,CANmB,EAOzB,MAAMG,WAAW,CAACY,UAAZ,CAAuBf,OAAvB,CAPmB,CAA3B,CAAA;AASD;;;;"}
1
+ {"version":3,"file":"useIsFetching.esm.js","sources":["../../src/useIsFetching.ts"],"sourcesContent":["import * as React from 'react'\nimport type { QueryClient, QueryFilters } from '@tanstack/query-core'\nimport { notifyManager } from '@tanstack/query-core'\n\nimport { useQueryClient } from './QueryClientProvider'\n\nexport function useIsFetching(\n filters?: QueryFilters,\n queryClient?: QueryClient,\n): number {\n const client = useQueryClient(queryClient)\n const queryCache = client.getQueryCache()\n\n return React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n queryCache.subscribe(notifyManager.batchCalls(onStoreChange)),\n [queryCache],\n ),\n () => client.isFetching(filters),\n () => client.isFetching(filters),\n )\n}\n"],"names":["useIsFetching","filters","queryClient","client","useQueryClient","queryCache","getQueryCache","React","useSyncExternalStore","useCallback","onStoreChange","subscribe","notifyManager","batchCalls","isFetching"],"mappings":";;;;AAMO,SAASA,aAAa,CAC3BC,OAAsB,EACtBC,WAAyB,EACjB;AACR,EAAA,MAAMC,MAAM,GAAGC,cAAc,CAACF,WAAW,CAAC,CAAA;AAC1C,EAAA,MAAMG,UAAU,GAAGF,MAAM,CAACG,aAAa,EAAE,CAAA;AAEzC,EAAA,OAAOC,KAAK,CAACC,oBAAoB,CAC/BD,KAAK,CAACE,WAAW,CACdC,aAAa,IACZL,UAAU,CAACM,SAAS,CAACC,aAAa,CAACC,UAAU,CAACH,aAAa,CAAC,CAAC,EAC/D,CAACL,UAAU,CAAC,CACb,EACD,MAAMF,MAAM,CAACW,UAAU,CAACb,OAAO,CAAC,EAChC,MAAME,MAAM,CAACW,UAAU,CAACb,OAAO,CAAC,CACjC,CAAA;AACH;;;;"}
@@ -1,14 +1,10 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var React = require('react');
6
4
  var queryCore = require('@tanstack/query-core');
7
- var useSyncExternalStore = require('./useSyncExternalStore');
8
5
  var QueryClientProvider = require('./QueryClientProvider.js');
9
6
 
10
- function _interopNamespace(e) {
11
- if (e && e.__esModule) return e;
7
+ function _interopNamespaceDefault(e) {
12
8
  var n = Object.create(null);
13
9
  if (e) {
14
10
  Object.keys(e).forEach(function (k) {
@@ -21,19 +17,16 @@ function _interopNamespace(e) {
21
17
  }
22
18
  });
23
19
  }
24
- n["default"] = e;
20
+ n.default = e;
25
21
  return Object.freeze(n);
26
22
  }
27
23
 
28
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
24
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
29
25
 
30
- function useIsFetching(arg1, arg2, arg3) {
31
- const [filters, options = {}] = queryCore.parseFilterArgs(arg1, arg2, arg3);
32
- const queryClient = QueryClientProvider.useQueryClient({
33
- context: options.context
34
- });
35
- const queryCache = queryClient.getQueryCache();
36
- return useSyncExternalStore.useSyncExternalStore(React__namespace.useCallback(onStoreChange => queryCache.subscribe(queryCore.notifyManager.batchCalls(onStoreChange)), [queryCache]), () => queryClient.isFetching(filters), () => queryClient.isFetching(filters));
26
+ function useIsFetching(filters, queryClient) {
27
+ const client = QueryClientProvider.useQueryClient(queryClient);
28
+ const queryCache = client.getQueryCache();
29
+ return React__namespace.useSyncExternalStore(React__namespace.useCallback(onStoreChange => queryCache.subscribe(queryCore.notifyManager.batchCalls(onStoreChange)), [queryCache]), () => client.isFetching(filters), () => client.isFetching(filters));
37
30
  }
38
31
 
39
32
  exports.useIsFetching = useIsFetching;
@@ -1 +1 @@
1
- {"version":3,"file":"useIsFetching.js","sources":["../../src/useIsFetching.ts"],"sourcesContent":["import * as React from 'react'\nimport type { QueryKey, QueryFilters } from '@tanstack/query-core'\nimport { notifyManager, parseFilterArgs } from '@tanstack/query-core'\n\nimport { useSyncExternalStore } from './useSyncExternalStore'\nimport type { ContextOptions } from './types'\nimport { useQueryClient } from './QueryClientProvider'\n\ninterface Options extends ContextOptions {}\n\nexport function useIsFetching(filters?: QueryFilters, options?: Options): number\nexport function useIsFetching(\n queryKey?: QueryKey,\n filters?: QueryFilters,\n options?: Options,\n): number\nexport function useIsFetching(\n arg1?: QueryKey | QueryFilters,\n arg2?: QueryFilters | Options,\n arg3?: Options,\n): number {\n const [filters, options = {}] = parseFilterArgs(arg1, arg2, arg3)\n const queryClient = useQueryClient({ context: options.context })\n const queryCache = queryClient.getQueryCache()\n\n return useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n queryCache.subscribe(notifyManager.batchCalls(onStoreChange)),\n [queryCache],\n ),\n () => queryClient.isFetching(filters),\n () => queryClient.isFetching(filters),\n )\n}\n"],"names":["useIsFetching","arg1","arg2","arg3","filters","options","parseFilterArgs","queryClient","useQueryClient","context","queryCache","getQueryCache","useSyncExternalStore","React","useCallback","onStoreChange","subscribe","notifyManager","batchCalls","isFetching"],"mappings":"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"}
1
+ {"version":3,"file":"useIsFetching.js","sources":["../../src/useIsFetching.ts"],"sourcesContent":["import * as React from 'react'\nimport type { QueryClient, QueryFilters } from '@tanstack/query-core'\nimport { notifyManager } from '@tanstack/query-core'\n\nimport { useQueryClient } from './QueryClientProvider'\n\nexport function useIsFetching(\n filters?: QueryFilters,\n queryClient?: QueryClient,\n): number {\n const client = useQueryClient(queryClient)\n const queryCache = client.getQueryCache()\n\n return React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n queryCache.subscribe(notifyManager.batchCalls(onStoreChange)),\n [queryCache],\n ),\n () => client.isFetching(filters),\n () => client.isFetching(filters),\n )\n}\n"],"names":["useIsFetching","filters","queryClient","client","useQueryClient","queryCache","getQueryCache","React","useSyncExternalStore","useCallback","onStoreChange","subscribe","notifyManager","batchCalls","isFetching"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAMO,SAASA,aAAa,CAC3BC,OAAsB,EACtBC,WAAyB,EACjB;AACR,EAAA,MAAMC,MAAM,GAAGC,kCAAc,CAACF,WAAW,CAAC,CAAA;AAC1C,EAAA,MAAMG,UAAU,GAAGF,MAAM,CAACG,aAAa,EAAE,CAAA;AAEzC,EAAA,OAAOC,gBAAK,CAACC,oBAAoB,CAC/BD,gBAAK,CAACE,WAAW,CACdC,aAAa,IACZL,UAAU,CAACM,SAAS,CAACC,uBAAa,CAACC,UAAU,CAACH,aAAa,CAAC,CAAC,EAC/D,CAACL,UAAU,CAAC,CACb,EACD,MAAMF,MAAM,CAACW,UAAU,CAACb,OAAO,CAAC,EAChC,MAAME,MAAM,CAACW,UAAU,CAACb,OAAO,CAAC,CACjC,CAAA;AACH;;;;"}
@@ -1,15 +1,11 @@
1
1
  import * as React from 'react';
2
- import { parseFilterArgs, notifyManager } from '@tanstack/query-core';
3
- import { useSyncExternalStore } from './useSyncExternalStore.mjs';
2
+ import { notifyManager } from '@tanstack/query-core';
4
3
  import { useQueryClient } from './QueryClientProvider.mjs';
5
4
 
6
- function useIsFetching(arg1, arg2, arg3) {
7
- const [filters, options = {}] = parseFilterArgs(arg1, arg2, arg3);
8
- const queryClient = useQueryClient({
9
- context: options.context
10
- });
11
- const queryCache = queryClient.getQueryCache();
12
- return useSyncExternalStore(React.useCallback(onStoreChange => queryCache.subscribe(notifyManager.batchCalls(onStoreChange)), [queryCache]), () => queryClient.isFetching(filters), () => queryClient.isFetching(filters));
5
+ function useIsFetching(filters, queryClient) {
6
+ const client = useQueryClient(queryClient);
7
+ const queryCache = client.getQueryCache();
8
+ return React.useSyncExternalStore(React.useCallback(onStoreChange => queryCache.subscribe(notifyManager.batchCalls(onStoreChange)), [queryCache]), () => client.isFetching(filters), () => client.isFetching(filters));
13
9
  }
14
10
 
15
11
  export { useIsFetching };
@@ -1 +1 @@
1
- {"version":3,"file":"useIsFetching.mjs","sources":["../../src/useIsFetching.ts"],"sourcesContent":["import * as React from 'react'\nimport type { QueryKey, QueryFilters } from '@tanstack/query-core'\nimport { notifyManager, parseFilterArgs } from '@tanstack/query-core'\n\nimport { useSyncExternalStore } from './useSyncExternalStore'\nimport type { ContextOptions } from './types'\nimport { useQueryClient } from './QueryClientProvider'\n\ninterface Options extends ContextOptions {}\n\nexport function useIsFetching(filters?: QueryFilters, options?: Options): number\nexport function useIsFetching(\n queryKey?: QueryKey,\n filters?: QueryFilters,\n options?: Options,\n): number\nexport function useIsFetching(\n arg1?: QueryKey | QueryFilters,\n arg2?: QueryFilters | Options,\n arg3?: Options,\n): number {\n const [filters, options = {}] = parseFilterArgs(arg1, arg2, arg3)\n const queryClient = useQueryClient({ context: options.context })\n const queryCache = queryClient.getQueryCache()\n\n return useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n queryCache.subscribe(notifyManager.batchCalls(onStoreChange)),\n [queryCache],\n ),\n () => queryClient.isFetching(filters),\n () => queryClient.isFetching(filters),\n )\n}\n"],"names":["useIsFetching","arg1","arg2","arg3","filters","options","parseFilterArgs","queryClient","useQueryClient","context","queryCache","getQueryCache","useSyncExternalStore","React","useCallback","onStoreChange","subscribe","notifyManager","batchCalls","isFetching"],"mappings":";;;;;AAgBO,SAASA,aAAT,CACLC,IADK,EAELC,IAFK,EAGLC,IAHK,EAIG;AACR,EAAA,MAAM,CAACC,OAAD,EAAUC,OAAO,GAAG,EAApB,CAAA,GAA0BC,eAAe,CAACL,IAAD,EAAOC,IAAP,EAAaC,IAAb,CAA/C,CAAA;EACA,MAAMI,WAAW,GAAGC,cAAc,CAAC;IAAEC,OAAO,EAAEJ,OAAO,CAACI,OAAAA;AAAnB,GAAD,CAAlC,CAAA;AACA,EAAA,MAAMC,UAAU,GAAGH,WAAW,CAACI,aAAZ,EAAnB,CAAA;AAEA,EAAA,OAAOC,oBAAoB,CACzBC,KAAK,CAACC,WAAN,CACGC,aAAD,IACEL,UAAU,CAACM,SAAX,CAAqBC,aAAa,CAACC,UAAd,CAAyBH,aAAzB,CAArB,CAFJ,EAGE,CAACL,UAAD,CAHF,CADyB,EAMzB,MAAMH,WAAW,CAACY,UAAZ,CAAuBf,OAAvB,CANmB,EAOzB,MAAMG,WAAW,CAACY,UAAZ,CAAuBf,OAAvB,CAPmB,CAA3B,CAAA;AASD;;;;"}
1
+ {"version":3,"file":"useIsFetching.mjs","sources":["../../src/useIsFetching.ts"],"sourcesContent":["import * as React from 'react'\nimport type { QueryClient, QueryFilters } from '@tanstack/query-core'\nimport { notifyManager } from '@tanstack/query-core'\n\nimport { useQueryClient } from './QueryClientProvider'\n\nexport function useIsFetching(\n filters?: QueryFilters,\n queryClient?: QueryClient,\n): number {\n const client = useQueryClient(queryClient)\n const queryCache = client.getQueryCache()\n\n return React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n queryCache.subscribe(notifyManager.batchCalls(onStoreChange)),\n [queryCache],\n ),\n () => client.isFetching(filters),\n () => client.isFetching(filters),\n )\n}\n"],"names":["useIsFetching","filters","queryClient","client","useQueryClient","queryCache","getQueryCache","React","useSyncExternalStore","useCallback","onStoreChange","subscribe","notifyManager","batchCalls","isFetching"],"mappings":";;;;AAMO,SAASA,aAAa,CAC3BC,OAAsB,EACtBC,WAAyB,EACjB;AACR,EAAA,MAAMC,MAAM,GAAGC,cAAc,CAACF,WAAW,CAAC,CAAA;AAC1C,EAAA,MAAMG,UAAU,GAAGF,MAAM,CAACG,aAAa,EAAE,CAAA;AAEzC,EAAA,OAAOC,KAAK,CAACC,oBAAoB,CAC/BD,KAAK,CAACE,WAAW,CACdC,aAAa,IACZL,UAAU,CAACM,SAAS,CAACC,aAAa,CAACC,UAAU,CAACH,aAAa,CAAC,CAAC,EAC/D,CAACL,UAAU,CAAC,CACb,EACD,MAAMF,MAAM,CAACW,UAAU,CAACb,OAAO,CAAC,EAChC,MAAME,MAAM,CAACW,UAAU,CAACb,OAAO,CAAC,CACjC,CAAA;AACH;;;;"}
@@ -1,6 +1,3 @@
1
- import type { MutationFunction, MutationKey } from '@tanstack/query-core';
1
+ import type { QueryClient, RegisteredError } from '@tanstack/query-core';
2
2
  import type { UseMutationOptions, UseMutationResult } from './types';
3
- export declare function useMutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(options: UseMutationOptions<TData, TError, TVariables, TContext>): UseMutationResult<TData, TError, TVariables, TContext>;
4
- export declare function useMutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(mutationFn: MutationFunction<TData, TVariables>, options?: Omit<UseMutationOptions<TData, TError, TVariables, TContext>, 'mutationFn'>): UseMutationResult<TData, TError, TVariables, TContext>;
5
- export declare function useMutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(mutationKey: MutationKey, options?: Omit<UseMutationOptions<TData, TError, TVariables, TContext>, 'mutationKey'>): UseMutationResult<TData, TError, TVariables, TContext>;
6
- export declare function useMutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(mutationKey: MutationKey, mutationFn?: MutationFunction<TData, TVariables>, options?: Omit<UseMutationOptions<TData, TError, TVariables, TContext>, 'mutationKey' | 'mutationFn'>): UseMutationResult<TData, TError, TVariables, TContext>;
3
+ export declare function useMutation<TData = unknown, TError = RegisteredError, TVariables = void, TContext = unknown>(options: UseMutationOptions<TData, TError, TVariables, TContext>, queryClient?: QueryClient): UseMutationResult<TData, TError, TVariables, TContext>;
@@ -1,33 +1,31 @@
1
1
  import * as React from 'react';
2
- import { useSyncExternalStore } from './useSyncExternalStore.esm.js';
3
- import { parseMutationArgs, MutationObserver, notifyManager } from '@tanstack/query-core';
2
+ import { MutationObserver, notifyManager } from '@tanstack/query-core';
4
3
  import { useQueryClient } from './QueryClientProvider.esm.js';
5
4
  import { shouldThrowError } from './utils.esm.js';
6
5
 
7
- function useMutation(arg1, arg2, arg3) {
8
- const options = parseMutationArgs(arg1, arg2, arg3);
9
- const queryClient = useQueryClient({
10
- context: options.context
11
- });
12
- const [observer] = React.useState(() => new MutationObserver(queryClient, options));
6
+ // HOOK
7
+
8
+ function useMutation(options, queryClient) {
9
+ const client = useQueryClient(queryClient);
10
+ const [observer] = React.useState(() => new MutationObserver(client, options));
13
11
  React.useEffect(() => {
14
12
  observer.setOptions(options);
15
13
  }, [observer, options]);
16
- const result = useSyncExternalStore(React.useCallback(onStoreChange => observer.subscribe(notifyManager.batchCalls(onStoreChange)), [observer]), () => observer.getCurrentResult(), () => observer.getCurrentResult());
14
+ const result = React.useSyncExternalStore(React.useCallback(onStoreChange => observer.subscribe(notifyManager.batchCalls(onStoreChange)), [observer]), () => observer.getCurrentResult(), () => observer.getCurrentResult());
17
15
  const mutate = React.useCallback((variables, mutateOptions) => {
18
16
  observer.mutate(variables, mutateOptions).catch(noop);
19
17
  }, [observer]);
20
-
21
- if (result.error && shouldThrowError(observer.options.useErrorBoundary, [result.error])) {
18
+ if (result.error && shouldThrowError(observer.options.throwErrors, [result.error])) {
22
19
  throw result.error;
23
20
  }
24
-
25
- return { ...result,
21
+ return {
22
+ ...result,
26
23
  mutate,
27
24
  mutateAsync: result.mutate
28
25
  };
29
- } // eslint-disable-next-line @typescript-eslint/no-empty-function
26
+ }
30
27
 
28
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
31
29
  function noop() {}
32
30
 
33
31
  export { useMutation };
@@ -1 +1 @@
1
- {"version":3,"file":"useMutation.esm.js","sources":["../../src/useMutation.ts"],"sourcesContent":["import * as React from 'react'\nimport { useSyncExternalStore } from './useSyncExternalStore'\n\nimport type { MutationFunction, MutationKey } from '@tanstack/query-core'\nimport {\n notifyManager,\n parseMutationArgs,\n MutationObserver,\n} from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n UseMutateFunction,\n UseMutationOptions,\n UseMutationResult,\n} from './types'\nimport { shouldThrowError } from './utils'\n\n// HOOK\n\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n options: UseMutationOptions<TData, TError, TVariables, TContext>,\n): UseMutationResult<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationFn: MutationFunction<TData, TVariables>,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationFn'\n >,\n): UseMutationResult<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MutationKey,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationKey'\n >,\n): UseMutationResult<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MutationKey,\n mutationFn?: MutationFunction<TData, TVariables>,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationKey' | 'mutationFn'\n >,\n): UseMutationResult<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MutationKey\n | MutationFunction<TData, TVariables>\n | UseMutationOptions<TData, TError, TVariables, TContext>,\n arg2?:\n | MutationFunction<TData, TVariables>\n | UseMutationOptions<TData, TError, TVariables, TContext>,\n arg3?: UseMutationOptions<TData, TError, TVariables, TContext>,\n): UseMutationResult<TData, TError, TVariables, TContext> {\n const options = parseMutationArgs(arg1, arg2, arg3)\n const queryClient = useQueryClient({ context: options.context })\n\n const [observer] = React.useState(\n () =>\n new MutationObserver<TData, TError, TVariables, TContext>(\n queryClient,\n options,\n ),\n )\n\n React.useEffect(() => {\n observer.setOptions(options)\n }, [observer, options])\n\n const result = useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer],\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult(),\n )\n\n const mutate = React.useCallback<\n UseMutateFunction<TData, TError, TVariables, TContext>\n >(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop)\n },\n [observer],\n )\n\n if (\n result.error &&\n shouldThrowError(observer.options.useErrorBoundary, [result.error])\n ) {\n throw result.error\n }\n\n return { ...result, mutate, mutateAsync: result.mutate }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n"],"names":["useMutation","arg1","arg2","arg3","options","parseMutationArgs","queryClient","useQueryClient","context","observer","React","useState","MutationObserver","useEffect","setOptions","result","useSyncExternalStore","useCallback","onStoreChange","subscribe","notifyManager","batchCalls","getCurrentResult","mutate","variables","mutateOptions","catch","noop","error","shouldThrowError","useErrorBoundary","mutateAsync"],"mappings":";;;;;;AAgEO,SAASA,WAAT,CAMLC,IANK,EAULC,IAVK,EAaLC,IAbK,EAcmD;EACxD,MAAMC,OAAO,GAAGC,iBAAiB,CAACJ,IAAD,EAAOC,IAAP,EAAaC,IAAb,CAAjC,CAAA;EACA,MAAMG,WAAW,GAAGC,cAAc,CAAC;IAAEC,OAAO,EAAEJ,OAAO,CAACI,OAAAA;AAAnB,GAAD,CAAlC,CAAA;AAEA,EAAA,MAAM,CAACC,QAAD,CAAaC,GAAAA,KAAK,CAACC,QAAN,CACjB,MACE,IAAIC,gBAAJ,CACEN,WADF,EAEEF,OAFF,CAFe,CAAnB,CAAA;EAQAM,KAAK,CAACG,SAAN,CAAgB,MAAM;IACpBJ,QAAQ,CAACK,UAAT,CAAoBV,OAApB,CAAA,CAAA;AACD,GAFD,EAEG,CAACK,QAAD,EAAWL,OAAX,CAFH,CAAA,CAAA;AAIA,EAAA,MAAMW,MAAM,GAAGC,oBAAoB,CACjCN,KAAK,CAACO,WAAN,CACGC,aAAD,IACET,QAAQ,CAACU,SAAT,CAAmBC,aAAa,CAACC,UAAd,CAAyBH,aAAzB,CAAnB,CAFJ,EAGE,CAACT,QAAD,CAHF,CADiC,EAMjC,MAAMA,QAAQ,CAACa,gBAAT,EAN2B,EAOjC,MAAMb,QAAQ,CAACa,gBAAT,EAP2B,CAAnC,CAAA;EAUA,MAAMC,MAAM,GAAGb,KAAK,CAACO,WAAN,CAGb,CAACO,SAAD,EAAYC,aAAZ,KAA8B;IAC5BhB,QAAQ,CAACc,MAAT,CAAgBC,SAAhB,EAA2BC,aAA3B,CAAA,CAA0CC,KAA1C,CAAgDC,IAAhD,CAAA,CAAA;AACD,GALY,EAMb,CAAClB,QAAD,CANa,CAAf,CAAA;;AASA,EAAA,IACEM,MAAM,CAACa,KAAP,IACAC,gBAAgB,CAACpB,QAAQ,CAACL,OAAT,CAAiB0B,gBAAlB,EAAoC,CAACf,MAAM,CAACa,KAAR,CAApC,CAFlB,EAGE;IACA,MAAMb,MAAM,CAACa,KAAb,CAAA;AACD,GAAA;;EAED,OAAO,EAAE,GAAGb,MAAL;IAAaQ,MAAb;IAAqBQ,WAAW,EAAEhB,MAAM,CAACQ,MAAAA;GAAhD,CAAA;AACD;;AAGD,SAASI,IAAT,GAAgB;;;;"}
1
+ {"version":3,"file":"useMutation.esm.js","sources":["../../src/useMutation.ts"],"sourcesContent":["import * as React from 'react'\nimport type { QueryClient, RegisteredError } from '@tanstack/query-core'\nimport { notifyManager, MutationObserver } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n UseMutateFunction,\n UseMutationOptions,\n UseMutationResult,\n} from './types'\nimport { shouldThrowError } from './utils'\n\n// HOOK\n\nexport function useMutation<\n TData = unknown,\n TError = RegisteredError,\n TVariables = void,\n TContext = unknown,\n>(\n options: UseMutationOptions<TData, TError, TVariables, TContext>,\n queryClient?: QueryClient,\n): UseMutationResult<TData, TError, TVariables, TContext> {\n const client = useQueryClient(queryClient)\n\n const [observer] = React.useState(\n () =>\n new MutationObserver<TData, TError, TVariables, TContext>(\n client,\n options,\n ),\n )\n\n React.useEffect(() => {\n observer.setOptions(options)\n }, [observer, options])\n\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer],\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult(),\n )\n\n const mutate = React.useCallback<\n UseMutateFunction<TData, TError, TVariables, TContext>\n >(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop)\n },\n [observer],\n )\n\n if (\n result.error &&\n shouldThrowError(observer.options.throwErrors, [result.error])\n ) {\n throw result.error\n }\n\n return { ...result, mutate, mutateAsync: result.mutate }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n"],"names":["useMutation","options","queryClient","client","useQueryClient","observer","React","useState","MutationObserver","useEffect","setOptions","result","useSyncExternalStore","useCallback","onStoreChange","subscribe","notifyManager","batchCalls","getCurrentResult","mutate","variables","mutateOptions","catch","noop","error","shouldThrowError","throwErrors","mutateAsync"],"mappings":";;;;;AAWA;;AAEO,SAASA,WAAW,CAMzBC,OAAgE,EAChEC,WAAyB,EAC+B;AACxD,EAAA,MAAMC,MAAM,GAAGC,cAAc,CAACF,WAAW,CAAC,CAAA;AAE1C,EAAA,MAAM,CAACG,QAAQ,CAAC,GAAGC,KAAK,CAACC,QAAQ,CAC/B,MACE,IAAIC,gBAAgB,CAClBL,MAAM,EACNF,OAAO,CACR,CACJ,CAAA;EAEDK,KAAK,CAACG,SAAS,CAAC,MAAM;AACpBJ,IAAAA,QAAQ,CAACK,UAAU,CAACT,OAAO,CAAC,CAAA;AAC9B,GAAC,EAAE,CAACI,QAAQ,EAAEJ,OAAO,CAAC,CAAC,CAAA;AAEvB,EAAA,MAAMU,MAAM,GAAGL,KAAK,CAACM,oBAAoB,CACvCN,KAAK,CAACO,WAAW,CACdC,aAAa,IACZT,QAAQ,CAACU,SAAS,CAACC,aAAa,CAACC,UAAU,CAACH,aAAa,CAAC,CAAC,EAC7D,CAACT,QAAQ,CAAC,CACX,EACD,MAAMA,QAAQ,CAACa,gBAAgB,EAAE,EACjC,MAAMb,QAAQ,CAACa,gBAAgB,EAAE,CAClC,CAAA;EAED,MAAMC,MAAM,GAAGb,KAAK,CAACO,WAAW,CAG9B,CAACO,SAAS,EAAEC,aAAa,KAAK;IAC5BhB,QAAQ,CAACc,MAAM,CAACC,SAAS,EAAEC,aAAa,CAAC,CAACC,KAAK,CAACC,IAAI,CAAC,CAAA;AACvD,GAAC,EACD,CAAClB,QAAQ,CAAC,CACX,CAAA;AAED,EAAA,IACEM,MAAM,CAACa,KAAK,IACZC,gBAAgB,CAACpB,QAAQ,CAACJ,OAAO,CAACyB,WAAW,EAAE,CAACf,MAAM,CAACa,KAAK,CAAC,CAAC,EAC9D;IACA,MAAMb,MAAM,CAACa,KAAK,CAAA;AACpB,GAAA;EAEA,OAAO;AAAE,IAAA,GAAGb,MAAM;IAAEQ,MAAM;IAAEQ,WAAW,EAAEhB,MAAM,CAACQ,MAAAA;GAAQ,CAAA;AAC1D,CAAA;;AAEA;AACA,SAASI,IAAI,GAAG;;;;"}
@@ -1,15 +1,11 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var React = require('react');
6
- var useSyncExternalStore = require('./useSyncExternalStore');
7
4
  var queryCore = require('@tanstack/query-core');
8
5
  var QueryClientProvider = require('./QueryClientProvider.js');
9
6
  var utils = require('./utils.js');
10
7
 
11
- function _interopNamespace(e) {
12
- if (e && e.__esModule) return e;
8
+ function _interopNamespaceDefault(e) {
13
9
  var n = Object.create(null);
14
10
  if (e) {
15
11
  Object.keys(e).forEach(function (k) {
@@ -22,36 +18,35 @@ function _interopNamespace(e) {
22
18
  }
23
19
  });
24
20
  }
25
- n["default"] = e;
21
+ n.default = e;
26
22
  return Object.freeze(n);
27
23
  }
28
24
 
29
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
25
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
26
+
27
+ // HOOK
30
28
 
31
- function useMutation(arg1, arg2, arg3) {
32
- const options = queryCore.parseMutationArgs(arg1, arg2, arg3);
33
- const queryClient = QueryClientProvider.useQueryClient({
34
- context: options.context
35
- });
36
- const [observer] = React__namespace.useState(() => new queryCore.MutationObserver(queryClient, options));
29
+ function useMutation(options, queryClient) {
30
+ const client = QueryClientProvider.useQueryClient(queryClient);
31
+ const [observer] = React__namespace.useState(() => new queryCore.MutationObserver(client, options));
37
32
  React__namespace.useEffect(() => {
38
33
  observer.setOptions(options);
39
34
  }, [observer, options]);
40
- const result = useSyncExternalStore.useSyncExternalStore(React__namespace.useCallback(onStoreChange => observer.subscribe(queryCore.notifyManager.batchCalls(onStoreChange)), [observer]), () => observer.getCurrentResult(), () => observer.getCurrentResult());
35
+ const result = React__namespace.useSyncExternalStore(React__namespace.useCallback(onStoreChange => observer.subscribe(queryCore.notifyManager.batchCalls(onStoreChange)), [observer]), () => observer.getCurrentResult(), () => observer.getCurrentResult());
41
36
  const mutate = React__namespace.useCallback((variables, mutateOptions) => {
42
37
  observer.mutate(variables, mutateOptions).catch(noop);
43
38
  }, [observer]);
44
-
45
- if (result.error && utils.shouldThrowError(observer.options.useErrorBoundary, [result.error])) {
39
+ if (result.error && utils.shouldThrowError(observer.options.throwErrors, [result.error])) {
46
40
  throw result.error;
47
41
  }
48
-
49
- return { ...result,
42
+ return {
43
+ ...result,
50
44
  mutate,
51
45
  mutateAsync: result.mutate
52
46
  };
53
- } // eslint-disable-next-line @typescript-eslint/no-empty-function
47
+ }
54
48
 
49
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
55
50
  function noop() {}
56
51
 
57
52
  exports.useMutation = useMutation;
@@ -1 +1 @@
1
- {"version":3,"file":"useMutation.js","sources":["../../src/useMutation.ts"],"sourcesContent":["import * as React from 'react'\nimport { useSyncExternalStore } from './useSyncExternalStore'\n\nimport type { MutationFunction, MutationKey } from '@tanstack/query-core'\nimport {\n notifyManager,\n parseMutationArgs,\n MutationObserver,\n} from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n UseMutateFunction,\n UseMutationOptions,\n UseMutationResult,\n} from './types'\nimport { shouldThrowError } from './utils'\n\n// HOOK\n\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n options: UseMutationOptions<TData, TError, TVariables, TContext>,\n): UseMutationResult<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationFn: MutationFunction<TData, TVariables>,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationFn'\n >,\n): UseMutationResult<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MutationKey,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationKey'\n >,\n): UseMutationResult<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MutationKey,\n mutationFn?: MutationFunction<TData, TVariables>,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationKey' | 'mutationFn'\n >,\n): UseMutationResult<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MutationKey\n | MutationFunction<TData, TVariables>\n | UseMutationOptions<TData, TError, TVariables, TContext>,\n arg2?:\n | MutationFunction<TData, TVariables>\n | UseMutationOptions<TData, TError, TVariables, TContext>,\n arg3?: UseMutationOptions<TData, TError, TVariables, TContext>,\n): UseMutationResult<TData, TError, TVariables, TContext> {\n const options = parseMutationArgs(arg1, arg2, arg3)\n const queryClient = useQueryClient({ context: options.context })\n\n const [observer] = React.useState(\n () =>\n new MutationObserver<TData, TError, TVariables, TContext>(\n queryClient,\n options,\n ),\n )\n\n React.useEffect(() => {\n observer.setOptions(options)\n }, [observer, options])\n\n const result = useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer],\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult(),\n )\n\n const mutate = React.useCallback<\n UseMutateFunction<TData, TError, TVariables, TContext>\n >(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop)\n },\n [observer],\n )\n\n if (\n result.error &&\n shouldThrowError(observer.options.useErrorBoundary, [result.error])\n ) {\n throw result.error\n }\n\n return { ...result, mutate, mutateAsync: result.mutate }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n"],"names":["useMutation","arg1","arg2","arg3","options","parseMutationArgs","queryClient","useQueryClient","context","observer","React","useState","MutationObserver","useEffect","setOptions","result","useSyncExternalStore","useCallback","onStoreChange","subscribe","notifyManager","batchCalls","getCurrentResult","mutate","variables","mutateOptions","catch","noop","error","shouldThrowError","useErrorBoundary","mutateAsync"],"mappings":"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"}
1
+ {"version":3,"file":"useMutation.js","sources":["../../src/useMutation.ts"],"sourcesContent":["import * as React from 'react'\nimport type { QueryClient, RegisteredError } from '@tanstack/query-core'\nimport { notifyManager, MutationObserver } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n UseMutateFunction,\n UseMutationOptions,\n UseMutationResult,\n} from './types'\nimport { shouldThrowError } from './utils'\n\n// HOOK\n\nexport function useMutation<\n TData = unknown,\n TError = RegisteredError,\n TVariables = void,\n TContext = unknown,\n>(\n options: UseMutationOptions<TData, TError, TVariables, TContext>,\n queryClient?: QueryClient,\n): UseMutationResult<TData, TError, TVariables, TContext> {\n const client = useQueryClient(queryClient)\n\n const [observer] = React.useState(\n () =>\n new MutationObserver<TData, TError, TVariables, TContext>(\n client,\n options,\n ),\n )\n\n React.useEffect(() => {\n observer.setOptions(options)\n }, [observer, options])\n\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer],\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult(),\n )\n\n const mutate = React.useCallback<\n UseMutateFunction<TData, TError, TVariables, TContext>\n >(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop)\n },\n [observer],\n )\n\n if (\n result.error &&\n shouldThrowError(observer.options.throwErrors, [result.error])\n ) {\n throw result.error\n }\n\n return { ...result, mutate, mutateAsync: result.mutate }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n"],"names":["useMutation","options","queryClient","client","useQueryClient","observer","React","useState","MutationObserver","useEffect","setOptions","result","useSyncExternalStore","useCallback","onStoreChange","subscribe","notifyManager","batchCalls","getCurrentResult","mutate","variables","mutateOptions","catch","noop","error","shouldThrowError","throwErrors","mutateAsync"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAWA;;AAEO,SAASA,WAAW,CAMzBC,OAAgE,EAChEC,WAAyB,EAC+B;AACxD,EAAA,MAAMC,MAAM,GAAGC,kCAAc,CAACF,WAAW,CAAC,CAAA;AAE1C,EAAA,MAAM,CAACG,QAAQ,CAAC,GAAGC,gBAAK,CAACC,QAAQ,CAC/B,MACE,IAAIC,0BAAgB,CAClBL,MAAM,EACNF,OAAO,CACR,CACJ,CAAA;EAEDK,gBAAK,CAACG,SAAS,CAAC,MAAM;AACpBJ,IAAAA,QAAQ,CAACK,UAAU,CAACT,OAAO,CAAC,CAAA;AAC9B,GAAC,EAAE,CAACI,QAAQ,EAAEJ,OAAO,CAAC,CAAC,CAAA;AAEvB,EAAA,MAAMU,MAAM,GAAGL,gBAAK,CAACM,oBAAoB,CACvCN,gBAAK,CAACO,WAAW,CACdC,aAAa,IACZT,QAAQ,CAACU,SAAS,CAACC,uBAAa,CAACC,UAAU,CAACH,aAAa,CAAC,CAAC,EAC7D,CAACT,QAAQ,CAAC,CACX,EACD,MAAMA,QAAQ,CAACa,gBAAgB,EAAE,EACjC,MAAMb,QAAQ,CAACa,gBAAgB,EAAE,CAClC,CAAA;EAED,MAAMC,MAAM,GAAGb,gBAAK,CAACO,WAAW,CAG9B,CAACO,SAAS,EAAEC,aAAa,KAAK;IAC5BhB,QAAQ,CAACc,MAAM,CAACC,SAAS,EAAEC,aAAa,CAAC,CAACC,KAAK,CAACC,IAAI,CAAC,CAAA;AACvD,GAAC,EACD,CAAClB,QAAQ,CAAC,CACX,CAAA;AAED,EAAA,IACEM,MAAM,CAACa,KAAK,IACZC,sBAAgB,CAACpB,QAAQ,CAACJ,OAAO,CAACyB,WAAW,EAAE,CAACf,MAAM,CAACa,KAAK,CAAC,CAAC,EAC9D;IACA,MAAMb,MAAM,CAACa,KAAK,CAAA;AACpB,GAAA;EAEA,OAAO;AAAE,IAAA,GAAGb,MAAM;IAAEQ,MAAM;IAAEQ,WAAW,EAAEhB,MAAM,CAACQ,MAAAA;GAAQ,CAAA;AAC1D,CAAA;;AAEA;AACA,SAASI,IAAI,GAAG;;;;"}
@@ -1,33 +1,31 @@
1
1
  import * as React from 'react';
2
- import { useSyncExternalStore } from './useSyncExternalStore.mjs';
3
- import { parseMutationArgs, MutationObserver, notifyManager } from '@tanstack/query-core';
2
+ import { MutationObserver, notifyManager } from '@tanstack/query-core';
4
3
  import { useQueryClient } from './QueryClientProvider.mjs';
5
4
  import { shouldThrowError } from './utils.mjs';
6
5
 
7
- function useMutation(arg1, arg2, arg3) {
8
- const options = parseMutationArgs(arg1, arg2, arg3);
9
- const queryClient = useQueryClient({
10
- context: options.context
11
- });
12
- const [observer] = React.useState(() => new MutationObserver(queryClient, options));
6
+ // HOOK
7
+
8
+ function useMutation(options, queryClient) {
9
+ const client = useQueryClient(queryClient);
10
+ const [observer] = React.useState(() => new MutationObserver(client, options));
13
11
  React.useEffect(() => {
14
12
  observer.setOptions(options);
15
13
  }, [observer, options]);
16
- const result = useSyncExternalStore(React.useCallback(onStoreChange => observer.subscribe(notifyManager.batchCalls(onStoreChange)), [observer]), () => observer.getCurrentResult(), () => observer.getCurrentResult());
14
+ const result = React.useSyncExternalStore(React.useCallback(onStoreChange => observer.subscribe(notifyManager.batchCalls(onStoreChange)), [observer]), () => observer.getCurrentResult(), () => observer.getCurrentResult());
17
15
  const mutate = React.useCallback((variables, mutateOptions) => {
18
16
  observer.mutate(variables, mutateOptions).catch(noop);
19
17
  }, [observer]);
20
-
21
- if (result.error && shouldThrowError(observer.options.useErrorBoundary, [result.error])) {
18
+ if (result.error && shouldThrowError(observer.options.throwErrors, [result.error])) {
22
19
  throw result.error;
23
20
  }
24
-
25
- return { ...result,
21
+ return {
22
+ ...result,
26
23
  mutate,
27
24
  mutateAsync: result.mutate
28
25
  };
29
- } // eslint-disable-next-line @typescript-eslint/no-empty-function
26
+ }
30
27
 
28
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
31
29
  function noop() {}
32
30
 
33
31
  export { useMutation };
@@ -1 +1 @@
1
- {"version":3,"file":"useMutation.mjs","sources":["../../src/useMutation.ts"],"sourcesContent":["import * as React from 'react'\nimport { useSyncExternalStore } from './useSyncExternalStore'\n\nimport type { MutationFunction, MutationKey } from '@tanstack/query-core'\nimport {\n notifyManager,\n parseMutationArgs,\n MutationObserver,\n} from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n UseMutateFunction,\n UseMutationOptions,\n UseMutationResult,\n} from './types'\nimport { shouldThrowError } from './utils'\n\n// HOOK\n\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n options: UseMutationOptions<TData, TError, TVariables, TContext>,\n): UseMutationResult<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationFn: MutationFunction<TData, TVariables>,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationFn'\n >,\n): UseMutationResult<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MutationKey,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationKey'\n >,\n): UseMutationResult<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MutationKey,\n mutationFn?: MutationFunction<TData, TVariables>,\n options?: Omit<\n UseMutationOptions<TData, TError, TVariables, TContext>,\n 'mutationKey' | 'mutationFn'\n >,\n): UseMutationResult<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MutationKey\n | MutationFunction<TData, TVariables>\n | UseMutationOptions<TData, TError, TVariables, TContext>,\n arg2?:\n | MutationFunction<TData, TVariables>\n | UseMutationOptions<TData, TError, TVariables, TContext>,\n arg3?: UseMutationOptions<TData, TError, TVariables, TContext>,\n): UseMutationResult<TData, TError, TVariables, TContext> {\n const options = parseMutationArgs(arg1, arg2, arg3)\n const queryClient = useQueryClient({ context: options.context })\n\n const [observer] = React.useState(\n () =>\n new MutationObserver<TData, TError, TVariables, TContext>(\n queryClient,\n options,\n ),\n )\n\n React.useEffect(() => {\n observer.setOptions(options)\n }, [observer, options])\n\n const result = useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer],\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult(),\n )\n\n const mutate = React.useCallback<\n UseMutateFunction<TData, TError, TVariables, TContext>\n >(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop)\n },\n [observer],\n )\n\n if (\n result.error &&\n shouldThrowError(observer.options.useErrorBoundary, [result.error])\n ) {\n throw result.error\n }\n\n return { ...result, mutate, mutateAsync: result.mutate }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n"],"names":["useMutation","arg1","arg2","arg3","options","parseMutationArgs","queryClient","useQueryClient","context","observer","React","useState","MutationObserver","useEffect","setOptions","result","useSyncExternalStore","useCallback","onStoreChange","subscribe","notifyManager","batchCalls","getCurrentResult","mutate","variables","mutateOptions","catch","noop","error","shouldThrowError","useErrorBoundary","mutateAsync"],"mappings":";;;;;;AAgEO,SAASA,WAAT,CAMLC,IANK,EAULC,IAVK,EAaLC,IAbK,EAcmD;EACxD,MAAMC,OAAO,GAAGC,iBAAiB,CAACJ,IAAD,EAAOC,IAAP,EAAaC,IAAb,CAAjC,CAAA;EACA,MAAMG,WAAW,GAAGC,cAAc,CAAC;IAAEC,OAAO,EAAEJ,OAAO,CAACI,OAAAA;AAAnB,GAAD,CAAlC,CAAA;AAEA,EAAA,MAAM,CAACC,QAAD,CAAaC,GAAAA,KAAK,CAACC,QAAN,CACjB,MACE,IAAIC,gBAAJ,CACEN,WADF,EAEEF,OAFF,CAFe,CAAnB,CAAA;EAQAM,KAAK,CAACG,SAAN,CAAgB,MAAM;IACpBJ,QAAQ,CAACK,UAAT,CAAoBV,OAApB,CAAA,CAAA;AACD,GAFD,EAEG,CAACK,QAAD,EAAWL,OAAX,CAFH,CAAA,CAAA;AAIA,EAAA,MAAMW,MAAM,GAAGC,oBAAoB,CACjCN,KAAK,CAACO,WAAN,CACGC,aAAD,IACET,QAAQ,CAACU,SAAT,CAAmBC,aAAa,CAACC,UAAd,CAAyBH,aAAzB,CAAnB,CAFJ,EAGE,CAACT,QAAD,CAHF,CADiC,EAMjC,MAAMA,QAAQ,CAACa,gBAAT,EAN2B,EAOjC,MAAMb,QAAQ,CAACa,gBAAT,EAP2B,CAAnC,CAAA;EAUA,MAAMC,MAAM,GAAGb,KAAK,CAACO,WAAN,CAGb,CAACO,SAAD,EAAYC,aAAZ,KAA8B;IAC5BhB,QAAQ,CAACc,MAAT,CAAgBC,SAAhB,EAA2BC,aAA3B,CAAA,CAA0CC,KAA1C,CAAgDC,IAAhD,CAAA,CAAA;AACD,GALY,EAMb,CAAClB,QAAD,CANa,CAAf,CAAA;;AASA,EAAA,IACEM,MAAM,CAACa,KAAP,IACAC,gBAAgB,CAACpB,QAAQ,CAACL,OAAT,CAAiB0B,gBAAlB,EAAoC,CAACf,MAAM,CAACa,KAAR,CAApC,CAFlB,EAGE;IACA,MAAMb,MAAM,CAACa,KAAb,CAAA;AACD,GAAA;;EAED,OAAO,EAAE,GAAGb,MAAL;IAAaQ,MAAb;IAAqBQ,WAAW,EAAEhB,MAAM,CAACQ,MAAAA;GAAhD,CAAA;AACD;;AAGD,SAASI,IAAT,GAAgB;;;;"}
1
+ {"version":3,"file":"useMutation.mjs","sources":["../../src/useMutation.ts"],"sourcesContent":["import * as React from 'react'\nimport type { QueryClient, RegisteredError } from '@tanstack/query-core'\nimport { notifyManager, MutationObserver } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n UseMutateFunction,\n UseMutationOptions,\n UseMutationResult,\n} from './types'\nimport { shouldThrowError } from './utils'\n\n// HOOK\n\nexport function useMutation<\n TData = unknown,\n TError = RegisteredError,\n TVariables = void,\n TContext = unknown,\n>(\n options: UseMutationOptions<TData, TError, TVariables, TContext>,\n queryClient?: QueryClient,\n): UseMutationResult<TData, TError, TVariables, TContext> {\n const client = useQueryClient(queryClient)\n\n const [observer] = React.useState(\n () =>\n new MutationObserver<TData, TError, TVariables, TContext>(\n client,\n options,\n ),\n )\n\n React.useEffect(() => {\n observer.setOptions(options)\n }, [observer, options])\n\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer],\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult(),\n )\n\n const mutate = React.useCallback<\n UseMutateFunction<TData, TError, TVariables, TContext>\n >(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop)\n },\n [observer],\n )\n\n if (\n result.error &&\n shouldThrowError(observer.options.throwErrors, [result.error])\n ) {\n throw result.error\n }\n\n return { ...result, mutate, mutateAsync: result.mutate }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n"],"names":["useMutation","options","queryClient","client","useQueryClient","observer","React","useState","MutationObserver","useEffect","setOptions","result","useSyncExternalStore","useCallback","onStoreChange","subscribe","notifyManager","batchCalls","getCurrentResult","mutate","variables","mutateOptions","catch","noop","error","shouldThrowError","throwErrors","mutateAsync"],"mappings":";;;;;AAWA;;AAEO,SAASA,WAAW,CAMzBC,OAAgE,EAChEC,WAAyB,EAC+B;AACxD,EAAA,MAAMC,MAAM,GAAGC,cAAc,CAACF,WAAW,CAAC,CAAA;AAE1C,EAAA,MAAM,CAACG,QAAQ,CAAC,GAAGC,KAAK,CAACC,QAAQ,CAC/B,MACE,IAAIC,gBAAgB,CAClBL,MAAM,EACNF,OAAO,CACR,CACJ,CAAA;EAEDK,KAAK,CAACG,SAAS,CAAC,MAAM;AACpBJ,IAAAA,QAAQ,CAACK,UAAU,CAACT,OAAO,CAAC,CAAA;AAC9B,GAAC,EAAE,CAACI,QAAQ,EAAEJ,OAAO,CAAC,CAAC,CAAA;AAEvB,EAAA,MAAMU,MAAM,GAAGL,KAAK,CAACM,oBAAoB,CACvCN,KAAK,CAACO,WAAW,CACdC,aAAa,IACZT,QAAQ,CAACU,SAAS,CAACC,aAAa,CAACC,UAAU,CAACH,aAAa,CAAC,CAAC,EAC7D,CAACT,QAAQ,CAAC,CACX,EACD,MAAMA,QAAQ,CAACa,gBAAgB,EAAE,EACjC,MAAMb,QAAQ,CAACa,gBAAgB,EAAE,CAClC,CAAA;EAED,MAAMC,MAAM,GAAGb,KAAK,CAACO,WAAW,CAG9B,CAACO,SAAS,EAAEC,aAAa,KAAK;IAC5BhB,QAAQ,CAACc,MAAM,CAACC,SAAS,EAAEC,aAAa,CAAC,CAACC,KAAK,CAACC,IAAI,CAAC,CAAA;AACvD,GAAC,EACD,CAAClB,QAAQ,CAAC,CACX,CAAA;AAED,EAAA,IACEM,MAAM,CAACa,KAAK,IACZC,gBAAgB,CAACpB,QAAQ,CAACJ,OAAO,CAACyB,WAAW,EAAE,CAACf,MAAM,CAACa,KAAK,CAAC,CAAC,EAC9D;IACA,MAAMb,MAAM,CAACa,KAAK,CAAA;AACpB,GAAA;EAEA,OAAO;AAAE,IAAA,GAAGb,MAAM;IAAEQ,MAAM;IAAEQ,WAAW,EAAEhB,MAAM,CAACQ,MAAAA;GAAQ,CAAA;AAC1D,CAAA;;AAEA;AACA,SAASI,IAAI,GAAG;;;;"}
@@ -0,0 +1,8 @@
1
+ import type { MutationFilters, QueryClient, Mutation, RegisteredError } from '@tanstack/query-core';
2
+ export declare function useIsMutating(filters?: MutationFilters, queryClient?: QueryClient): number;
3
+ declare type MutationStateOptions<TResult> = {
4
+ filters?: MutationFilters;
5
+ select?: (mutation: Mutation<unknown, RegisteredError, unknown, unknown>) => TResult;
6
+ };
7
+ export declare function useMutationState<TResult = unknown>(options?: MutationStateOptions<TResult>, queryClient?: QueryClient): Array<TResult>;
8
+ export {};
@@ -0,0 +1,37 @@
1
+ import * as React from 'react';
2
+ import { replaceEqualDeep, notifyManager } from '@tanstack/query-core';
3
+ import { useQueryClient } from './QueryClientProvider.esm.js';
4
+
5
+ function useIsMutating(filters, queryClient) {
6
+ const client = useQueryClient(queryClient);
7
+ return useMutationState({
8
+ filters: {
9
+ ...filters,
10
+ status: 'pending'
11
+ }
12
+ }, client).length;
13
+ }
14
+ function getResult(mutationCache, options) {
15
+ return mutationCache.findAll(options.filters).map(mutation => options.select ? options.select(mutation) : mutation.state);
16
+ }
17
+ function useMutationState(options = {}, queryClient) {
18
+ const mutationCache = useQueryClient(queryClient).getMutationCache();
19
+ const optionsRef = React.useRef(options);
20
+ const result = React.useRef();
21
+ if (!result.current) {
22
+ result.current = getResult(mutationCache, options);
23
+ }
24
+ React.useEffect(() => {
25
+ optionsRef.current = options;
26
+ });
27
+ return React.useSyncExternalStore(React.useCallback(onStoreChange => mutationCache.subscribe(() => {
28
+ const nextResult = replaceEqualDeep(result.current, getResult(mutationCache, optionsRef.current));
29
+ if (result.current !== nextResult) {
30
+ result.current = nextResult;
31
+ notifyManager.schedule(onStoreChange);
32
+ }
33
+ }), [mutationCache]), () => result.current, () => result.current);
34
+ }
35
+
36
+ export { useIsMutating, useMutationState };
37
+ //# sourceMappingURL=useMutationState.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMutationState.esm.js","sources":["../../src/useMutationState.ts"],"sourcesContent":["import * as React from 'react'\n\nimport type {\n MutationFilters,\n QueryClient,\n Mutation,\n MutationCache,\n RegisteredError,\n} from '@tanstack/query-core'\nimport { notifyManager, replaceEqualDeep } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { MutationState } from '@tanstack/query-core/build/lib/mutation'\n\nexport function useIsMutating(\n filters?: MutationFilters,\n queryClient?: QueryClient,\n): number {\n const client = useQueryClient(queryClient)\n return useMutationState(\n { filters: { ...filters, status: 'pending' } },\n client,\n ).length\n}\n\ntype MutationStateOptions<TResult> = {\n filters?: MutationFilters\n select?: (\n mutation: Mutation<unknown, RegisteredError, unknown, unknown>,\n ) => TResult\n}\n\nfunction getResult<TResult = MutationState>(\n mutationCache: MutationCache,\n options: MutationStateOptions<TResult>,\n): Array<TResult> {\n return mutationCache\n .findAll(options.filters)\n .map(\n (mutation): TResult =>\n (options.select\n ? options.select(\n mutation as Mutation<unknown, RegisteredError, unknown, unknown>,\n )\n : mutation.state) as TResult,\n )\n}\n\nexport function useMutationState<TResult = unknown>(\n options: MutationStateOptions<TResult> = {},\n queryClient?: QueryClient,\n): Array<TResult> {\n const mutationCache = useQueryClient(queryClient).getMutationCache()\n const optionsRef = React.useRef(options)\n const result = React.useRef<Array<TResult>>()\n if (!result.current) {\n result.current = getResult(mutationCache, options)\n }\n\n React.useEffect(() => {\n optionsRef.current = options\n })\n\n return React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n mutationCache.subscribe(() => {\n const nextResult = replaceEqualDeep(\n result.current,\n getResult(mutationCache, optionsRef.current),\n )\n if (result.current !== nextResult) {\n result.current = nextResult\n notifyManager.schedule(onStoreChange)\n }\n }),\n [mutationCache],\n ),\n () => result.current,\n () => result.current,\n )!\n}\n"],"names":["useIsMutating","filters","queryClient","client","useQueryClient","useMutationState","status","length","getResult","mutationCache","options","findAll","map","mutation","select","state","getMutationCache","optionsRef","React","useRef","result","current","useEffect","useSyncExternalStore","useCallback","onStoreChange","subscribe","nextResult","replaceEqualDeep","notifyManager","schedule"],"mappings":";;;;AAaO,SAASA,aAAa,CAC3BC,OAAyB,EACzBC,WAAyB,EACjB;AACR,EAAA,MAAMC,MAAM,GAAGC,cAAc,CAACF,WAAW,CAAC,CAAA;AAC1C,EAAA,OAAOG,gBAAgB,CACrB;AAAEJ,IAAAA,OAAO,EAAE;AAAE,MAAA,GAAGA,OAAO;AAAEK,MAAAA,MAAM,EAAE,SAAA;AAAU,KAAA;AAAE,GAAC,EAC9CH,MAAM,CACP,CAACI,MAAM,CAAA;AACV,CAAA;AASA,SAASC,SAAS,CAChBC,aAA4B,EAC5BC,OAAsC,EACtB;EAChB,OAAOD,aAAa,CACjBE,OAAO,CAACD,OAAO,CAACT,OAAO,CAAC,CACxBW,GAAG,CACDC,QAAQ,IACNH,OAAO,CAACI,MAAM,GACXJ,OAAO,CAACI,MAAM,CACZD,QAAQ,CACT,GACDA,QAAQ,CAACE,KAAiB,CACjC,CAAA;AACL,CAAA;AAEO,SAASV,gBAAgB,CAC9BK,OAAsC,GAAG,EAAE,EAC3CR,WAAyB,EACT;EAChB,MAAMO,aAAa,GAAGL,cAAc,CAACF,WAAW,CAAC,CAACc,gBAAgB,EAAE,CAAA;AACpE,EAAA,MAAMC,UAAU,GAAGC,KAAK,CAACC,MAAM,CAACT,OAAO,CAAC,CAAA;AACxC,EAAA,MAAMU,MAAM,GAAGF,KAAK,CAACC,MAAM,EAAkB,CAAA;AAC7C,EAAA,IAAI,CAACC,MAAM,CAACC,OAAO,EAAE;IACnBD,MAAM,CAACC,OAAO,GAAGb,SAAS,CAACC,aAAa,EAAEC,OAAO,CAAC,CAAA;AACpD,GAAA;EAEAQ,KAAK,CAACI,SAAS,CAAC,MAAM;IACpBL,UAAU,CAACI,OAAO,GAAGX,OAAO,CAAA;AAC9B,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOQ,KAAK,CAACK,oBAAoB,CAC/BL,KAAK,CAACM,WAAW,CACdC,aAAa,IACZhB,aAAa,CAACiB,SAAS,CAAC,MAAM;AAC5B,IAAA,MAAMC,UAAU,GAAGC,gBAAgB,CACjCR,MAAM,CAACC,OAAO,EACdb,SAAS,CAACC,aAAa,EAAEQ,UAAU,CAACI,OAAO,CAAC,CAC7C,CAAA;AACD,IAAA,IAAID,MAAM,CAACC,OAAO,KAAKM,UAAU,EAAE;MACjCP,MAAM,CAACC,OAAO,GAAGM,UAAU,CAAA;AAC3BE,MAAAA,aAAa,CAACC,QAAQ,CAACL,aAAa,CAAC,CAAA;AACvC,KAAA;AACF,GAAC,CAAC,EACJ,CAAChB,aAAa,CAAC,CAChB,EACD,MAAMW,MAAM,CAACC,OAAO,EACpB,MAAMD,MAAM,CAACC,OAAO,CACrB,CAAA;AACH;;;;"}
@@ -0,0 +1,59 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var queryCore = require('@tanstack/query-core');
5
+ var QueryClientProvider = require('./QueryClientProvider.js');
6
+
7
+ function _interopNamespaceDefault(e) {
8
+ var n = Object.create(null);
9
+ if (e) {
10
+ Object.keys(e).forEach(function (k) {
11
+ if (k !== 'default') {
12
+ var d = Object.getOwnPropertyDescriptor(e, k);
13
+ Object.defineProperty(n, k, d.get ? d : {
14
+ enumerable: true,
15
+ get: function () { return e[k]; }
16
+ });
17
+ }
18
+ });
19
+ }
20
+ n.default = e;
21
+ return Object.freeze(n);
22
+ }
23
+
24
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
25
+
26
+ function useIsMutating(filters, queryClient) {
27
+ const client = QueryClientProvider.useQueryClient(queryClient);
28
+ return useMutationState({
29
+ filters: {
30
+ ...filters,
31
+ status: 'pending'
32
+ }
33
+ }, client).length;
34
+ }
35
+ function getResult(mutationCache, options) {
36
+ return mutationCache.findAll(options.filters).map(mutation => options.select ? options.select(mutation) : mutation.state);
37
+ }
38
+ function useMutationState(options = {}, queryClient) {
39
+ const mutationCache = QueryClientProvider.useQueryClient(queryClient).getMutationCache();
40
+ const optionsRef = React__namespace.useRef(options);
41
+ const result = React__namespace.useRef();
42
+ if (!result.current) {
43
+ result.current = getResult(mutationCache, options);
44
+ }
45
+ React__namespace.useEffect(() => {
46
+ optionsRef.current = options;
47
+ });
48
+ return React__namespace.useSyncExternalStore(React__namespace.useCallback(onStoreChange => mutationCache.subscribe(() => {
49
+ const nextResult = queryCore.replaceEqualDeep(result.current, getResult(mutationCache, optionsRef.current));
50
+ if (result.current !== nextResult) {
51
+ result.current = nextResult;
52
+ queryCore.notifyManager.schedule(onStoreChange);
53
+ }
54
+ }), [mutationCache]), () => result.current, () => result.current);
55
+ }
56
+
57
+ exports.useIsMutating = useIsMutating;
58
+ exports.useMutationState = useMutationState;
59
+ //# sourceMappingURL=useMutationState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMutationState.js","sources":["../../src/useMutationState.ts"],"sourcesContent":["import * as React from 'react'\n\nimport type {\n MutationFilters,\n QueryClient,\n Mutation,\n MutationCache,\n RegisteredError,\n} from '@tanstack/query-core'\nimport { notifyManager, replaceEqualDeep } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { MutationState } from '@tanstack/query-core/build/lib/mutation'\n\nexport function useIsMutating(\n filters?: MutationFilters,\n queryClient?: QueryClient,\n): number {\n const client = useQueryClient(queryClient)\n return useMutationState(\n { filters: { ...filters, status: 'pending' } },\n client,\n ).length\n}\n\ntype MutationStateOptions<TResult> = {\n filters?: MutationFilters\n select?: (\n mutation: Mutation<unknown, RegisteredError, unknown, unknown>,\n ) => TResult\n}\n\nfunction getResult<TResult = MutationState>(\n mutationCache: MutationCache,\n options: MutationStateOptions<TResult>,\n): Array<TResult> {\n return mutationCache\n .findAll(options.filters)\n .map(\n (mutation): TResult =>\n (options.select\n ? options.select(\n mutation as Mutation<unknown, RegisteredError, unknown, unknown>,\n )\n : mutation.state) as TResult,\n )\n}\n\nexport function useMutationState<TResult = unknown>(\n options: MutationStateOptions<TResult> = {},\n queryClient?: QueryClient,\n): Array<TResult> {\n const mutationCache = useQueryClient(queryClient).getMutationCache()\n const optionsRef = React.useRef(options)\n const result = React.useRef<Array<TResult>>()\n if (!result.current) {\n result.current = getResult(mutationCache, options)\n }\n\n React.useEffect(() => {\n optionsRef.current = options\n })\n\n return React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n mutationCache.subscribe(() => {\n const nextResult = replaceEqualDeep(\n result.current,\n getResult(mutationCache, optionsRef.current),\n )\n if (result.current !== nextResult) {\n result.current = nextResult\n notifyManager.schedule(onStoreChange)\n }\n }),\n [mutationCache],\n ),\n () => result.current,\n () => result.current,\n )!\n}\n"],"names":["useIsMutating","filters","queryClient","client","useQueryClient","useMutationState","status","length","getResult","mutationCache","options","findAll","map","mutation","select","state","getMutationCache","optionsRef","React","useRef","result","current","useEffect","useSyncExternalStore","useCallback","onStoreChange","subscribe","nextResult","replaceEqualDeep","notifyManager","schedule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAaO,SAASA,aAAa,CAC3BC,OAAyB,EACzBC,WAAyB,EACjB;AACR,EAAA,MAAMC,MAAM,GAAGC,kCAAc,CAACF,WAAW,CAAC,CAAA;AAC1C,EAAA,OAAOG,gBAAgB,CACrB;AAAEJ,IAAAA,OAAO,EAAE;AAAE,MAAA,GAAGA,OAAO;AAAEK,MAAAA,MAAM,EAAE,SAAA;AAAU,KAAA;AAAE,GAAC,EAC9CH,MAAM,CACP,CAACI,MAAM,CAAA;AACV,CAAA;AASA,SAASC,SAAS,CAChBC,aAA4B,EAC5BC,OAAsC,EACtB;EAChB,OAAOD,aAAa,CACjBE,OAAO,CAACD,OAAO,CAACT,OAAO,CAAC,CACxBW,GAAG,CACDC,QAAQ,IACNH,OAAO,CAACI,MAAM,GACXJ,OAAO,CAACI,MAAM,CACZD,QAAQ,CACT,GACDA,QAAQ,CAACE,KAAiB,CACjC,CAAA;AACL,CAAA;AAEO,SAASV,gBAAgB,CAC9BK,OAAsC,GAAG,EAAE,EAC3CR,WAAyB,EACT;EAChB,MAAMO,aAAa,GAAGL,kCAAc,CAACF,WAAW,CAAC,CAACc,gBAAgB,EAAE,CAAA;AACpE,EAAA,MAAMC,UAAU,GAAGC,gBAAK,CAACC,MAAM,CAACT,OAAO,CAAC,CAAA;AACxC,EAAA,MAAMU,MAAM,GAAGF,gBAAK,CAACC,MAAM,EAAkB,CAAA;AAC7C,EAAA,IAAI,CAACC,MAAM,CAACC,OAAO,EAAE;IACnBD,MAAM,CAACC,OAAO,GAAGb,SAAS,CAACC,aAAa,EAAEC,OAAO,CAAC,CAAA;AACpD,GAAA;EAEAQ,gBAAK,CAACI,SAAS,CAAC,MAAM;IACpBL,UAAU,CAACI,OAAO,GAAGX,OAAO,CAAA;AAC9B,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOQ,gBAAK,CAACK,oBAAoB,CAC/BL,gBAAK,CAACM,WAAW,CACdC,aAAa,IACZhB,aAAa,CAACiB,SAAS,CAAC,MAAM;AAC5B,IAAA,MAAMC,UAAU,GAAGC,0BAAgB,CACjCR,MAAM,CAACC,OAAO,EACdb,SAAS,CAACC,aAAa,EAAEQ,UAAU,CAACI,OAAO,CAAC,CAC7C,CAAA;AACD,IAAA,IAAID,MAAM,CAACC,OAAO,KAAKM,UAAU,EAAE;MACjCP,MAAM,CAACC,OAAO,GAAGM,UAAU,CAAA;AAC3BE,MAAAA,uBAAa,CAACC,QAAQ,CAACL,aAAa,CAAC,CAAA;AACvC,KAAA;AACF,GAAC,CAAC,EACJ,CAAChB,aAAa,CAAC,CAChB,EACD,MAAMW,MAAM,CAACC,OAAO,EACpB,MAAMD,MAAM,CAACC,OAAO,CACrB,CAAA;AACH;;;;;"}
@@ -0,0 +1,37 @@
1
+ import * as React from 'react';
2
+ import { replaceEqualDeep, notifyManager } from '@tanstack/query-core';
3
+ import { useQueryClient } from './QueryClientProvider.mjs';
4
+
5
+ function useIsMutating(filters, queryClient) {
6
+ const client = useQueryClient(queryClient);
7
+ return useMutationState({
8
+ filters: {
9
+ ...filters,
10
+ status: 'pending'
11
+ }
12
+ }, client).length;
13
+ }
14
+ function getResult(mutationCache, options) {
15
+ return mutationCache.findAll(options.filters).map(mutation => options.select ? options.select(mutation) : mutation.state);
16
+ }
17
+ function useMutationState(options = {}, queryClient) {
18
+ const mutationCache = useQueryClient(queryClient).getMutationCache();
19
+ const optionsRef = React.useRef(options);
20
+ const result = React.useRef();
21
+ if (!result.current) {
22
+ result.current = getResult(mutationCache, options);
23
+ }
24
+ React.useEffect(() => {
25
+ optionsRef.current = options;
26
+ });
27
+ return React.useSyncExternalStore(React.useCallback(onStoreChange => mutationCache.subscribe(() => {
28
+ const nextResult = replaceEqualDeep(result.current, getResult(mutationCache, optionsRef.current));
29
+ if (result.current !== nextResult) {
30
+ result.current = nextResult;
31
+ notifyManager.schedule(onStoreChange);
32
+ }
33
+ }), [mutationCache]), () => result.current, () => result.current);
34
+ }
35
+
36
+ export { useIsMutating, useMutationState };
37
+ //# sourceMappingURL=useMutationState.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMutationState.mjs","sources":["../../src/useMutationState.ts"],"sourcesContent":["import * as React from 'react'\n\nimport type {\n MutationFilters,\n QueryClient,\n Mutation,\n MutationCache,\n RegisteredError,\n} from '@tanstack/query-core'\nimport { notifyManager, replaceEqualDeep } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { MutationState } from '@tanstack/query-core/build/lib/mutation'\n\nexport function useIsMutating(\n filters?: MutationFilters,\n queryClient?: QueryClient,\n): number {\n const client = useQueryClient(queryClient)\n return useMutationState(\n { filters: { ...filters, status: 'pending' } },\n client,\n ).length\n}\n\ntype MutationStateOptions<TResult> = {\n filters?: MutationFilters\n select?: (\n mutation: Mutation<unknown, RegisteredError, unknown, unknown>,\n ) => TResult\n}\n\nfunction getResult<TResult = MutationState>(\n mutationCache: MutationCache,\n options: MutationStateOptions<TResult>,\n): Array<TResult> {\n return mutationCache\n .findAll(options.filters)\n .map(\n (mutation): TResult =>\n (options.select\n ? options.select(\n mutation as Mutation<unknown, RegisteredError, unknown, unknown>,\n )\n : mutation.state) as TResult,\n )\n}\n\nexport function useMutationState<TResult = unknown>(\n options: MutationStateOptions<TResult> = {},\n queryClient?: QueryClient,\n): Array<TResult> {\n const mutationCache = useQueryClient(queryClient).getMutationCache()\n const optionsRef = React.useRef(options)\n const result = React.useRef<Array<TResult>>()\n if (!result.current) {\n result.current = getResult(mutationCache, options)\n }\n\n React.useEffect(() => {\n optionsRef.current = options\n })\n\n return React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) =>\n mutationCache.subscribe(() => {\n const nextResult = replaceEqualDeep(\n result.current,\n getResult(mutationCache, optionsRef.current),\n )\n if (result.current !== nextResult) {\n result.current = nextResult\n notifyManager.schedule(onStoreChange)\n }\n }),\n [mutationCache],\n ),\n () => result.current,\n () => result.current,\n )!\n}\n"],"names":["useIsMutating","filters","queryClient","client","useQueryClient","useMutationState","status","length","getResult","mutationCache","options","findAll","map","mutation","select","state","getMutationCache","optionsRef","React","useRef","result","current","useEffect","useSyncExternalStore","useCallback","onStoreChange","subscribe","nextResult","replaceEqualDeep","notifyManager","schedule"],"mappings":";;;;AAaO,SAASA,aAAa,CAC3BC,OAAyB,EACzBC,WAAyB,EACjB;AACR,EAAA,MAAMC,MAAM,GAAGC,cAAc,CAACF,WAAW,CAAC,CAAA;AAC1C,EAAA,OAAOG,gBAAgB,CACrB;AAAEJ,IAAAA,OAAO,EAAE;AAAE,MAAA,GAAGA,OAAO;AAAEK,MAAAA,MAAM,EAAE,SAAA;AAAU,KAAA;AAAE,GAAC,EAC9CH,MAAM,CACP,CAACI,MAAM,CAAA;AACV,CAAA;AASA,SAASC,SAAS,CAChBC,aAA4B,EAC5BC,OAAsC,EACtB;EAChB,OAAOD,aAAa,CACjBE,OAAO,CAACD,OAAO,CAACT,OAAO,CAAC,CACxBW,GAAG,CACDC,QAAQ,IACNH,OAAO,CAACI,MAAM,GACXJ,OAAO,CAACI,MAAM,CACZD,QAAQ,CACT,GACDA,QAAQ,CAACE,KAAiB,CACjC,CAAA;AACL,CAAA;AAEO,SAASV,gBAAgB,CAC9BK,OAAsC,GAAG,EAAE,EAC3CR,WAAyB,EACT;EAChB,MAAMO,aAAa,GAAGL,cAAc,CAACF,WAAW,CAAC,CAACc,gBAAgB,EAAE,CAAA;AACpE,EAAA,MAAMC,UAAU,GAAGC,KAAK,CAACC,MAAM,CAACT,OAAO,CAAC,CAAA;AACxC,EAAA,MAAMU,MAAM,GAAGF,KAAK,CAACC,MAAM,EAAkB,CAAA;AAC7C,EAAA,IAAI,CAACC,MAAM,CAACC,OAAO,EAAE;IACnBD,MAAM,CAACC,OAAO,GAAGb,SAAS,CAACC,aAAa,EAAEC,OAAO,CAAC,CAAA;AACpD,GAAA;EAEAQ,KAAK,CAACI,SAAS,CAAC,MAAM;IACpBL,UAAU,CAACI,OAAO,GAAGX,OAAO,CAAA;AAC9B,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOQ,KAAK,CAACK,oBAAoB,CAC/BL,KAAK,CAACM,WAAW,CACdC,aAAa,IACZhB,aAAa,CAACiB,SAAS,CAAC,MAAM;AAC5B,IAAA,MAAMC,UAAU,GAAGC,gBAAgB,CACjCR,MAAM,CAACC,OAAO,EACdb,SAAS,CAACC,aAAa,EAAEQ,UAAU,CAACI,OAAO,CAAC,CAC7C,CAAA;AACD,IAAA,IAAID,MAAM,CAACC,OAAO,KAAKM,UAAU,EAAE;MACjCP,MAAM,CAACC,OAAO,GAAGM,UAAU,CAAA;AAC3BE,MAAAA,aAAa,CAACC,QAAQ,CAACL,aAAa,CAAC,CAAA;AACvC,KAAA;AACF,GAAC,CAAC,EACJ,CAAChB,aAAa,CAAC,CAChB,EACD,MAAMW,MAAM,CAACC,OAAO,EACpB,MAAMD,MAAM,CAACC,OAAO,CACrB,CAAA;AACH;;;;"}