@tanstack/vue-query 4.39.0 → 4.39.2

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 (103) hide show
  1. package/build/lib/devtools/devtools.esm.js +162 -0
  2. package/build/lib/devtools/devtools.esm.js.map +1 -0
  3. package/build/lib/devtools/devtools.js +166 -0
  4. package/build/lib/devtools/devtools.js.map +1 -0
  5. package/build/lib/devtools/devtools.mjs +162 -0
  6. package/build/lib/devtools/devtools.mjs.map +1 -0
  7. package/build/lib/devtools/utils.esm.js +103 -0
  8. package/build/lib/devtools/utils.esm.js.map +1 -0
  9. package/build/lib/devtools/utils.js +111 -0
  10. package/build/lib/devtools/utils.js.map +1 -0
  11. package/build/lib/devtools/utils.mjs +103 -0
  12. package/build/lib/devtools/utils.mjs.map +1 -0
  13. package/build/lib/index.esm.js +14 -0
  14. package/build/lib/index.esm.js.map +1 -0
  15. package/build/lib/index.js +39 -0
  16. package/build/lib/index.js.map +1 -0
  17. package/build/lib/index.mjs +14 -0
  18. package/build/lib/index.mjs.map +1 -0
  19. package/build/lib/mutationCache.esm.js +16 -0
  20. package/build/lib/mutationCache.esm.js.map +1 -0
  21. package/build/lib/mutationCache.js +20 -0
  22. package/build/lib/mutationCache.js.map +1 -0
  23. package/build/lib/mutationCache.mjs +16 -0
  24. package/build/lib/mutationCache.mjs.map +1 -0
  25. package/build/lib/queryCache.esm.js +30 -0
  26. package/build/lib/queryCache.esm.js.map +1 -0
  27. package/build/lib/queryCache.js +34 -0
  28. package/build/lib/queryCache.js.map +1 -0
  29. package/build/lib/queryCache.mjs +30 -0
  30. package/build/lib/queryCache.mjs.map +1 -0
  31. package/build/lib/queryClient.esm.js +175 -0
  32. package/build/lib/queryClient.esm.js.map +1 -0
  33. package/build/lib/queryClient.js +179 -0
  34. package/build/lib/queryClient.js.map +1 -0
  35. package/build/lib/queryClient.mjs +175 -0
  36. package/build/lib/queryClient.mjs.map +1 -0
  37. package/build/lib/types.d.ts +0 -1
  38. package/build/lib/useBaseQuery.esm.js +125 -0
  39. package/build/lib/useBaseQuery.esm.js.map +1 -0
  40. package/build/lib/useBaseQuery.js +130 -0
  41. package/build/lib/useBaseQuery.js.map +1 -0
  42. package/build/lib/useBaseQuery.mjs +125 -0
  43. package/build/lib/useBaseQuery.mjs.map +1 -0
  44. package/build/lib/useInfiniteQuery.esm.js +10 -0
  45. package/build/lib/useInfiniteQuery.esm.js.map +1 -0
  46. package/build/lib/useInfiniteQuery.js +14 -0
  47. package/build/lib/useInfiniteQuery.js.map +1 -0
  48. package/build/lib/useInfiniteQuery.mjs +10 -0
  49. package/build/lib/useInfiniteQuery.mjs.map +1 -0
  50. package/build/lib/useIsFetching.esm.js +47 -0
  51. package/build/lib/useIsFetching.esm.js.map +1 -0
  52. package/build/lib/useIsFetching.js +52 -0
  53. package/build/lib/useIsFetching.js.map +1 -0
  54. package/build/lib/useIsFetching.mjs +47 -0
  55. package/build/lib/useIsFetching.mjs.map +1 -0
  56. package/build/lib/useIsMutating.esm.js +47 -0
  57. package/build/lib/useIsMutating.esm.js.map +1 -0
  58. package/build/lib/useIsMutating.js +52 -0
  59. package/build/lib/useIsMutating.js.map +1 -0
  60. package/build/lib/useIsMutating.mjs +47 -0
  61. package/build/lib/useIsMutating.mjs.map +1 -0
  62. package/build/lib/useMutation.d.ts +2 -2
  63. package/build/lib/useMutation.esm.js +77 -0
  64. package/build/lib/useMutation.esm.js.map +1 -0
  65. package/build/lib/useMutation.js +82 -0
  66. package/build/lib/useMutation.js.map +1 -0
  67. package/build/lib/useMutation.mjs +77 -0
  68. package/build/lib/useMutation.mjs.map +1 -0
  69. package/build/lib/useQueries.esm.js +72 -0
  70. package/build/lib/useQueries.esm.js.map +1 -0
  71. package/build/lib/useQueries.js +76 -0
  72. package/build/lib/useQueries.js.map +1 -0
  73. package/build/lib/useQueries.mjs +72 -0
  74. package/build/lib/useQueries.mjs.map +1 -0
  75. package/build/lib/useQuery.esm.js +10 -0
  76. package/build/lib/useQuery.esm.js.map +1 -0
  77. package/build/lib/useQuery.js +14 -0
  78. package/build/lib/useQuery.js.map +1 -0
  79. package/build/lib/useQuery.mjs +10 -0
  80. package/build/lib/useQuery.mjs.map +1 -0
  81. package/build/lib/useQueryClient.esm.js +24 -0
  82. package/build/lib/useQueryClient.esm.js.map +1 -0
  83. package/build/lib/useQueryClient.js +28 -0
  84. package/build/lib/useQueryClient.js.map +1 -0
  85. package/build/lib/useQueryClient.mjs +24 -0
  86. package/build/lib/useQueryClient.mjs.map +1 -0
  87. package/build/lib/utils.esm.js +67 -0
  88. package/build/lib/utils.esm.js.map +1 -0
  89. package/build/lib/utils.js +78 -0
  90. package/build/lib/utils.js.map +1 -0
  91. package/build/lib/utils.mjs +67 -0
  92. package/build/lib/utils.mjs.map +1 -0
  93. package/build/lib/vueQueryPlugin.esm.js +101 -0
  94. package/build/lib/vueQueryPlugin.esm.js.map +1 -0
  95. package/build/lib/vueQueryPlugin.js +105 -0
  96. package/build/lib/vueQueryPlugin.js.map +1 -0
  97. package/build/lib/vueQueryPlugin.mjs +101 -0
  98. package/build/lib/vueQueryPlugin.mjs.map +1 -0
  99. package/build/umd/index.development.js +5246 -0
  100. package/build/umd/index.development.js.map +1 -0
  101. package/build/umd/index.production.js +2 -0
  102. package/build/umd/index.production.js.map +1 -0
  103. package/package.json +2 -2
