@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.
- package/build/lib/devtools/devtools.esm.js +162 -0
- package/build/lib/devtools/devtools.esm.js.map +1 -0
- package/build/lib/devtools/devtools.js +166 -0
- package/build/lib/devtools/devtools.js.map +1 -0
- package/build/lib/devtools/devtools.mjs +162 -0
- package/build/lib/devtools/devtools.mjs.map +1 -0
- package/build/lib/devtools/utils.esm.js +103 -0
- package/build/lib/devtools/utils.esm.js.map +1 -0
- package/build/lib/devtools/utils.js +111 -0
- package/build/lib/devtools/utils.js.map +1 -0
- package/build/lib/devtools/utils.mjs +103 -0
- package/build/lib/devtools/utils.mjs.map +1 -0
- package/build/lib/index.esm.js +14 -0
- package/build/lib/index.esm.js.map +1 -0
- package/build/lib/index.js +39 -0
- package/build/lib/index.js.map +1 -0
- package/build/lib/index.mjs +14 -0
- package/build/lib/index.mjs.map +1 -0
- package/build/lib/mutationCache.esm.js +16 -0
- package/build/lib/mutationCache.esm.js.map +1 -0
- package/build/lib/mutationCache.js +20 -0
- package/build/lib/mutationCache.js.map +1 -0
- package/build/lib/mutationCache.mjs +16 -0
- package/build/lib/mutationCache.mjs.map +1 -0
- package/build/lib/queryCache.esm.js +30 -0
- package/build/lib/queryCache.esm.js.map +1 -0
- package/build/lib/queryCache.js +34 -0
- package/build/lib/queryCache.js.map +1 -0
- package/build/lib/queryCache.mjs +30 -0
- package/build/lib/queryCache.mjs.map +1 -0
- package/build/lib/queryClient.esm.js +175 -0
- package/build/lib/queryClient.esm.js.map +1 -0
- package/build/lib/queryClient.js +179 -0
- package/build/lib/queryClient.js.map +1 -0
- package/build/lib/queryClient.mjs +175 -0
- package/build/lib/queryClient.mjs.map +1 -0
- package/build/lib/types.d.ts +0 -1
- package/build/lib/useBaseQuery.esm.js +125 -0
- package/build/lib/useBaseQuery.esm.js.map +1 -0
- package/build/lib/useBaseQuery.js +130 -0
- package/build/lib/useBaseQuery.js.map +1 -0
- package/build/lib/useBaseQuery.mjs +125 -0
- package/build/lib/useBaseQuery.mjs.map +1 -0
- package/build/lib/useInfiniteQuery.esm.js +10 -0
- package/build/lib/useInfiniteQuery.esm.js.map +1 -0
- package/build/lib/useInfiniteQuery.js +14 -0
- package/build/lib/useInfiniteQuery.js.map +1 -0
- package/build/lib/useInfiniteQuery.mjs +10 -0
- package/build/lib/useInfiniteQuery.mjs.map +1 -0
- package/build/lib/useIsFetching.esm.js +47 -0
- package/build/lib/useIsFetching.esm.js.map +1 -0
- package/build/lib/useIsFetching.js +52 -0
- package/build/lib/useIsFetching.js.map +1 -0
- package/build/lib/useIsFetching.mjs +47 -0
- package/build/lib/useIsFetching.mjs.map +1 -0
- package/build/lib/useIsMutating.esm.js +47 -0
- package/build/lib/useIsMutating.esm.js.map +1 -0
- package/build/lib/useIsMutating.js +52 -0
- package/build/lib/useIsMutating.js.map +1 -0
- package/build/lib/useIsMutating.mjs +47 -0
- package/build/lib/useIsMutating.mjs.map +1 -0
- package/build/lib/useMutation.d.ts +2 -2
- package/build/lib/useMutation.esm.js +77 -0
- package/build/lib/useMutation.esm.js.map +1 -0
- package/build/lib/useMutation.js +82 -0
- package/build/lib/useMutation.js.map +1 -0
- package/build/lib/useMutation.mjs +77 -0
- package/build/lib/useMutation.mjs.map +1 -0
- package/build/lib/useQueries.esm.js +72 -0
- package/build/lib/useQueries.esm.js.map +1 -0
- package/build/lib/useQueries.js +76 -0
- package/build/lib/useQueries.js.map +1 -0
- package/build/lib/useQueries.mjs +72 -0
- package/build/lib/useQueries.mjs.map +1 -0
- package/build/lib/useQuery.esm.js +10 -0
- package/build/lib/useQuery.esm.js.map +1 -0
- package/build/lib/useQuery.js +14 -0
- package/build/lib/useQuery.js.map +1 -0
- package/build/lib/useQuery.mjs +10 -0
- package/build/lib/useQuery.mjs.map +1 -0
- package/build/lib/useQueryClient.esm.js +24 -0
- package/build/lib/useQueryClient.esm.js.map +1 -0
- package/build/lib/useQueryClient.js +28 -0
- package/build/lib/useQueryClient.js.map +1 -0
- package/build/lib/useQueryClient.mjs +24 -0
- package/build/lib/useQueryClient.mjs.map +1 -0
- package/build/lib/utils.esm.js +67 -0
- package/build/lib/utils.esm.js.map +1 -0
- package/build/lib/utils.js +78 -0
- package/build/lib/utils.js.map +1 -0
- package/build/lib/utils.mjs +67 -0
- package/build/lib/utils.mjs.map +1 -0
- package/build/lib/vueQueryPlugin.esm.js +101 -0
- package/build/lib/vueQueryPlugin.esm.js.map +1 -0
- package/build/lib/vueQueryPlugin.js +105 -0
- package/build/lib/vueQueryPlugin.js.map +1 -0
- package/build/lib/vueQueryPlugin.mjs +101 -0
- package/build/lib/vueQueryPlugin.mjs.map +1 -0
- package/build/umd/index.development.js +5246 -0
- package/build/umd/index.development.js.map +1 -0
- package/build/umd/index.production.js +2 -0
- package/build/umd/index.production.js.map +1 -0
- 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 {
|
|
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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"}
|