@@ -0,0 +1,47 @@
1
+ import { getCurrentScope, computed, ref, watchEffect, onScopeDispose, unref } from 'vue-demi';
2
+ import { useQueryClient } from './useQueryClient.esm.js';
3
+ import { isQueryKey, cloneDeepUnref } from './utils.esm.js';
4
+
5
+ function useIsFetching(arg1, arg2) {
6
+ var _filters$value$queryC;
7
+
8
+ if (process.env.NODE_ENV === 'development') {
9
+ if (!getCurrentScope()) {
10
+ console.warn('vue-query composables like "useQuery()" should only be used inside a "setup()" function or a running effect scope. They might otherwise lead to memory leaks.');
11
+ }
12
+ }
13
+
14
+ const filters = computed(() => parseFilterArgs(arg1, arg2));
15
+ const queryClient = (_filters$value$queryC = filters.value.queryClient) != null ? _filters$value$queryC : useQueryClient(filters.value.queryClientKey);
16
+ const isFetching = ref();
17
+
18
+ const listener = () => {
19
+ isFetching.value = queryClient.isFetching(filters);
20
+ };
21
+
22
+ const unsubscribe = queryClient.getQueryCache().subscribe(listener);
23
+ watchEffect(listener);
24
+ onScopeDispose(() => {
25
+ unsubscribe();
26
+ });
27
+ return isFetching;
28
+ }
29
+ function parseFilterArgs(arg1, arg2 = {}) {
30
+ const plainArg1 = unref(arg1);
31
+ const plainArg2 = unref(arg2);
32
+ let options = plainArg1;
33
+
34
+ if (isQueryKey(plainArg1)) {
35
+ options = { ...plainArg2,
36
+ queryKey: plainArg1
37
+ };
38
+ } else {
39
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
40
+ options = plainArg1 || {};
41
+ }
42
+
43
+ return cloneDeepUnref(options);
44
+ }
45
+
46
+ export { parseFilterArgs, useIsFetching };
47
+ //# sourceMappingURL=useIsFetching.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsFetching.esm.js","sources":["../../src/useIsFetching.ts"],"sourcesContent":["import {\n computed,\n getCurrentScope,\n onScopeDispose,\n ref,\n unref,\n watchEffect,\n} from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, isQueryKey } from './utils'\nimport type { Ref } from 'vue-demi'\nimport type { QueryFilters as QF, QueryKey } from '@tanstack/query-core'\n\nimport type { MaybeRef, MaybeRefDeep, WithQueryClientKey } from './types'\n\nexport type QueryFilters = MaybeRefDeep<WithQueryClientKey<QF>>\n\nexport function useIsFetching(filters?: QueryFilters): Ref<number>\nexport function useIsFetching(\n queryKey?: MaybeRef<QueryKey>,\n filters?: Omit<QueryFilters, 'queryKey'>,\n): Ref<number>\nexport function useIsFetching(\n arg1?: MaybeRef<QueryKey> | QueryFilters,\n arg2?: Omit<QueryFilters, 'queryKey'>,\n): Ref<number> {\n if (process.env.NODE_ENV === 'development') {\n if (!getCurrentScope()) {\n console.warn(\n 'vue-query composables like \"useQuery()\" should only be used inside a \"setup()\" function or a running effect scope. They might otherwise lead to memory leaks.',\n )\n }\n }\n\n const filters = computed(() => parseFilterArgs(arg1, arg2))\n const queryClient =\n filters.value.queryClient ?? useQueryClient(filters.value.queryClientKey)\n\n const isFetching = ref()\n\n const listener = () => {\n isFetching.value = queryClient.isFetching(filters)\n }\n\n const unsubscribe = queryClient.getQueryCache().subscribe(listener)\n\n watchEffect(listener)\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return isFetching\n}\n\nexport function parseFilterArgs(\n arg1?: MaybeRef<QueryKey> | QueryFilters,\n arg2: QueryFilters = {},\n) {\n const plainArg1 = unref(arg1)\n const plainArg2 = unref(arg2)\n\n let options = plainArg1\n\n if (isQueryKey(plainArg1)) {\n options = { ...plainArg2, queryKey: plainArg1 }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n options = plainArg1 || {}\n }\n\n return cloneDeepUnref(options) as WithQueryClientKey<QF>\n}\n"],"names":["useIsFetching","arg1","arg2","process","env","NODE_ENV","getCurrentScope","console","warn","filters","computed","parseFilterArgs","queryClient","value","useQueryClient","queryClientKey","isFetching","ref","listener","unsubscribe","getQueryCache","subscribe","watchEffect","onScopeDispose","plainArg1","unref","plainArg2","options","isQueryKey","queryKey","cloneDeepUnref"],"mappings":";;;;AAsBO,SAASA,aAAT,CACLC,IADK,EAELC,IAFK,EAGQ;AAAA,EAAA,IAAA,qBAAA,CAAA;;AACb,EAAA,IAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;IAC1C,IAAI,CAACC,eAAe,EAApB,EAAwB;MACtBC,OAAO,CAACC,IAAR,CACE,+JADF,CAAA,CAAA;AAGD,KAAA;AACF,GAAA;;EAED,MAAMC,OAAO,GAAGC,QAAQ,CAAC,MAAMC,eAAe,CAACV,IAAD,EAAOC,IAAP,CAAtB,CAAxB,CAAA;AACA,EAAA,MAAMU,WAAW,GAAA,CAAA,qBAAA,GACfH,OAAO,CAACI,KAAR,CAAcD,WADC,KACcE,IAAAA,GAAAA,qBAAAA,GAAAA,cAAc,CAACL,OAAO,CAACI,KAAR,CAAcE,cAAf,CAD7C,CAAA;EAGA,MAAMC,UAAU,GAAGC,GAAG,EAAtB,CAAA;;EAEA,MAAMC,QAAQ,GAAG,MAAM;IACrBF,UAAU,CAACH,KAAX,GAAmBD,WAAW,CAACI,UAAZ,CAAuBP,OAAvB,CAAnB,CAAA;GADF,CAAA;;EAIA,MAAMU,WAAW,GAAGP,WAAW,CAACQ,aAAZ,EAA4BC,CAAAA,SAA5B,CAAsCH,QAAtC,CAApB,CAAA;EAEAI,WAAW,CAACJ,QAAD,CAAX,CAAA;AAEAK,EAAAA,cAAc,CAAC,MAAM;IACnBJ,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;AAIA,EAAA,OAAOH,UAAP,CAAA;AACD,CAAA;AAEM,SAASL,eAAT,CACLV,IADK,EAELC,IAAkB,GAAG,EAFhB,EAGL;AACA,EAAA,MAAMsB,SAAS,GAAGC,KAAK,CAACxB,IAAD,CAAvB,CAAA;AACA,EAAA,MAAMyB,SAAS,GAAGD,KAAK,CAACvB,IAAD,CAAvB,CAAA;EAEA,IAAIyB,OAAO,GAAGH,SAAd,CAAA;;AAEA,EAAA,IAAII,UAAU,CAACJ,SAAD,CAAd,EAA2B;IACzBG,OAAO,GAAG,EAAE,GAAGD,SAAL;AAAgBG,MAAAA,QAAQ,EAAEL,SAAAA;KAApC,CAAA;AACD,GAFD,MAEO;AACL;IACAG,OAAO,GAAGH,SAAS,IAAI,EAAvB,CAAA;AACD,GAAA;;EAED,OAAOM,cAAc,CAACH,OAAD,CAArB,CAAA;AACD;;;;"}
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vueDemi = require('vue-demi');
6
+ var useQueryClient = require('./useQueryClient.js');
7
+ var utils = require('./utils.js');
8
+
9
+ function useIsFetching(arg1, arg2) {
10
+ var _filters$value$queryC;
11
+
12
+ if (process.env.NODE_ENV === 'development') {
13
+ if (!vueDemi.getCurrentScope()) {
14
+ console.warn('vue-query composables like "useQuery()" should only be used inside a "setup()" function or a running effect scope. They might otherwise lead to memory leaks.');
15
+ }
16
+ }
17
+
18
+ const filters = vueDemi.computed(() => parseFilterArgs(arg1, arg2));
19
+ const queryClient = (_filters$value$queryC = filters.value.queryClient) != null ? _filters$value$queryC : useQueryClient.useQueryClient(filters.value.queryClientKey);
20
+ const isFetching = vueDemi.ref();
21
+
22
+ const listener = () => {
23
+ isFetching.value = queryClient.isFetching(filters);
24
+ };
25
+
26
+ const unsubscribe = queryClient.getQueryCache().subscribe(listener);
27
+ vueDemi.watchEffect(listener);
28
+ vueDemi.onScopeDispose(() => {
29
+ unsubscribe();
30
+ });
31
+ return isFetching;
32
+ }
33
+ function parseFilterArgs(arg1, arg2 = {}) {
34
+ const plainArg1 = vueDemi.unref(arg1);
35
+ const plainArg2 = vueDemi.unref(arg2);
36
+ let options = plainArg1;
37
+
38
+ if (utils.isQueryKey(plainArg1)) {
39
+ options = { ...plainArg2,
40
+ queryKey: plainArg1
41
+ };
42
+ } else {
43
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
44
+ options = plainArg1 || {};
45
+ }
46
+
47
+ return utils.cloneDeepUnref(options);
48
+ }
49
+
50
+ exports.parseFilterArgs = parseFilterArgs;
51
+ exports.useIsFetching = useIsFetching;
52
+ //# sourceMappingURL=useIsFetching.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsFetching.js","sources":["../../src/useIsFetching.ts"],"sourcesContent":["import {\n computed,\n getCurrentScope,\n onScopeDispose,\n ref,\n unref,\n watchEffect,\n} from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, isQueryKey } from './utils'\nimport type { Ref } from 'vue-demi'\nimport type { QueryFilters as QF, QueryKey } from '@tanstack/query-core'\n\nimport type { MaybeRef, MaybeRefDeep, WithQueryClientKey } from './types'\n\nexport type QueryFilters = MaybeRefDeep<WithQueryClientKey<QF>>\n\nexport function useIsFetching(filters?: QueryFilters): Ref<number>\nexport function useIsFetching(\n queryKey?: MaybeRef<QueryKey>,\n filters?: Omit<QueryFilters, 'queryKey'>,\n): Ref<number>\nexport function useIsFetching(\n arg1?: MaybeRef<QueryKey> | QueryFilters,\n arg2?: Omit<QueryFilters, 'queryKey'>,\n): Ref<number> {\n if (process.env.NODE_ENV === 'development') {\n if (!getCurrentScope()) {\n console.warn(\n 'vue-query composables like \"useQuery()\" should only be used inside a \"setup()\" function or a running effect scope. They might otherwise lead to memory leaks.',\n )\n }\n }\n\n const filters = computed(() => parseFilterArgs(arg1, arg2))\n const queryClient =\n filters.value.queryClient ?? useQueryClient(filters.value.queryClientKey)\n\n const isFetching = ref()\n\n const listener = () => {\n isFetching.value = queryClient.isFetching(filters)\n }\n\n const unsubscribe = queryClient.getQueryCache().subscribe(listener)\n\n watchEffect(listener)\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return isFetching\n}\n\nexport function parseFilterArgs(\n arg1?: MaybeRef<QueryKey> | QueryFilters,\n arg2: QueryFilters = {},\n) {\n const plainArg1 = unref(arg1)\n const plainArg2 = unref(arg2)\n\n let options = plainArg1\n\n if (isQueryKey(plainArg1)) {\n options = { ...plainArg2, queryKey: plainArg1 }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n options = plainArg1 || {}\n }\n\n return cloneDeepUnref(options) as WithQueryClientKey<QF>\n}\n"],"names":["useIsFetching","arg1","arg2","process","env","NODE_ENV","getCurrentScope","console","warn","filters","computed","parseFilterArgs","queryClient","value","useQueryClient","queryClientKey","isFetching","ref","listener","unsubscribe","getQueryCache","subscribe","watchEffect","onScopeDispose","plainArg1","unref","plainArg2","options","isQueryKey","queryKey","cloneDeepUnref"],"mappings":";;;;;;;;AAsBO,SAASA,aAAT,CACLC,IADK,EAELC,IAFK,EAGQ;AAAA,EAAA,IAAA,qBAAA,CAAA;;AACb,EAAA,IAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;IAC1C,IAAI,CAACC,uBAAe,EAApB,EAAwB;MACtBC,OAAO,CAACC,IAAR,CACE,+JADF,CAAA,CAAA;AAGD,KAAA;AACF,GAAA;;EAED,MAAMC,OAAO,GAAGC,gBAAQ,CAAC,MAAMC,eAAe,CAACV,IAAD,EAAOC,IAAP,CAAtB,CAAxB,CAAA;AACA,EAAA,MAAMU,WAAW,GAAA,CAAA,qBAAA,GACfH,OAAO,CAACI,KAAR,CAAcD,WADC,KACcE,IAAAA,GAAAA,qBAAAA,GAAAA,6BAAc,CAACL,OAAO,CAACI,KAAR,CAAcE,cAAf,CAD7C,CAAA;EAGA,MAAMC,UAAU,GAAGC,WAAG,EAAtB,CAAA;;EAEA,MAAMC,QAAQ,GAAG,MAAM;IACrBF,UAAU,CAACH,KAAX,GAAmBD,WAAW,CAACI,UAAZ,CAAuBP,OAAvB,CAAnB,CAAA;GADF,CAAA;;EAIA,MAAMU,WAAW,GAAGP,WAAW,CAACQ,aAAZ,EAA4BC,CAAAA,SAA5B,CAAsCH,QAAtC,CAApB,CAAA;EAEAI,mBAAW,CAACJ,QAAD,CAAX,CAAA;AAEAK,EAAAA,sBAAc,CAAC,MAAM;IACnBJ,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;AAIA,EAAA,OAAOH,UAAP,CAAA;AACD,CAAA;AAEM,SAASL,eAAT,CACLV,IADK,EAELC,IAAkB,GAAG,EAFhB,EAGL;AACA,EAAA,MAAMsB,SAAS,GAAGC,aAAK,CAACxB,IAAD,CAAvB,CAAA;AACA,EAAA,MAAMyB,SAAS,GAAGD,aAAK,CAACvB,IAAD,CAAvB,CAAA;EAEA,IAAIyB,OAAO,GAAGH,SAAd,CAAA;;AAEA,EAAA,IAAII,gBAAU,CAACJ,SAAD,CAAd,EAA2B;IACzBG,OAAO,GAAG,EAAE,GAAGD,SAAL;AAAgBG,MAAAA,QAAQ,EAAEL,SAAAA;KAApC,CAAA;AACD,GAFD,MAEO;AACL;IACAG,OAAO,GAAGH,SAAS,IAAI,EAAvB,CAAA;AACD,GAAA;;EAED,OAAOM,oBAAc,CAACH,OAAD,CAArB,CAAA;AACD;;;;;"}
@@ -0,0 +1,47 @@
1
+ import { getCurrentScope, computed, ref, watchEffect, onScopeDispose, unref } from 'vue-demi';
2
+ import { useQueryClient } from './useQueryClient.mjs';
3
+ import { isQueryKey, cloneDeepUnref } from './utils.mjs';
4
+
5
+ function useIsFetching(arg1, arg2) {
6
+ var _filters$value$queryC;
7
+
8
+ if (process.env.NODE_ENV === 'development') {
9
+ if (!getCurrentScope()) {
10
+ console.warn('vue-query composables like "useQuery()" should only be used inside a "setup()" function or a running effect scope. They might otherwise lead to memory leaks.');
11
+ }
12
+ }
13
+
14
+ const filters = computed(() => parseFilterArgs(arg1, arg2));
15
+ const queryClient = (_filters$value$queryC = filters.value.queryClient) != null ? _filters$value$queryC : useQueryClient(filters.value.queryClientKey);
16
+ const isFetching = ref();
17
+
18
+ const listener = () => {
19
+ isFetching.value = queryClient.isFetching(filters);
20
+ };
21
+
22
+ const unsubscribe = queryClient.getQueryCache().subscribe(listener);
23
+ watchEffect(listener);
24
+ onScopeDispose(() => {
25
+ unsubscribe();
26
+ });
27
+ return isFetching;
28
+ }
29
+ function parseFilterArgs(arg1, arg2 = {}) {
30
+ const plainArg1 = unref(arg1);
31
+ const plainArg2 = unref(arg2);
32
+ let options = plainArg1;
33
+
34
+ if (isQueryKey(plainArg1)) {
35
+ options = { ...plainArg2,
36
+ queryKey: plainArg1
37
+ };
38
+ } else {
39
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
40
+ options = plainArg1 || {};
41
+ }
42
+
43
+ return cloneDeepUnref(options);
44
+ }
45
+
46
+ export { parseFilterArgs, useIsFetching };
47
+ //# sourceMappingURL=useIsFetching.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsFetching.mjs","sources":["../../src/useIsFetching.ts"],"sourcesContent":["import {\n computed,\n getCurrentScope,\n onScopeDispose,\n ref,\n unref,\n watchEffect,\n} from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, isQueryKey } from './utils'\nimport type { Ref } from 'vue-demi'\nimport type { QueryFilters as QF, QueryKey } from '@tanstack/query-core'\n\nimport type { MaybeRef, MaybeRefDeep, WithQueryClientKey } from './types'\n\nexport type QueryFilters = MaybeRefDeep<WithQueryClientKey<QF>>\n\nexport function useIsFetching(filters?: QueryFilters): Ref<number>\nexport function useIsFetching(\n queryKey?: MaybeRef<QueryKey>,\n filters?: Omit<QueryFilters, 'queryKey'>,\n): Ref<number>\nexport function useIsFetching(\n arg1?: MaybeRef<QueryKey> | QueryFilters,\n arg2?: Omit<QueryFilters, 'queryKey'>,\n): Ref<number> {\n if (process.env.NODE_ENV === 'development') {\n if (!getCurrentScope()) {\n console.warn(\n 'vue-query composables like \"useQuery()\" should only be used inside a \"setup()\" function or a running effect scope. They might otherwise lead to memory leaks.',\n )\n }\n }\n\n const filters = computed(() => parseFilterArgs(arg1, arg2))\n const queryClient =\n filters.value.queryClient ?? useQueryClient(filters.value.queryClientKey)\n\n const isFetching = ref()\n\n const listener = () => {\n isFetching.value = queryClient.isFetching(filters)\n }\n\n const unsubscribe = queryClient.getQueryCache().subscribe(listener)\n\n watchEffect(listener)\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return isFetching\n}\n\nexport function parseFilterArgs(\n arg1?: MaybeRef<QueryKey> | QueryFilters,\n arg2: QueryFilters = {},\n) {\n const plainArg1 = unref(arg1)\n const plainArg2 = unref(arg2)\n\n let options = plainArg1\n\n if (isQueryKey(plainArg1)) {\n options = { ...plainArg2, queryKey: plainArg1 }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n options = plainArg1 || {}\n }\n\n return cloneDeepUnref(options) as WithQueryClientKey<QF>\n}\n"],"names":["useIsFetching","arg1","arg2","process","env","NODE_ENV","getCurrentScope","console","warn","filters","computed","parseFilterArgs","queryClient","value","useQueryClient","queryClientKey","isFetching","ref","listener","unsubscribe","getQueryCache","subscribe","watchEffect","onScopeDispose","plainArg1","unref","plainArg2","options","isQueryKey","queryKey","cloneDeepUnref"],"mappings":";;;;AAsBO,SAASA,aAAT,CACLC,IADK,EAELC,IAFK,EAGQ;AAAA,EAAA,IAAA,qBAAA,CAAA;;AACb,EAAA,IAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;IAC1C,IAAI,CAACC,eAAe,EAApB,EAAwB;MACtBC,OAAO,CAACC,IAAR,CACE,+JADF,CAAA,CAAA;AAGD,KAAA;AACF,GAAA;;EAED,MAAMC,OAAO,GAAGC,QAAQ,CAAC,MAAMC,eAAe,CAACV,IAAD,EAAOC,IAAP,CAAtB,CAAxB,CAAA;AACA,EAAA,MAAMU,WAAW,GAAA,CAAA,qBAAA,GACfH,OAAO,CAACI,KAAR,CAAcD,WADC,KACcE,IAAAA,GAAAA,qBAAAA,GAAAA,cAAc,CAACL,OAAO,CAACI,KAAR,CAAcE,cAAf,CAD7C,CAAA;EAGA,MAAMC,UAAU,GAAGC,GAAG,EAAtB,CAAA;;EAEA,MAAMC,QAAQ,GAAG,MAAM;IACrBF,UAAU,CAACH,KAAX,GAAmBD,WAAW,CAACI,UAAZ,CAAuBP,OAAvB,CAAnB,CAAA;GADF,CAAA;;EAIA,MAAMU,WAAW,GAAGP,WAAW,CAACQ,aAAZ,EAA4BC,CAAAA,SAA5B,CAAsCH,QAAtC,CAApB,CAAA;EAEAI,WAAW,CAACJ,QAAD,CAAX,CAAA;AAEAK,EAAAA,cAAc,CAAC,MAAM;IACnBJ,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;AAIA,EAAA,OAAOH,UAAP,CAAA;AACD,CAAA;AAEM,SAASL,eAAT,CACLV,IADK,EAELC,IAAkB,GAAG,EAFhB,EAGL;AACA,EAAA,MAAMsB,SAAS,GAAGC,KAAK,CAACxB,IAAD,CAAvB,CAAA;AACA,EAAA,MAAMyB,SAAS,GAAGD,KAAK,CAACvB,IAAD,CAAvB,CAAA;EAEA,IAAIyB,OAAO,GAAGH,SAAd,CAAA;;AAEA,EAAA,IAAII,UAAU,CAACJ,SAAD,CAAd,EAA2B;IACzBG,OAAO,GAAG,EAAE,GAAGD,SAAL;AAAgBG,MAAAA,QAAQ,EAAEL,SAAAA;KAApC,CAAA;AACD,GAFD,MAEO;AACL;IACAG,OAAO,GAAGH,SAAS,IAAI,EAAvB,CAAA;AACD,GAAA;;EAED,OAAOM,cAAc,CAACH,OAAD,CAArB,CAAA;AACD;;;;"}
@@ -0,0 +1,47 @@
1
+ import { getCurrentScope, computed, ref, watchEffect, onScopeDispose, unref } from 'vue-demi';
2
+ import { useQueryClient } from './useQueryClient.esm.js';
3
+ import { isQueryKey, cloneDeepUnref } from './utils.esm.js';
4
+
5
+ function useIsMutating(arg1, arg2) {
6
+ var _filters$value$queryC;
7
+
8
+ if (process.env.NODE_ENV === 'development') {
9
+ if (!getCurrentScope()) {
10
+ console.warn('vue-query composables like "useQuery()" should only be used inside a "setup()" function or a running effect scope. They might otherwise lead to memory leaks.');
11
+ }
12
+ }
13
+
14
+ const filters = computed(() => parseFilterArgs(arg1, arg2));
15
+ const queryClient = (_filters$value$queryC = filters.value.queryClient) != null ? _filters$value$queryC : useQueryClient(filters.value.queryClientKey);
16
+ const isMutating = ref();
17
+
18
+ const listener = () => {
19
+ isMutating.value = queryClient.isMutating(filters);
20
+ };
21
+
22
+ const unsubscribe = queryClient.getMutationCache().subscribe(listener);
23
+ watchEffect(listener);
24
+ onScopeDispose(() => {
25
+ unsubscribe();
26
+ });
27
+ return isMutating;
28
+ }
29
+ function parseFilterArgs(arg1, arg2 = {}) {
30
+ const plainArg1 = unref(arg1);
31
+ const plainArg2 = unref(arg2);
32
+ let options = plainArg1;
33
+
34
+ if (isQueryKey(plainArg1)) {
35
+ options = { ...plainArg2,
36
+ mutationKey: plainArg1
37
+ };
38
+ } else {
39
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
40
+ options = plainArg1 || {};
41
+ }
42
+
43
+ return cloneDeepUnref(options);
44
+ }
45
+
46
+ export { parseFilterArgs, useIsMutating };
47
+ //# sourceMappingURL=useIsMutating.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsMutating.esm.js","sources":["../../src/useIsMutating.ts"],"sourcesContent":["import {\n computed,\n getCurrentScope,\n onScopeDispose,\n ref,\n unref,\n watchEffect,\n} from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, isQueryKey } from './utils'\nimport type { Ref } from 'vue-demi'\nimport type { MutationFilters as MF, MutationKey } from '@tanstack/query-core'\n\nimport type { MaybeRef, MaybeRefDeep, WithQueryClientKey } from './types'\n\nexport type MutationFilters = MaybeRefDeep<WithQueryClientKey<MF>>\n\nexport function useIsMutating(filters?: MutationFilters): Ref<number>\nexport function useIsMutating(\n mutationKey?: MaybeRef<MutationKey>,\n filters?: Omit<MutationFilters, 'mutationKey'>,\n): Ref<number>\nexport function useIsMutating(\n arg1?: MaybeRef<MutationKey> | MutationFilters,\n arg2?: Omit<MutationFilters, 'mutationKey'>,\n): Ref<number> {\n if (process.env.NODE_ENV === 'development') {\n if (!getCurrentScope()) {\n console.warn(\n 'vue-query composables like \"useQuery()\" should only be used inside a \"setup()\" function or a running effect scope. They might otherwise lead to memory leaks.',\n )\n }\n }\n\n const filters = computed(() => parseFilterArgs(arg1, arg2))\n const queryClient =\n filters.value.queryClient ?? useQueryClient(filters.value.queryClientKey)\n\n const isMutating = ref()\n\n const listener = () => {\n isMutating.value = queryClient.isMutating(filters)\n }\n\n const unsubscribe = queryClient.getMutationCache().subscribe(listener)\n\n watchEffect(listener)\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return isMutating\n}\n\nexport function parseFilterArgs(\n arg1?: MaybeRef<MutationKey> | MutationFilters,\n arg2: MutationFilters = {},\n) {\n const plainArg1 = unref(arg1)\n const plainArg2 = unref(arg2)\n\n let options = plainArg1\n\n if (isQueryKey(plainArg1)) {\n options = { ...plainArg2, mutationKey: plainArg1 }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n options = plainArg1 || {}\n }\n\n return cloneDeepUnref(options) as WithQueryClientKey<MF>\n}\n"],"names":["useIsMutating","arg1","arg2","process","env","NODE_ENV","getCurrentScope","console","warn","filters","computed","parseFilterArgs","queryClient","value","useQueryClient","queryClientKey","isMutating","ref","listener","unsubscribe","getMutationCache","subscribe","watchEffect","onScopeDispose","plainArg1","unref","plainArg2","options","isQueryKey","mutationKey","cloneDeepUnref"],"mappings":";;;;AAsBO,SAASA,aAAT,CACLC,IADK,EAELC,IAFK,EAGQ;AAAA,EAAA,IAAA,qBAAA,CAAA;;AACb,EAAA,IAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;IAC1C,IAAI,CAACC,eAAe,EAApB,EAAwB;MACtBC,OAAO,CAACC,IAAR,CACE,+JADF,CAAA,CAAA;AAGD,KAAA;AACF,GAAA;;EAED,MAAMC,OAAO,GAAGC,QAAQ,CAAC,MAAMC,eAAe,CAACV,IAAD,EAAOC,IAAP,CAAtB,CAAxB,CAAA;AACA,EAAA,MAAMU,WAAW,GAAA,CAAA,qBAAA,GACfH,OAAO,CAACI,KAAR,CAAcD,WADC,KACcE,IAAAA,GAAAA,qBAAAA,GAAAA,cAAc,CAACL,OAAO,CAACI,KAAR,CAAcE,cAAf,CAD7C,CAAA;EAGA,MAAMC,UAAU,GAAGC,GAAG,EAAtB,CAAA;;EAEA,MAAMC,QAAQ,GAAG,MAAM;IACrBF,UAAU,CAACH,KAAX,GAAmBD,WAAW,CAACI,UAAZ,CAAuBP,OAAvB,CAAnB,CAAA;GADF,CAAA;;EAIA,MAAMU,WAAW,GAAGP,WAAW,CAACQ,gBAAZ,EAA+BC,CAAAA,SAA/B,CAAyCH,QAAzC,CAApB,CAAA;EAEAI,WAAW,CAACJ,QAAD,CAAX,CAAA;AAEAK,EAAAA,cAAc,CAAC,MAAM;IACnBJ,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;AAIA,EAAA,OAAOH,UAAP,CAAA;AACD,CAAA;AAEM,SAASL,eAAT,CACLV,IADK,EAELC,IAAqB,GAAG,EAFnB,EAGL;AACA,EAAA,MAAMsB,SAAS,GAAGC,KAAK,CAACxB,IAAD,CAAvB,CAAA;AACA,EAAA,MAAMyB,SAAS,GAAGD,KAAK,CAACvB,IAAD,CAAvB,CAAA;EAEA,IAAIyB,OAAO,GAAGH,SAAd,CAAA;;AAEA,EAAA,IAAII,UAAU,CAACJ,SAAD,CAAd,EAA2B;IACzBG,OAAO,GAAG,EAAE,GAAGD,SAAL;AAAgBG,MAAAA,WAAW,EAAEL,SAAAA;KAAvC,CAAA;AACD,GAFD,MAEO;AACL;IACAG,OAAO,GAAGH,SAAS,IAAI,EAAvB,CAAA;AACD,GAAA;;EAED,OAAOM,cAAc,CAACH,OAAD,CAArB,CAAA;AACD;;;;"}
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vueDemi = require('vue-demi');
6
+ var useQueryClient = require('./useQueryClient.js');
7
+ var utils = require('./utils.js');
8
+
9
+ function useIsMutating(arg1, arg2) {
10
+ var _filters$value$queryC;
11
+
12
+ if (process.env.NODE_ENV === 'development') {
13
+ if (!vueDemi.getCurrentScope()) {
14
+ console.warn('vue-query composables like "useQuery()" should only be used inside a "setup()" function or a running effect scope. They might otherwise lead to memory leaks.');
15
+ }
16
+ }
17
+
18
+ const filters = vueDemi.computed(() => parseFilterArgs(arg1, arg2));
19
+ const queryClient = (_filters$value$queryC = filters.value.queryClient) != null ? _filters$value$queryC : useQueryClient.useQueryClient(filters.value.queryClientKey);
20
+ const isMutating = vueDemi.ref();
21
+
22
+ const listener = () => {
23
+ isMutating.value = queryClient.isMutating(filters);
24
+ };
25
+
26
+ const unsubscribe = queryClient.getMutationCache().subscribe(listener);
27
+ vueDemi.watchEffect(listener);
28
+ vueDemi.onScopeDispose(() => {
29
+ unsubscribe();
30
+ });
31
+ return isMutating;
32
+ }
33
+ function parseFilterArgs(arg1, arg2 = {}) {
34
+ const plainArg1 = vueDemi.unref(arg1);
35
+ const plainArg2 = vueDemi.unref(arg2);
36
+ let options = plainArg1;
37
+
38
+ if (utils.isQueryKey(plainArg1)) {
39
+ options = { ...plainArg2,
40
+ mutationKey: plainArg1
41
+ };
42
+ } else {
43
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
44
+ options = plainArg1 || {};
45
+ }
46
+
47
+ return utils.cloneDeepUnref(options);
48
+ }
49
+
50
+ exports.parseFilterArgs = parseFilterArgs;
51
+ exports.useIsMutating = useIsMutating;
52
+ //# sourceMappingURL=useIsMutating.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsMutating.js","sources":["../../src/useIsMutating.ts"],"sourcesContent":["import {\n computed,\n getCurrentScope,\n onScopeDispose,\n ref,\n unref,\n watchEffect,\n} from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, isQueryKey } from './utils'\nimport type { Ref } from 'vue-demi'\nimport type { MutationFilters as MF, MutationKey } from '@tanstack/query-core'\n\nimport type { MaybeRef, MaybeRefDeep, WithQueryClientKey } from './types'\n\nexport type MutationFilters = MaybeRefDeep<WithQueryClientKey<MF>>\n\nexport function useIsMutating(filters?: MutationFilters): Ref<number>\nexport function useIsMutating(\n mutationKey?: MaybeRef<MutationKey>,\n filters?: Omit<MutationFilters, 'mutationKey'>,\n): Ref<number>\nexport function useIsMutating(\n arg1?: MaybeRef<MutationKey> | MutationFilters,\n arg2?: Omit<MutationFilters, 'mutationKey'>,\n): Ref<number> {\n if (process.env.NODE_ENV === 'development') {\n if (!getCurrentScope()) {\n console.warn(\n 'vue-query composables like \"useQuery()\" should only be used inside a \"setup()\" function or a running effect scope. They might otherwise lead to memory leaks.',\n )\n }\n }\n\n const filters = computed(() => parseFilterArgs(arg1, arg2))\n const queryClient =\n filters.value.queryClient ?? useQueryClient(filters.value.queryClientKey)\n\n const isMutating = ref()\n\n const listener = () => {\n isMutating.value = queryClient.isMutating(filters)\n }\n\n const unsubscribe = queryClient.getMutationCache().subscribe(listener)\n\n watchEffect(listener)\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return isMutating\n}\n\nexport function parseFilterArgs(\n arg1?: MaybeRef<MutationKey> | MutationFilters,\n arg2: MutationFilters = {},\n) {\n const plainArg1 = unref(arg1)\n const plainArg2 = unref(arg2)\n\n let options = plainArg1\n\n if (isQueryKey(plainArg1)) {\n options = { ...plainArg2, mutationKey: plainArg1 }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n options = plainArg1 || {}\n }\n\n return cloneDeepUnref(options) as WithQueryClientKey<MF>\n}\n"],"names":["useIsMutating","arg1","arg2","process","env","NODE_ENV","getCurrentScope","console","warn","filters","computed","parseFilterArgs","queryClient","value","useQueryClient","queryClientKey","isMutating","ref","listener","unsubscribe","getMutationCache","subscribe","watchEffect","onScopeDispose","plainArg1","unref","plainArg2","options","isQueryKey","mutationKey","cloneDeepUnref"],"mappings":";;;;;;;;AAsBO,SAASA,aAAT,CACLC,IADK,EAELC,IAFK,EAGQ;AAAA,EAAA,IAAA,qBAAA,CAAA;;AACb,EAAA,IAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;IAC1C,IAAI,CAACC,uBAAe,EAApB,EAAwB;MACtBC,OAAO,CAACC,IAAR,CACE,+JADF,CAAA,CAAA;AAGD,KAAA;AACF,GAAA;;EAED,MAAMC,OAAO,GAAGC,gBAAQ,CAAC,MAAMC,eAAe,CAACV,IAAD,EAAOC,IAAP,CAAtB,CAAxB,CAAA;AACA,EAAA,MAAMU,WAAW,GAAA,CAAA,qBAAA,GACfH,OAAO,CAACI,KAAR,CAAcD,WADC,KACcE,IAAAA,GAAAA,qBAAAA,GAAAA,6BAAc,CAACL,OAAO,CAACI,KAAR,CAAcE,cAAf,CAD7C,CAAA;EAGA,MAAMC,UAAU,GAAGC,WAAG,EAAtB,CAAA;;EAEA,MAAMC,QAAQ,GAAG,MAAM;IACrBF,UAAU,CAACH,KAAX,GAAmBD,WAAW,CAACI,UAAZ,CAAuBP,OAAvB,CAAnB,CAAA;GADF,CAAA;;EAIA,MAAMU,WAAW,GAAGP,WAAW,CAACQ,gBAAZ,EAA+BC,CAAAA,SAA/B,CAAyCH,QAAzC,CAApB,CAAA;EAEAI,mBAAW,CAACJ,QAAD,CAAX,CAAA;AAEAK,EAAAA,sBAAc,CAAC,MAAM;IACnBJ,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;AAIA,EAAA,OAAOH,UAAP,CAAA;AACD,CAAA;AAEM,SAASL,eAAT,CACLV,IADK,EAELC,IAAqB,GAAG,EAFnB,EAGL;AACA,EAAA,MAAMsB,SAAS,GAAGC,aAAK,CAACxB,IAAD,CAAvB,CAAA;AACA,EAAA,MAAMyB,SAAS,GAAGD,aAAK,CAACvB,IAAD,CAAvB,CAAA;EAEA,IAAIyB,OAAO,GAAGH,SAAd,CAAA;;AAEA,EAAA,IAAII,gBAAU,CAACJ,SAAD,CAAd,EAA2B;IACzBG,OAAO,GAAG,EAAE,GAAGD,SAAL;AAAgBG,MAAAA,WAAW,EAAEL,SAAAA;KAAvC,CAAA;AACD,GAFD,MAEO;AACL;IACAG,OAAO,GAAGH,SAAS,IAAI,EAAvB,CAAA;AACD,GAAA;;EAED,OAAOM,oBAAc,CAACH,OAAD,CAArB,CAAA;AACD;;;;;"}
@@ -0,0 +1,47 @@
1
+ import { getCurrentScope, computed, ref, watchEffect, onScopeDispose, unref } from 'vue-demi';
2
+ import { useQueryClient } from './useQueryClient.mjs';
3
+ import { isQueryKey, cloneDeepUnref } from './utils.mjs';
4
+
5
+ function useIsMutating(arg1, arg2) {
6
+ var _filters$value$queryC;
7
+
8
+ if (process.env.NODE_ENV === 'development') {
9
+ if (!getCurrentScope()) {
10
+ console.warn('vue-query composables like "useQuery()" should only be used inside a "setup()" function or a running effect scope. They might otherwise lead to memory leaks.');
11
+ }
12
+ }
13
+
14
+ const filters = computed(() => parseFilterArgs(arg1, arg2));
15
+ const queryClient = (_filters$value$queryC = filters.value.queryClient) != null ? _filters$value$queryC : useQueryClient(filters.value.queryClientKey);
16
+ const isMutating = ref();
17
+
18
+ const listener = () => {
19
+ isMutating.value = queryClient.isMutating(filters);
20
+ };
21
+
22
+ const unsubscribe = queryClient.getMutationCache().subscribe(listener);
23
+ watchEffect(listener);
24
+ onScopeDispose(() => {
25
+ unsubscribe();
26
+ });
27
+ return isMutating;
28
+ }
29
+ function parseFilterArgs(arg1, arg2 = {}) {
30
+ const plainArg1 = unref(arg1);
31
+ const plainArg2 = unref(arg2);
32
+ let options = plainArg1;
33
+
34
+ if (isQueryKey(plainArg1)) {
35
+ options = { ...plainArg2,
36
+ mutationKey: plainArg1
37
+ };
38
+ } else {
39
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
40
+ options = plainArg1 || {};
41
+ }
42
+
43
+ return cloneDeepUnref(options);
44
+ }
45
+
46
+ export { parseFilterArgs, useIsMutating };
47
+ //# sourceMappingURL=useIsMutating.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsMutating.mjs","sources":["../../src/useIsMutating.ts"],"sourcesContent":["import {\n computed,\n getCurrentScope,\n onScopeDispose,\n ref,\n unref,\n watchEffect,\n} from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, isQueryKey } from './utils'\nimport type { Ref } from 'vue-demi'\nimport type { MutationFilters as MF, MutationKey } from '@tanstack/query-core'\n\nimport type { MaybeRef, MaybeRefDeep, WithQueryClientKey } from './types'\n\nexport type MutationFilters = MaybeRefDeep<WithQueryClientKey<MF>>\n\nexport function useIsMutating(filters?: MutationFilters): Ref<number>\nexport function useIsMutating(\n mutationKey?: MaybeRef<MutationKey>,\n filters?: Omit<MutationFilters, 'mutationKey'>,\n): Ref<number>\nexport function useIsMutating(\n arg1?: MaybeRef<MutationKey> | MutationFilters,\n arg2?: Omit<MutationFilters, 'mutationKey'>,\n): Ref<number> {\n if (process.env.NODE_ENV === 'development') {\n if (!getCurrentScope()) {\n console.warn(\n 'vue-query composables like \"useQuery()\" should only be used inside a \"setup()\" function or a running effect scope. They might otherwise lead to memory leaks.',\n )\n }\n }\n\n const filters = computed(() => parseFilterArgs(arg1, arg2))\n const queryClient =\n filters.value.queryClient ?? useQueryClient(filters.value.queryClientKey)\n\n const isMutating = ref()\n\n const listener = () => {\n isMutating.value = queryClient.isMutating(filters)\n }\n\n const unsubscribe = queryClient.getMutationCache().subscribe(listener)\n\n watchEffect(listener)\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return isMutating\n}\n\nexport function parseFilterArgs(\n arg1?: MaybeRef<MutationKey> | MutationFilters,\n arg2: MutationFilters = {},\n) {\n const plainArg1 = unref(arg1)\n const plainArg2 = unref(arg2)\n\n let options = plainArg1\n\n if (isQueryKey(plainArg1)) {\n options = { ...plainArg2, mutationKey: plainArg1 }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n options = plainArg1 || {}\n }\n\n return cloneDeepUnref(options) as WithQueryClientKey<MF>\n}\n"],"names":["useIsMutating","arg1","arg2","process","env","NODE_ENV","getCurrentScope","console","warn","filters","computed","parseFilterArgs","queryClient","value","useQueryClient","queryClientKey","isMutating","ref","listener","unsubscribe","getMutationCache","subscribe","watchEffect","onScopeDispose","plainArg1","unref","plainArg2","options","isQueryKey","mutationKey","cloneDeepUnref"],"mappings":";;;;AAsBO,SAASA,aAAT,CACLC,IADK,EAELC,IAFK,EAGQ;AAAA,EAAA,IAAA,qBAAA,CAAA;;AACb,EAAA,IAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;IAC1C,IAAI,CAACC,eAAe,EAApB,EAAwB;MACtBC,OAAO,CAACC,IAAR,CACE,+JADF,CAAA,CAAA;AAGD,KAAA;AACF,GAAA;;EAED,MAAMC,OAAO,GAAGC,QAAQ,CAAC,MAAMC,eAAe,CAACV,IAAD,EAAOC,IAAP,CAAtB,CAAxB,CAAA;AACA,EAAA,MAAMU,WAAW,GAAA,CAAA,qBAAA,GACfH,OAAO,CAACI,KAAR,CAAcD,WADC,KACcE,IAAAA,GAAAA,qBAAAA,GAAAA,cAAc,CAACL,OAAO,CAACI,KAAR,CAAcE,cAAf,CAD7C,CAAA;EAGA,MAAMC,UAAU,GAAGC,GAAG,EAAtB,CAAA;;EAEA,MAAMC,QAAQ,GAAG,MAAM;IACrBF,UAAU,CAACH,KAAX,GAAmBD,WAAW,CAACI,UAAZ,CAAuBP,OAAvB,CAAnB,CAAA;GADF,CAAA;;EAIA,MAAMU,WAAW,GAAGP,WAAW,CAACQ,gBAAZ,EAA+BC,CAAAA,SAA/B,CAAyCH,QAAzC,CAApB,CAAA;EAEAI,WAAW,CAACJ,QAAD,CAAX,CAAA;AAEAK,EAAAA,cAAc,CAAC,MAAM;IACnBJ,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;AAIA,EAAA,OAAOH,UAAP,CAAA;AACD,CAAA;AAEM,SAASL,eAAT,CACLV,IADK,EAELC,IAAqB,GAAG,EAFnB,EAGL;AACA,EAAA,MAAMsB,SAAS,GAAGC,KAAK,CAACxB,IAAD,CAAvB,CAAA;AACA,EAAA,MAAMyB,SAAS,GAAGD,KAAK,CAACvB,IAAD,CAAvB,CAAA;EAEA,IAAIyB,OAAO,GAAGH,SAAd,CAAA;;AAEA,EAAA,IAAII,UAAU,CAACJ,SAAD,CAAd,EAA2B;IACzBG,OAAO,GAAG,EAAE,GAAGD,SAAL;AAAgBG,MAAAA,WAAW,EAAEL,SAAAA;KAAvC,CAAA;AACD,GAFD,MAEO;AACL;IACAG,OAAO,GAAGH,SAAS,IAAI,EAAvB,CAAA;AACD,GAAA;;EAED,OAAOM,cAAc,CAACH,OAAD,CAArB,CAAA;AACD;;;;"}
@@ -1,6 +1,6 @@
1
1
  import type { ToRefs } from 'vue-demi';
2
- import type { MutateFunction, MutationFunction, MutationKey, MutationObserverOptions, MutationObserverResult } from '@tanstack/query-core';
3
- import type { DistributiveOmit, MaybeRef, MaybeRefDeep, WithQueryClientKey } from './types';
2
+ import type { DistributiveOmit, MutateFunction, MutationFunction, MutationKey, MutationObserverOptions, MutationObserverResult } from '@tanstack/query-core';
3
+ import type { MaybeRef, MaybeRefDeep, WithQueryClientKey } from './types';
4
4
  declare type MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<MutationObserverResult<TData, TError, TVariables, TContext>, 'mutate' | 'reset'>;
5
5
  export declare type UseMutationOptions<TData, TError, TVariables, TContext> = WithQueryClientKey<MutationObserverOptions<TData, TError, TVariables, TContext>>;
6
6
  export declare type VueMutationObserverOptions<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> = {
@@ -0,0 +1,77 @@
1
+ import { getCurrentScope, computed, reactive, watch, onScopeDispose, toRefs, readonly, unref } from 'vue-demi';
2
+ import { MutationObserver } from '@tanstack/query-core';
3
+ import { updateState, shouldThrowError, isMutationKey, cloneDeepUnref } from './utils.esm.js';
4
+ import { useQueryClient } from './useQueryClient.esm.js';
5
+
6
+ function useMutation(arg1, arg2, arg3) {
7
+ var _options$value$queryC;
8
+
9
+ if (process.env.NODE_ENV === 'development') {
10
+ if (!getCurrentScope()) {
11
+ console.warn('vue-query composables like "useQuery()" should only be used inside a "setup()" function or a running effect scope. They might otherwise lead to memory leaks.');
12
+ }
13
+ }
14
+
15
+ const options = computed(() => {
16
+ return parseMutationArgs(arg1, arg2, arg3);
17
+ });
18
+ const queryClient = (_options$value$queryC = options.value.queryClient) != null ? _options$value$queryC : useQueryClient(options.value.queryClientKey);
19
+ const observer = new MutationObserver(queryClient, queryClient.defaultMutationOptions(options.value));
20
+ const state = reactive(observer.getCurrentResult());
21
+ const unsubscribe = observer.subscribe(result => {
22
+ updateState(state, result);
23
+ });
24
+
25
+ const mutate = (variables, mutateOptions) => {
26
+ observer.mutate(variables, mutateOptions).catch(() => {// This is intentional
27
+ });
28
+ };
29
+
30
+ watch(options, () => {
31
+ observer.setOptions(queryClient.defaultMutationOptions(options.value));
32
+ });
33
+ onScopeDispose(() => {
34
+ unsubscribe();
35
+ });
36
+ const resultRefs = toRefs(readonly(state));
37
+ watch(() => state.error, error => {
38
+ if (error && shouldThrowError(options.value.useErrorBoundary, [error])) {
39
+ throw error;
40
+ }
41
+ });
42
+ return { ...resultRefs,
43
+ mutate,
44
+ mutateAsync: state.mutate,
45
+ reset: state.reset
46
+ };
47
+ }
48
+ function parseMutationArgs(arg1, arg2, arg3) {
49
+ const plainArg1 = unref(arg1);
50
+ const plainArg2 = unref(arg2);
51
+ let options = plainArg1;
52
+
53
+ if (isMutationKey(plainArg1)) {
54
+ if (typeof plainArg2 === 'function') {
55
+ const plainArg3 = unref(arg3);
56
+ options = { ...plainArg3,
57
+ mutationKey: plainArg1,
58
+ mutationFn: plainArg2
59
+ };
60
+ } else {
61
+ options = { ...plainArg2,
62
+ mutationKey: plainArg1
63
+ };
64
+ }
65
+ }
66
+
67
+ if (typeof plainArg1 === 'function') {
68
+ options = { ...plainArg2,
69
+ mutationFn: plainArg1
70
+ };
71
+ }
72
+
73
+ return cloneDeepUnref(options);
74
+ }
75
+
76
+ export { parseMutationArgs, useMutation };
77
+ //# sourceMappingURL=useMutation.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMutation.esm.js","sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n computed,\n getCurrentScope,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n unref,\n watch,\n} from 'vue-demi'\nimport { MutationObserver } from '@tanstack/query-core'\nimport {\n cloneDeepUnref,\n isMutationKey,\n shouldThrowError,\n updateState,\n} from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n DistributiveOmit,\n MutateFunction,\n MutateOptions,\n MutationFunction,\n MutationKey,\n MutationObserverOptions,\n MutationObserverResult,\n} from '@tanstack/query-core'\nimport type { MaybeRef, MaybeRefDeep, WithQueryClientKey } from './types'\n\ntype MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<TData, TError, TVariables, TContext> =\n WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >\n\nexport type VueMutationObserverOptions<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> = {\n [Property in keyof UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >]: MaybeRefDeep<\n UseMutationOptions<TData, TError, TVariables, TContext>[Property]\n >\n}\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> = (\n ...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutationReturnType<\n TData,\n TError,\n TVariables,\n TContext,\n Result = MutationResult<TData, TError, TVariables, TContext>,\n> = ToRefs<Readonly<Result>> & {\n mutate: MutateSyncFunction<TData, TError, TVariables, TContext>\n mutateAsync: MutateFunction<TData, TError, TVariables, TContext>\n reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset']\n}\n\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n options: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationFn: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n mutationFn?: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey' | 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n if (process.env.NODE_ENV === 'development') {\n if (!getCurrentScope()) {\n console.warn(\n 'vue-query composables like \"useQuery()\" should only be used inside a \"setup()\" function or a running effect scope. They might otherwise lead to memory leaks.',\n )\n }\n }\n\n const options = computed(() => {\n return parseMutationArgs(arg1, arg2, arg3)\n })\n const queryClient =\n options.value.queryClient ?? useQueryClient(options.value.queryClientKey)\n const observer = new MutationObserver(\n queryClient,\n queryClient.defaultMutationOptions(options.value),\n )\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n\n const mutate = (\n variables: TVariables,\n mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>,\n ) => {\n observer.mutate(variables, mutateOptions).catch(() => {\n // This is intentional\n })\n }\n\n watch(options, () => {\n observer.setOptions(queryClient.defaultMutationOptions(options.value))\n })\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const resultRefs = toRefs(readonly(state)) as unknown as ToRefs<\n Readonly<MutationResult<TData, TError, TVariables, TContext>>\n >\n\n watch(\n () => state.error,\n (error) => {\n if (\n error &&\n shouldThrowError(options.value.useErrorBoundary, [error as TError])\n ) {\n throw error\n }\n },\n )\n\n return {\n ...resultRefs,\n mutate,\n mutateAsync: state.mutate,\n reset: state.reset,\n }\n}\n\nexport function parseMutationArgs<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n> {\n const plainArg1 = unref(arg1)\n const plainArg2 = unref(arg2)\n let options = plainArg1\n if (isMutationKey(plainArg1)) {\n if (typeof plainArg2 === 'function') {\n const plainArg3 = unref(arg3)\n options = { ...plainArg3, mutationKey: plainArg1, mutationFn: plainArg2 }\n } else {\n options = { ...plainArg2, mutationKey: plainArg1 }\n }\n }\n\n if (typeof plainArg1 === 'function') {\n options = { ...plainArg2, mutationFn: plainArg1 }\n }\n\n return cloneDeepUnref(options) as UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >\n}\n"],"names":["useMutation","arg1","arg2","arg3","process","env","NODE_ENV","getCurrentScope","console","warn","options","computed","parseMutationArgs","queryClient","value","useQueryClient","queryClientKey","observer","MutationObserver","defaultMutationOptions","state","reactive","getCurrentResult","unsubscribe","subscribe","result","updateState","mutate","variables","mutateOptions","catch","watch","setOptions","onScopeDispose","resultRefs","toRefs","readonly","error","shouldThrowError","useErrorBoundary","mutateAsync","reset","plainArg1","unref","plainArg2","isMutationKey","plainArg3","mutationKey","mutationFn","cloneDeepUnref"],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vueDemi = require('vue-demi');
6
+ var queryCore = require('@tanstack/query-core');
7
+ var utils = require('./utils.js');
8
+ var useQueryClient = require('./useQueryClient.js');
9
+
10
+ function useMutation(arg1, arg2, arg3) {
11
+ var _options$value$queryC;
12
+
13
+ if (process.env.NODE_ENV === 'development') {
14
+ if (!vueDemi.getCurrentScope()) {
15
+ console.warn('vue-query composables like "useQuery()" should only be used inside a "setup()" function or a running effect scope. They might otherwise lead to memory leaks.');
16
+ }
17
+ }
18
+
19
+ const options = vueDemi.computed(() => {
20
+ return parseMutationArgs(arg1, arg2, arg3);
21
+ });
22
+ const queryClient = (_options$value$queryC = options.value.queryClient) != null ? _options$value$queryC : useQueryClient.useQueryClient(options.value.queryClientKey);
23
+ const observer = new queryCore.MutationObserver(queryClient, queryClient.defaultMutationOptions(options.value));
24
+ const state = vueDemi.reactive(observer.getCurrentResult());
25
+ const unsubscribe = observer.subscribe(result => {
26
+ utils.updateState(state, result);
27
+ });
28
+
29
+ const mutate = (variables, mutateOptions) => {
30
+ observer.mutate(variables, mutateOptions).catch(() => {// This is intentional
31
+ });
32
+ };
33
+
34
+ vueDemi.watch(options, () => {
35
+ observer.setOptions(queryClient.defaultMutationOptions(options.value));
36
+ });
37
+ vueDemi.onScopeDispose(() => {
38
+ unsubscribe();
39
+ });
40
+ const resultRefs = vueDemi.toRefs(vueDemi.readonly(state));
41
+ vueDemi.watch(() => state.error, error => {
42
+ if (error && utils.shouldThrowError(options.value.useErrorBoundary, [error])) {
43
+ throw error;
44
+ }
45
+ });
46
+ return { ...resultRefs,
47
+ mutate,
48
+ mutateAsync: state.mutate,
49
+ reset: state.reset
50
+ };
51
+ }
52
+ function parseMutationArgs(arg1, arg2, arg3) {
53
+ const plainArg1 = vueDemi.unref(arg1);
54
+ const plainArg2 = vueDemi.unref(arg2);
55
+ let options = plainArg1;
56
+
57
+ if (utils.isMutationKey(plainArg1)) {
58
+ if (typeof plainArg2 === 'function') {
59
+ const plainArg3 = vueDemi.unref(arg3);
60
+ options = { ...plainArg3,
61
+ mutationKey: plainArg1,
62
+ mutationFn: plainArg2
63
+ };
64
+ } else {
65
+ options = { ...plainArg2,
66
+ mutationKey: plainArg1
67
+ };
68
+ }
69
+ }
70
+
71
+ if (typeof plainArg1 === 'function') {
72
+ options = { ...plainArg2,
73
+ mutationFn: plainArg1
74
+ };
75
+ }
76
+
77
+ return utils.cloneDeepUnref(options);
78
+ }
79
+
80
+ exports.parseMutationArgs = parseMutationArgs;
81
+ exports.useMutation = useMutation;
82
+ //# sourceMappingURL=useMutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMutation.js","sources":["../../src/useMutation.ts"],"sourcesContent":["import {\n computed,\n getCurrentScope,\n onScopeDispose,\n reactive,\n readonly,\n toRefs,\n unref,\n watch,\n} from 'vue-demi'\nimport { MutationObserver } from '@tanstack/query-core'\nimport {\n cloneDeepUnref,\n isMutationKey,\n shouldThrowError,\n updateState,\n} from './utils'\nimport { useQueryClient } from './useQueryClient'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n DistributiveOmit,\n MutateFunction,\n MutateOptions,\n MutationFunction,\n MutationKey,\n MutationObserverOptions,\n MutationObserverResult,\n} from '@tanstack/query-core'\nimport type { MaybeRef, MaybeRefDeep, WithQueryClientKey } from './types'\n\ntype MutationResult<TData, TError, TVariables, TContext> = DistributiveOmit<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n 'mutate' | 'reset'\n>\n\nexport type UseMutationOptions<TData, TError, TVariables, TContext> =\n WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n >\n\nexport type VueMutationObserverOptions<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> = {\n [Property in keyof UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >]: MaybeRefDeep<\n UseMutationOptions<TData, TError, TVariables, TContext>[Property]\n >\n}\n\ntype MutateSyncFunction<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> = (\n ...options: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutationReturnType<\n TData,\n TError,\n TVariables,\n TContext,\n Result = MutationResult<TData, TError, TVariables, TContext>,\n> = ToRefs<Readonly<Result>> & {\n mutate: MutateSyncFunction<TData, TError, TVariables, TContext>\n mutateAsync: MutateFunction<TData, TError, TVariables, TContext>\n reset: MutationObserverResult<TData, TError, TVariables, TContext>['reset']\n}\n\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n options: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationFn: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n mutationKey: MaybeRef<MutationKey>,\n mutationFn?: MaybeRef<MutationFunction<TData, TVariables>>,\n options?: MaybeRef<\n Omit<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>,\n 'mutationKey' | 'mutationFn'\n >\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext>\nexport function useMutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): UseMutationReturnType<TData, TError, TVariables, TContext> {\n if (process.env.NODE_ENV === 'development') {\n if (!getCurrentScope()) {\n console.warn(\n 'vue-query composables like \"useQuery()\" should only be used inside a \"setup()\" function or a running effect scope. They might otherwise lead to memory leaks.',\n )\n }\n }\n\n const options = computed(() => {\n return parseMutationArgs(arg1, arg2, arg3)\n })\n const queryClient =\n options.value.queryClient ?? useQueryClient(options.value.queryClientKey)\n const observer = new MutationObserver(\n queryClient,\n queryClient.defaultMutationOptions(options.value),\n )\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n\n const mutate = (\n variables: TVariables,\n mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>,\n ) => {\n observer.mutate(variables, mutateOptions).catch(() => {\n // This is intentional\n })\n }\n\n watch(options, () => {\n observer.setOptions(queryClient.defaultMutationOptions(options.value))\n })\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const resultRefs = toRefs(readonly(state)) as unknown as ToRefs<\n Readonly<MutationResult<TData, TError, TVariables, TContext>>\n >\n\n watch(\n () => state.error,\n (error) => {\n if (\n error &&\n shouldThrowError(options.value.useErrorBoundary, [error as TError])\n ) {\n throw error\n }\n },\n )\n\n return {\n ...resultRefs,\n mutate,\n mutateAsync: state.mutate,\n reset: state.reset,\n }\n}\n\nexport function parseMutationArgs<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n>(\n arg1:\n | MaybeRef<MutationKey>\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg2?:\n | MaybeRef<MutationFunction<TData, TVariables>>\n | MaybeRef<VueMutationObserverOptions<TData, TError, TVariables, TContext>>,\n arg3?: MaybeRef<\n VueMutationObserverOptions<TData, TError, TVariables, TContext>\n >,\n): WithQueryClientKey<\n MutationObserverOptions<TData, TError, TVariables, TContext>\n> {\n const plainArg1 = unref(arg1)\n const plainArg2 = unref(arg2)\n let options = plainArg1\n if (isMutationKey(plainArg1)) {\n if (typeof plainArg2 === 'function') {\n const plainArg3 = unref(arg3)\n options = { ...plainArg3, mutationKey: plainArg1, mutationFn: plainArg2 }\n } else {\n options = { ...plainArg2, mutationKey: plainArg1 }\n }\n }\n\n if (typeof plainArg1 === 'function') {\n options = { ...plainArg2, mutationFn: plainArg1 }\n }\n\n return cloneDeepUnref(options) as UseMutationOptions<\n TData,\n TError,\n TVariables,\n TContext\n >\n}\n"],"names":["useMutation","arg1","arg2","arg3","process","env","NODE_ENV","getCurrentScope","console","warn","options","computed","parseMutationArgs","queryClient","value","useQueryClient","queryClientKey","observer","MutationObserver","defaultMutationOptions","state","reactive","getCurrentResult","unsubscribe","subscribe","result","updateState","mutate","variables","mutateOptions","catch","watch","setOptions","onScopeDispose","resultRefs","toRefs","readonly","error","shouldThrowError","useErrorBoundary","mutateAsync","reset","plainArg1","unref","plainArg2","isMutationKey","plainArg3","mutationKey","mutationFn","cloneDeepUnref"],"mappings":"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"}