@tanstack/vue-query 4.16.1 → 4.17.1

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 (63) hide show
  1. package/build/lib/__mocks__/useBaseQuery.d.ts +1 -0
  2. package/build/lib/devtools/devtools.esm.js +1 -1
  3. package/build/lib/devtools/devtools.esm.js.map +1 -1
  4. package/build/lib/devtools/devtools.js +1 -1
  5. package/build/lib/devtools/devtools.js.map +1 -1
  6. package/build/lib/devtools/devtools.mjs +1 -1
  7. package/build/lib/devtools/devtools.mjs.map +1 -1
  8. package/build/lib/index.d.ts +2 -3
  9. package/build/lib/index.js +4 -4
  10. package/build/lib/queryClient.d.ts +1 -0
  11. package/build/lib/queryClient.esm.js +2 -0
  12. package/build/lib/queryClient.esm.js.map +1 -1
  13. package/build/lib/queryClient.js +2 -0
  14. package/build/lib/queryClient.js.map +1 -1
  15. package/build/lib/queryClient.mjs +2 -0
  16. package/build/lib/queryClient.mjs.map +1 -1
  17. package/build/lib/useBaseQuery.d.ts +4 -2
  18. package/build/lib/useBaseQuery.esm.js +55 -42
  19. package/build/lib/useBaseQuery.esm.js.map +1 -1
  20. package/build/lib/useBaseQuery.js +54 -40
  21. package/build/lib/useBaseQuery.js.map +1 -1
  22. package/build/lib/useBaseQuery.mjs +55 -42
  23. package/build/lib/useBaseQuery.mjs.map +1 -1
  24. package/build/lib/useInfiniteQuery.d.ts +1 -1
  25. package/build/lib/useInfiniteQuery.esm.js.map +1 -1
  26. package/build/lib/useInfiniteQuery.js.map +1 -1
  27. package/build/lib/useInfiniteQuery.mjs.map +1 -1
  28. package/build/lib/useIsFetching.d.ts +3 -3
  29. package/build/lib/useIsFetching.esm.js +10 -9
  30. package/build/lib/useIsFetching.esm.js.map +1 -1
  31. package/build/lib/useIsFetching.js +9 -8
  32. package/build/lib/useIsFetching.js.map +1 -1
  33. package/build/lib/useIsFetching.mjs +10 -9
  34. package/build/lib/useIsFetching.mjs.map +1 -1
  35. package/build/lib/useIsMutating.d.ts +3 -3
  36. package/build/lib/useIsMutating.esm.js +12 -11
  37. package/build/lib/useIsMutating.esm.js.map +1 -1
  38. package/build/lib/useIsMutating.js +11 -10
  39. package/build/lib/useIsMutating.js.map +1 -1
  40. package/build/lib/useIsMutating.mjs +12 -11
  41. package/build/lib/useIsMutating.mjs.map +1 -1
  42. package/build/lib/useQueries.esm.js +28 -18
  43. package/build/lib/useQueries.esm.js.map +1 -1
  44. package/build/lib/useQueries.js +27 -17
  45. package/build/lib/useQueries.js.map +1 -1
  46. package/build/lib/useQueries.mjs +28 -18
  47. package/build/lib/useQueries.mjs.map +1 -1
  48. package/build/lib/useQuery.d.ts +2 -3
  49. package/build/lib/useQuery.esm.js.map +1 -1
  50. package/build/lib/useQuery.js.map +1 -1
  51. package/build/lib/useQuery.mjs.map +1 -1
  52. package/build/lib/vueQueryPlugin.d.ts +7 -9
  53. package/build/lib/vueQueryPlugin.esm.js +13 -0
  54. package/build/lib/vueQueryPlugin.esm.js.map +1 -1
  55. package/build/lib/vueQueryPlugin.js +13 -0
  56. package/build/lib/vueQueryPlugin.js.map +1 -1
  57. package/build/lib/vueQueryPlugin.mjs +13 -0
  58. package/build/lib/vueQueryPlugin.mjs.map +1 -1
  59. package/build/umd/index.development.js +132 -93
  60. package/build/umd/index.development.js.map +1 -1
  61. package/build/umd/index.production.js +1 -1
  62. package/build/umd/index.production.js.map +1 -1
  63. package/package.json +8 -4
@@ -9,14 +9,13 @@ var utils = require('./utils.js');
9
9
  function useIsMutating(arg1, arg2) {
10
10
  var _filters$value$queryC;
11
11
 
12
- const filters = vueDemi.ref(parseMutationFilterArgs(arg1, arg2));
12
+ const filters = vueDemi.computed(() => parseFilterArgs(arg1, arg2));
13
13
  const queryClient = (_filters$value$queryC = filters.value.queryClient) != null ? _filters$value$queryC : useQueryClient.useQueryClient(filters.value.queryClientKey);
14
14
  const isMutating = vueDemi.ref(queryClient.isMutating(filters));
15
15
  const unsubscribe = queryClient.getMutationCache().subscribe(() => {
16
16
  isMutating.value = queryClient.isMutating(filters);
17
17
  });
18
- vueDemi.watch([() => arg1, () => arg2], () => {
19
- filters.value = parseMutationFilterArgs(arg1, arg2);
18
+ vueDemi.watch(filters, () => {
20
19
  isMutating.value = queryClient.isMutating(filters);
21
20
  }, {
22
21
  deep: true
@@ -26,21 +25,23 @@ function useIsMutating(arg1, arg2) {
26
25
  });
27
26
  return isMutating;
28
27
  }
29
- function parseMutationFilterArgs(arg1, arg2 = {}) {
30
- let options;
28
+ function parseFilterArgs(arg1, arg2 = {}) {
29
+ const plainArg1 = vueDemi.isRef(arg1) ? arg1.value : arg1;
30
+ const plainArg2 = vueDemi.isRef(arg2) ? arg2.value : arg2;
31
+ let options = plainArg1;
31
32
 
32
- if (utils.isQueryKey(arg1)) {
33
- options = { ...arg2,
34
- mutationKey: arg1
33
+ if (utils.isQueryKey(plainArg1)) {
34
+ options = { ...plainArg2,
35
+ mutationKey: plainArg1
35
36
  };
36
37
  } else {
37
38
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
38
- options = arg1 || {};
39
+ options = plainArg1 || {};
39
40
  }
40
41
 
41
42
  return utils.cloneDeepUnref(options);
42
43
  }
43
44
 
44
- exports.parseMutationFilterArgs = parseMutationFilterArgs;
45
+ exports.parseFilterArgs = parseFilterArgs;
45
46
  exports.useIsMutating = useIsMutating;
46
47
  //# sourceMappingURL=useIsMutating.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIsMutating.js","sources":["../../src/useIsMutating.ts"],"sourcesContent":["import { onScopeDispose, ref, watch } from 'vue-demi'\nimport type { Ref } from 'vue-demi'\nimport type { MutationKey, MutationFilters as MF } from '@tanstack/query-core'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, isQueryKey } from './utils'\nimport type { MaybeRefDeep, WithQueryClientKey } from './types'\n\nexport type MutationFilters = MaybeRefDeep<WithQueryClientKey<MF>>\n\nexport function useIsMutating(filters?: MutationFilters): Ref<number>\nexport function useIsMutating(\n mutationKey?: MutationKey,\n filters?: Omit<MutationFilters, 'mutationKey'>,\n): Ref<number>\nexport function useIsMutating(\n arg1?: MutationKey | MutationFilters,\n arg2?: Omit<MutationFilters, 'mutationKey'>,\n): Ref<number> {\n const filters = ref(parseMutationFilterArgs(arg1, arg2))\n const queryClient =\n filters.value.queryClient ?? useQueryClient(filters.value.queryClientKey)\n\n const isMutating = ref(queryClient.isMutating(filters))\n\n const unsubscribe = queryClient.getMutationCache().subscribe(() => {\n isMutating.value = queryClient.isMutating(filters)\n })\n\n watch(\n [() => arg1, () => arg2],\n () => {\n filters.value = parseMutationFilterArgs(arg1, arg2)\n isMutating.value = queryClient.isMutating(filters)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return isMutating\n}\n\nexport function parseMutationFilterArgs(\n arg1?: MutationKey | MutationFilters,\n arg2: MutationFilters = {},\n) {\n let options: MutationFilters\n\n if (isQueryKey(arg1)) {\n options = { ...arg2, mutationKey: arg1 }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n options = arg1 || {}\n }\n\n return cloneDeepUnref(options) as WithQueryClientKey<MF>\n}\n"],"names":["useIsMutating","arg1","arg2","filters","ref","parseMutationFilterArgs","queryClient","value","useQueryClient","queryClientKey","isMutating","unsubscribe","getMutationCache","subscribe","watch","deep","onScopeDispose","options","isQueryKey","mutationKey","cloneDeepUnref"],"mappings":";;;;;;;;AAeO,SAASA,aAAT,CACLC,IADK,EAELC,IAFK,EAGQ;AAAA,EAAA,IAAA,qBAAA,CAAA;;EACb,MAAMC,OAAO,GAAGC,WAAG,CAACC,uBAAuB,CAACJ,IAAD,EAAOC,IAAP,CAAxB,CAAnB,CAAA;AACA,EAAA,MAAMI,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,GAAGN,WAAG,CAACE,WAAW,CAACI,UAAZ,CAAuBP,OAAvB,CAAD,CAAtB,CAAA;EAEA,MAAMQ,WAAW,GAAGL,WAAW,CAACM,gBAAZ,EAA+BC,CAAAA,SAA/B,CAAyC,MAAM;IACjEH,UAAU,CAACH,KAAX,GAAmBD,WAAW,CAACI,UAAZ,CAAuBP,OAAvB,CAAnB,CAAA;AACD,GAFmB,CAApB,CAAA;EAIAW,aAAK,CACH,CAAC,MAAMb,IAAP,EAAa,MAAMC,IAAnB,CADG,EAEH,MAAM;IACJC,OAAO,CAACI,KAAR,GAAgBF,uBAAuB,CAACJ,IAAD,EAAOC,IAAP,CAAvC,CAAA;IACAQ,UAAU,CAACH,KAAX,GAAmBD,WAAW,CAACI,UAAZ,CAAuBP,OAAvB,CAAnB,CAAA;AACD,GALE,EAMH;AAAEY,IAAAA,IAAI,EAAE,IAAA;AAAR,GANG,CAAL,CAAA;AASAC,EAAAA,sBAAc,CAAC,MAAM;IACnBL,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;AAIA,EAAA,OAAOD,UAAP,CAAA;AACD,CAAA;AAEM,SAASL,uBAAT,CACLJ,IADK,EAELC,IAAqB,GAAG,EAFnB,EAGL;AACA,EAAA,IAAIe,OAAJ,CAAA;;AAEA,EAAA,IAAIC,gBAAU,CAACjB,IAAD,CAAd,EAAsB;IACpBgB,OAAO,GAAG,EAAE,GAAGf,IAAL;AAAWiB,MAAAA,WAAW,EAAElB,IAAAA;KAAlC,CAAA;AACD,GAFD,MAEO;AACL;IACAgB,OAAO,GAAGhB,IAAI,IAAI,EAAlB,CAAA;AACD,GAAA;;EAED,OAAOmB,oBAAc,CAACH,OAAD,CAArB,CAAA;AACD;;;;;"}
1
+ {"version":3,"file":"useIsMutating.js","sources":["../../src/useIsMutating.ts"],"sourcesContent":["import { computed, isRef, onScopeDispose, ref, watch } from 'vue-demi'\nimport type { Ref } from 'vue-demi'\nimport type { MutationKey, MutationFilters as MF } from '@tanstack/query-core'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, isQueryKey } from './utils'\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 const filters = computed(() => parseFilterArgs(arg1, arg2))\n const queryClient =\n filters.value.queryClient ?? useQueryClient(filters.value.queryClientKey)\n\n const isMutating = ref(queryClient.isMutating(filters))\n\n const unsubscribe = queryClient.getMutationCache().subscribe(() => {\n isMutating.value = queryClient.isMutating(filters)\n })\n\n watch(\n filters,\n () => {\n isMutating.value = queryClient.isMutating(filters)\n },\n { deep: true },\n )\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 = isRef(arg1) ? arg1.value : arg1\n const plainArg2 = isRef(arg2) ? arg2.value : 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","filters","computed","parseFilterArgs","queryClient","value","useQueryClient","queryClientKey","isMutating","ref","unsubscribe","getMutationCache","subscribe","watch","deep","onScopeDispose","plainArg1","isRef","plainArg2","options","isQueryKey","mutationKey","cloneDeepUnref"],"mappings":";;;;;;;;AAeO,SAASA,aAAT,CACLC,IADK,EAELC,IAFK,EAGQ;AAAA,EAAA,IAAA,qBAAA,CAAA;;EACb,MAAMC,OAAO,GAAGC,gBAAQ,CAAC,MAAMC,eAAe,CAACJ,IAAD,EAAOC,IAAP,CAAtB,CAAxB,CAAA;AACA,EAAA,MAAMI,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,CAACL,WAAW,CAACI,UAAZ,CAAuBP,OAAvB,CAAD,CAAtB,CAAA;EAEA,MAAMS,WAAW,GAAGN,WAAW,CAACO,gBAAZ,EAA+BC,CAAAA,SAA/B,CAAyC,MAAM;IACjEJ,UAAU,CAACH,KAAX,GAAmBD,WAAW,CAACI,UAAZ,CAAuBP,OAAvB,CAAnB,CAAA;AACD,GAFmB,CAApB,CAAA;EAIAY,aAAK,CACHZ,OADG,EAEH,MAAM;IACJO,UAAU,CAACH,KAAX,GAAmBD,WAAW,CAACI,UAAZ,CAAuBP,OAAvB,CAAnB,CAAA;AACD,GAJE,EAKH;AAAEa,IAAAA,IAAI,EAAE,IAAA;AAAR,GALG,CAAL,CAAA;AAQAC,EAAAA,sBAAc,CAAC,MAAM;IACnBL,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;AAIA,EAAA,OAAOF,UAAP,CAAA;AACD,CAAA;AAEM,SAASL,eAAT,CACLJ,IADK,EAELC,IAAqB,GAAG,EAFnB,EAGL;EACA,MAAMgB,SAAS,GAAGC,aAAK,CAAClB,IAAD,CAAL,GAAcA,IAAI,CAACM,KAAnB,GAA2BN,IAA7C,CAAA;EACA,MAAMmB,SAAS,GAAGD,aAAK,CAACjB,IAAD,CAAL,GAAcA,IAAI,CAACK,KAAnB,GAA2BL,IAA7C,CAAA;EAEA,IAAImB,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;;;;;"}
@@ -1,18 +1,17 @@
1
- import { ref, watch, onScopeDispose } from 'vue-demi';
1
+ import { computed, ref, watch, onScopeDispose, isRef } from 'vue-demi';
2
2
  import { useQueryClient } from './useQueryClient.mjs';
3
3
  import { isQueryKey, cloneDeepUnref } from './utils.mjs';
4
4
 
5
5
  function useIsMutating(arg1, arg2) {
6
6
  var _filters$value$queryC;
7
7
 
8
- const filters = ref(parseMutationFilterArgs(arg1, arg2));
8
+ const filters = computed(() => parseFilterArgs(arg1, arg2));
9
9
  const queryClient = (_filters$value$queryC = filters.value.queryClient) != null ? _filters$value$queryC : useQueryClient(filters.value.queryClientKey);
10
10
  const isMutating = ref(queryClient.isMutating(filters));
11
11
  const unsubscribe = queryClient.getMutationCache().subscribe(() => {
12
12
  isMutating.value = queryClient.isMutating(filters);
13
13
  });
14
- watch([() => arg1, () => arg2], () => {
15
- filters.value = parseMutationFilterArgs(arg1, arg2);
14
+ watch(filters, () => {
16
15
  isMutating.value = queryClient.isMutating(filters);
17
16
  }, {
18
17
  deep: true
@@ -22,20 +21,22 @@ function useIsMutating(arg1, arg2) {
22
21
  });
23
22
  return isMutating;
24
23
  }
25
- function parseMutationFilterArgs(arg1, arg2 = {}) {
26
- let options;
24
+ function parseFilterArgs(arg1, arg2 = {}) {
25
+ const plainArg1 = isRef(arg1) ? arg1.value : arg1;
26
+ const plainArg2 = isRef(arg2) ? arg2.value : arg2;
27
+ let options = plainArg1;
27
28
 
28
- if (isQueryKey(arg1)) {
29
- options = { ...arg2,
30
- mutationKey: arg1
29
+ if (isQueryKey(plainArg1)) {
30
+ options = { ...plainArg2,
31
+ mutationKey: plainArg1
31
32
  };
32
33
  } else {
33
34
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
34
- options = arg1 || {};
35
+ options = plainArg1 || {};
35
36
  }
36
37
 
37
38
  return cloneDeepUnref(options);
38
39
  }
39
40
 
40
- export { parseMutationFilterArgs, useIsMutating };
41
+ export { parseFilterArgs, useIsMutating };
41
42
  //# sourceMappingURL=useIsMutating.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIsMutating.mjs","sources":["../../src/useIsMutating.ts"],"sourcesContent":["import { onScopeDispose, ref, watch } from 'vue-demi'\nimport type { Ref } from 'vue-demi'\nimport type { MutationKey, MutationFilters as MF } from '@tanstack/query-core'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, isQueryKey } from './utils'\nimport type { MaybeRefDeep, WithQueryClientKey } from './types'\n\nexport type MutationFilters = MaybeRefDeep<WithQueryClientKey<MF>>\n\nexport function useIsMutating(filters?: MutationFilters): Ref<number>\nexport function useIsMutating(\n mutationKey?: MutationKey,\n filters?: Omit<MutationFilters, 'mutationKey'>,\n): Ref<number>\nexport function useIsMutating(\n arg1?: MutationKey | MutationFilters,\n arg2?: Omit<MutationFilters, 'mutationKey'>,\n): Ref<number> {\n const filters = ref(parseMutationFilterArgs(arg1, arg2))\n const queryClient =\n filters.value.queryClient ?? useQueryClient(filters.value.queryClientKey)\n\n const isMutating = ref(queryClient.isMutating(filters))\n\n const unsubscribe = queryClient.getMutationCache().subscribe(() => {\n isMutating.value = queryClient.isMutating(filters)\n })\n\n watch(\n [() => arg1, () => arg2],\n () => {\n filters.value = parseMutationFilterArgs(arg1, arg2)\n isMutating.value = queryClient.isMutating(filters)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return isMutating\n}\n\nexport function parseMutationFilterArgs(\n arg1?: MutationKey | MutationFilters,\n arg2: MutationFilters = {},\n) {\n let options: MutationFilters\n\n if (isQueryKey(arg1)) {\n options = { ...arg2, mutationKey: arg1 }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n options = arg1 || {}\n }\n\n return cloneDeepUnref(options) as WithQueryClientKey<MF>\n}\n"],"names":["useIsMutating","arg1","arg2","filters","ref","parseMutationFilterArgs","queryClient","value","useQueryClient","queryClientKey","isMutating","unsubscribe","getMutationCache","subscribe","watch","deep","onScopeDispose","options","isQueryKey","mutationKey","cloneDeepUnref"],"mappings":";;;;AAeO,SAASA,aAAT,CACLC,IADK,EAELC,IAFK,EAGQ;AAAA,EAAA,IAAA,qBAAA,CAAA;;EACb,MAAMC,OAAO,GAAGC,GAAG,CAACC,uBAAuB,CAACJ,IAAD,EAAOC,IAAP,CAAxB,CAAnB,CAAA;AACA,EAAA,MAAMI,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,GAAGN,GAAG,CAACE,WAAW,CAACI,UAAZ,CAAuBP,OAAvB,CAAD,CAAtB,CAAA;EAEA,MAAMQ,WAAW,GAAGL,WAAW,CAACM,gBAAZ,EAA+BC,CAAAA,SAA/B,CAAyC,MAAM;IACjEH,UAAU,CAACH,KAAX,GAAmBD,WAAW,CAACI,UAAZ,CAAuBP,OAAvB,CAAnB,CAAA;AACD,GAFmB,CAApB,CAAA;EAIAW,KAAK,CACH,CAAC,MAAMb,IAAP,EAAa,MAAMC,IAAnB,CADG,EAEH,MAAM;IACJC,OAAO,CAACI,KAAR,GAAgBF,uBAAuB,CAACJ,IAAD,EAAOC,IAAP,CAAvC,CAAA;IACAQ,UAAU,CAACH,KAAX,GAAmBD,WAAW,CAACI,UAAZ,CAAuBP,OAAvB,CAAnB,CAAA;AACD,GALE,EAMH;AAAEY,IAAAA,IAAI,EAAE,IAAA;AAAR,GANG,CAAL,CAAA;AASAC,EAAAA,cAAc,CAAC,MAAM;IACnBL,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;AAIA,EAAA,OAAOD,UAAP,CAAA;AACD,CAAA;AAEM,SAASL,uBAAT,CACLJ,IADK,EAELC,IAAqB,GAAG,EAFnB,EAGL;AACA,EAAA,IAAIe,OAAJ,CAAA;;AAEA,EAAA,IAAIC,UAAU,CAACjB,IAAD,CAAd,EAAsB;IACpBgB,OAAO,GAAG,EAAE,GAAGf,IAAL;AAAWiB,MAAAA,WAAW,EAAElB,IAAAA;KAAlC,CAAA;AACD,GAFD,MAEO;AACL;IACAgB,OAAO,GAAGhB,IAAI,IAAI,EAAlB,CAAA;AACD,GAAA;;EAED,OAAOmB,cAAc,CAACH,OAAD,CAArB,CAAA;AACD;;;;"}
1
+ {"version":3,"file":"useIsMutating.mjs","sources":["../../src/useIsMutating.ts"],"sourcesContent":["import { computed, isRef, onScopeDispose, ref, watch } from 'vue-demi'\nimport type { Ref } from 'vue-demi'\nimport type { MutationKey, MutationFilters as MF } from '@tanstack/query-core'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref, isQueryKey } from './utils'\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 const filters = computed(() => parseFilterArgs(arg1, arg2))\n const queryClient =\n filters.value.queryClient ?? useQueryClient(filters.value.queryClientKey)\n\n const isMutating = ref(queryClient.isMutating(filters))\n\n const unsubscribe = queryClient.getMutationCache().subscribe(() => {\n isMutating.value = queryClient.isMutating(filters)\n })\n\n watch(\n filters,\n () => {\n isMutating.value = queryClient.isMutating(filters)\n },\n { deep: true },\n )\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 = isRef(arg1) ? arg1.value : arg1\n const plainArg2 = isRef(arg2) ? arg2.value : 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","filters","computed","parseFilterArgs","queryClient","value","useQueryClient","queryClientKey","isMutating","ref","unsubscribe","getMutationCache","subscribe","watch","deep","onScopeDispose","plainArg1","isRef","plainArg2","options","isQueryKey","mutationKey","cloneDeepUnref"],"mappings":";;;;AAeO,SAASA,aAAT,CACLC,IADK,EAELC,IAFK,EAGQ;AAAA,EAAA,IAAA,qBAAA,CAAA;;EACb,MAAMC,OAAO,GAAGC,QAAQ,CAAC,MAAMC,eAAe,CAACJ,IAAD,EAAOC,IAAP,CAAtB,CAAxB,CAAA;AACA,EAAA,MAAMI,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,CAACL,WAAW,CAACI,UAAZ,CAAuBP,OAAvB,CAAD,CAAtB,CAAA;EAEA,MAAMS,WAAW,GAAGN,WAAW,CAACO,gBAAZ,EAA+BC,CAAAA,SAA/B,CAAyC,MAAM;IACjEJ,UAAU,CAACH,KAAX,GAAmBD,WAAW,CAACI,UAAZ,CAAuBP,OAAvB,CAAnB,CAAA;AACD,GAFmB,CAApB,CAAA;EAIAY,KAAK,CACHZ,OADG,EAEH,MAAM;IACJO,UAAU,CAACH,KAAX,GAAmBD,WAAW,CAACI,UAAZ,CAAuBP,OAAvB,CAAnB,CAAA;AACD,GAJE,EAKH;AAAEa,IAAAA,IAAI,EAAE,IAAA;AAAR,GALG,CAAL,CAAA;AAQAC,EAAAA,cAAc,CAAC,MAAM;IACnBL,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;AAIA,EAAA,OAAOF,UAAP,CAAA;AACD,CAAA;AAEM,SAASL,eAAT,CACLJ,IADK,EAELC,IAAqB,GAAG,EAFnB,EAGL;EACA,MAAMgB,SAAS,GAAGC,KAAK,CAAClB,IAAD,CAAL,GAAcA,IAAI,CAACM,KAAnB,GAA2BN,IAA7C,CAAA;EACA,MAAMmB,SAAS,GAAGD,KAAK,CAACjB,IAAD,CAAL,GAAcA,IAAI,CAACK,KAAnB,GAA2BL,IAA7C,CAAA;EAEA,IAAImB,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,37 +1,47 @@
1
1
  import { QueriesObserver } from '@tanstack/query-core';
2
- import { reactive, watch, onScopeDispose, readonly } from 'vue-demi';
2
+ import { computed, reactive, ref, watch, onScopeDispose, readonly } from 'vue-demi';
3
3
  import { useQueryClient } from './useQueryClient.esm.js';
4
4
  import { cloneDeepUnref } from './utils.esm.js';
5
5
 
6
6
  /* eslint-disable @typescript-eslint/no-explicit-any */
7
-
8
7
  function useQueries({
9
8
  queries
10
9
  }) {
11
- var _unreffedQueries$, _unreffedQueries$2;
10
+ var _unreffedQueries$valu, _unreffedQueries$valu2;
12
11
 
13
- const unreffedQueries = cloneDeepUnref(queries);
14
- const queryClientKey = (_unreffedQueries$ = unreffedQueries[0]) == null ? void 0 : _unreffedQueries$.queryClientKey;
15
- const optionsQueryClient = (_unreffedQueries$2 = unreffedQueries[0]) == null ? void 0 : _unreffedQueries$2.queryClient;
12
+ const unreffedQueries = computed(() => cloneDeepUnref(queries));
13
+ const queryClientKey = (_unreffedQueries$valu = unreffedQueries.value[0]) == null ? void 0 : _unreffedQueries$valu.queryClientKey;
14
+ const optionsQueryClient = (_unreffedQueries$valu2 = unreffedQueries.value[0]) == null ? void 0 : _unreffedQueries$valu2.queryClient;
16
15
  const queryClient = optionsQueryClient != null ? optionsQueryClient : useQueryClient(queryClientKey);
17
- const defaultedQueries = unreffedQueries.map(options => {
18
- return queryClient.defaultQueryOptions(options);
19
- });
20
- const observer = new QueriesObserver(queryClient, defaultedQueries);
16
+ const defaultedQueries = computed(() => unreffedQueries.value.map(options => {
17
+ const defaulted = queryClient.defaultQueryOptions(options);
18
+ defaulted._optimisticResults = queryClient.isRestoring.value ? 'isRestoring' : 'optimistic';
19
+ return defaulted;
20
+ }));
21
+ const observer = new QueriesObserver(queryClient, defaultedQueries.value);
21
22
  const state = reactive(observer.getCurrentResult());
22
- const unsubscribe = observer.subscribe(result => {
23
- state.splice(0, state.length, ...result);
23
+ const unsubscribe = ref(() => {// noop
24
+ });
25
+ watch(queryClient.isRestoring, isRestoring => {
26
+ if (!isRestoring) {
27
+ unsubscribe.value();
28
+ unsubscribe.value = observer.subscribe(result => {
29
+ state.splice(0, result.length, ...result);
30
+ }); // Subscription would not fire for persisted results
31
+
32
+ state.splice(0, state.length, ...observer.getOptimisticResult(defaultedQueries.value));
33
+ }
34
+ }, {
35
+ immediate: true
24
36
  });
25
- watch(() => queries, () => {
26
- const defaulted = cloneDeepUnref(queries).map(options => {
27
- return queryClient.defaultQueryOptions(options);
28
- });
29
- observer.setQueries(defaulted);
37
+ watch(unreffedQueries, () => {
38
+ observer.setQueries(defaultedQueries.value);
39
+ state.splice(0, state.length, ...observer.getCurrentResult());
30
40
  }, {
31
41
  deep: true
32
42
  });
33
43
  onScopeDispose(() => {
34
- unsubscribe();
44
+ unsubscribe.value();
35
45
  });
36
46
  return readonly(state);
37
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useQueries.esm.js","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport { onScopeDispose, reactive, readonly, watch } from 'vue-demi'\nimport type { Ref } from 'vue-demi'\n\nimport type { QueryFunction, QueryObserverResult } from '@tanstack/query-core'\n\nimport { useQueryClient } from './useQueryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport { cloneDeepUnref } from './utils'\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptions<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptions<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? UseQueryOptions<TQueryFnData, unknown, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptions<TQueryFnData, unknown, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptions\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? QueryObserverResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? QueryObserverResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? QueryObserverResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? QueryObserverResult<TQueryFnData>\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? UseQueryOptions[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptions[]\n\n/**\n * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? QueryObserverResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]\n : // Fallback\n QueryObserverResult[]\n\ntype UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]\n\nexport function useQueries<T extends any[]>({\n queries,\n}: {\n queries: Ref<UseQueriesOptionsArg<T>> | UseQueriesOptionsArg<T>\n}): Readonly<UseQueriesResults<T>> {\n const unreffedQueries = cloneDeepUnref(queries) as UseQueriesOptionsArg<T>\n\n const queryClientKey = unreffedQueries[0]?.queryClientKey\n const optionsQueryClient = unreffedQueries[0]?.queryClient\n const queryClient = optionsQueryClient ?? useQueryClient(queryClientKey)\n const defaultedQueries = unreffedQueries.map((options) => {\n return queryClient.defaultQueryOptions(options)\n })\n\n const observer = new QueriesObserver(queryClient, defaultedQueries)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n state.splice(0, state.length, ...result)\n })\n\n watch(\n () => queries,\n () => {\n const defaulted = (\n cloneDeepUnref(queries) as UseQueriesOptionsArg<T>\n ).map((options) => {\n return queryClient.defaultQueryOptions(options)\n })\n observer.setQueries(defaulted)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return readonly(state) as UseQueriesResults<T>\n}\n"],"names":["useQueries","queries","unreffedQueries","cloneDeepUnref","queryClientKey","optionsQueryClient","queryClient","useQueryClient","defaultedQueries","map","options","defaultQueryOptions","observer","QueriesObserver","state","reactive","getCurrentResult","unsubscribe","subscribe","result","splice","length","watch","defaulted","setQueries","deep","onScopeDispose","readonly"],"mappings":";;;;;AAAA;;AA+HO,SAASA,UAAT,CAAqC;AAC1CC,EAAAA,OAAAA;AAD0C,CAArC,EAI4B;AAAA,EAAA,IAAA,iBAAA,EAAA,kBAAA,CAAA;;AACjC,EAAA,MAAMC,eAAe,GAAGC,cAAc,CAACF,OAAD,CAAtC,CAAA;EAEA,MAAMG,cAAc,wBAAGF,eAAe,CAAC,CAAD,CAAlB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAG,kBAAoBE,cAA3C,CAAA;EACA,MAAMC,kBAAkB,yBAAGH,eAAe,CAAC,CAAD,CAAlB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAG,mBAAoBI,WAA/C,CAAA;EACA,MAAMA,WAAW,GAAGD,kBAAH,IAAA,IAAA,GAAGA,kBAAH,GAAyBE,cAAc,CAACH,cAAD,CAAxD,CAAA;AACA,EAAA,MAAMI,gBAAgB,GAAGN,eAAe,CAACO,GAAhB,CAAqBC,OAAD,IAAa;AACxD,IAAA,OAAOJ,WAAW,CAACK,mBAAZ,CAAgCD,OAAhC,CAAP,CAAA;AACD,GAFwB,CAAzB,CAAA;EAIA,MAAME,QAAQ,GAAG,IAAIC,eAAJ,CAAoBP,WAApB,EAAiCE,gBAAjC,CAAjB,CAAA;EACA,MAAMM,KAAK,GAAGC,QAAQ,CAACH,QAAQ,CAACI,gBAAT,EAAD,CAAtB,CAAA;AAEA,EAAA,MAAMC,WAAW,GAAGL,QAAQ,CAACM,SAAT,CAAoBC,MAAD,IAAY;IACjDL,KAAK,CAACM,MAAN,CAAa,CAAb,EAAgBN,KAAK,CAACO,MAAtB,EAA8B,GAAGF,MAAjC,CAAA,CAAA;AACD,GAFmB,CAApB,CAAA;AAIAG,EAAAA,KAAK,CACH,MAAMrB,OADH,EAEH,MAAM;IACJ,MAAMsB,SAAS,GACbpB,cAAc,CAACF,OAAD,CADE,CAEhBQ,GAFgB,CAEXC,OAAD,IAAa;AACjB,MAAA,OAAOJ,WAAW,CAACK,mBAAZ,CAAgCD,OAAhC,CAAP,CAAA;AACD,KAJiB,CAAlB,CAAA;IAKAE,QAAQ,CAACY,UAAT,CAAoBD,SAApB,CAAA,CAAA;AACD,GATE,EAUH;AAAEE,IAAAA,IAAI,EAAE,IAAA;AAAR,GAVG,CAAL,CAAA;AAaAC,EAAAA,cAAc,CAAC,MAAM;IACnBT,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;EAIA,OAAOU,QAAQ,CAACb,KAAD,CAAf,CAAA;AACD;;;;"}
1
+ {"version":3,"file":"useQueries.esm.js","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n ref,\n watch,\n} from 'vue-demi'\nimport type { Ref } from 'vue-demi'\n\nimport type { QueryFunction, QueryObserverResult } from '@tanstack/query-core'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptions<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptions<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? UseQueryOptions<TQueryFnData, unknown, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptions<TQueryFnData, unknown, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptions\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? QueryObserverResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? QueryObserverResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? QueryObserverResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? QueryObserverResult<TQueryFnData>\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? UseQueryOptions[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptions[]\n\n/**\n * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? QueryObserverResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]\n : // Fallback\n QueryObserverResult[]\n\ntype UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]\n\nexport function useQueries<T extends any[]>({\n queries,\n}: {\n queries: Ref<UseQueriesOptionsArg<T>> | UseQueriesOptionsArg<T>\n}): Readonly<UseQueriesResults<T>> {\n const unreffedQueries = computed(\n () => cloneDeepUnref(queries) as UseQueriesOptionsArg<T>,\n )\n\n const queryClientKey = unreffedQueries.value[0]?.queryClientKey\n const optionsQueryClient = unreffedQueries.value[0]?.queryClient as\n | QueryClient\n | undefined\n const queryClient = optionsQueryClient ?? useQueryClient(queryClientKey)\n const defaultedQueries = computed(() =>\n unreffedQueries.value.map((options) => {\n const defaulted = queryClient.defaultQueryOptions(options)\n defaulted._optimisticResults = queryClient.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver(queryClient, defaultedQueries.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = ref(() => {\n // noop\n })\n\n watch(\n queryClient.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe.value()\n unsubscribe.value = observer.subscribe((result) => {\n state.splice(0, result.length, ...result)\n })\n // Subscription would not fire for persisted results\n state.splice(\n 0,\n state.length,\n ...observer.getOptimisticResult(defaultedQueries.value),\n )\n }\n },\n { immediate: true },\n )\n\n watch(\n unreffedQueries,\n () => {\n observer.setQueries(defaultedQueries.value)\n state.splice(0, state.length, ...observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n return readonly(state) as UseQueriesResults<T>\n}\n"],"names":["useQueries","queries","unreffedQueries","computed","cloneDeepUnref","queryClientKey","value","optionsQueryClient","queryClient","useQueryClient","defaultedQueries","map","options","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","observer","QueriesObserver","state","reactive","getCurrentResult","unsubscribe","ref","watch","subscribe","result","splice","length","getOptimisticResult","immediate","setQueries","deep","onScopeDispose","readonly"],"mappings":";;;;;AAAA;AAuIO,SAASA,UAAT,CAAqC;AAC1CC,EAAAA,OAAAA;AAD0C,CAArC,EAI4B;AAAA,EAAA,IAAA,qBAAA,EAAA,sBAAA,CAAA;;EACjC,MAAMC,eAAe,GAAGC,QAAQ,CAC9B,MAAMC,cAAc,CAACH,OAAD,CADU,CAAhC,CAAA;EAIA,MAAMI,cAAc,GAAGH,CAAAA,qBAAAA,GAAAA,eAAe,CAACI,KAAhB,CAAsB,CAAtB,CAAH,KAAG,IAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAA0BD,cAAjD,CAAA;EACA,MAAME,kBAAkB,GAAGL,CAAAA,sBAAAA,GAAAA,eAAe,CAACI,KAAhB,CAAsB,CAAtB,CAAH,KAAG,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAA0BE,WAArD,CAAA;EAGA,MAAMA,WAAW,GAAGD,kBAAH,IAAA,IAAA,GAAGA,kBAAH,GAAyBE,cAAc,CAACJ,cAAD,CAAxD,CAAA;AACA,EAAA,MAAMK,gBAAgB,GAAGP,QAAQ,CAAC,MAChCD,eAAe,CAACI,KAAhB,CAAsBK,GAAtB,CAA2BC,OAAD,IAAa;AACrC,IAAA,MAAMC,SAAS,GAAGL,WAAW,CAACM,mBAAZ,CAAgCF,OAAhC,CAAlB,CAAA;IACAC,SAAS,CAACE,kBAAV,GAA+BP,WAAW,CAACQ,WAAZ,CAAwBV,KAAxB,GAC3B,aAD2B,GAE3B,YAFJ,CAAA;AAIA,IAAA,OAAOO,SAAP,CAAA;AACD,GAPD,CAD+B,CAAjC,CAAA;EAWA,MAAMI,QAAQ,GAAG,IAAIC,eAAJ,CAAoBV,WAApB,EAAiCE,gBAAgB,CAACJ,KAAlD,CAAjB,CAAA;EACA,MAAMa,KAAK,GAAGC,QAAQ,CAACH,QAAQ,CAACI,gBAAT,EAAD,CAAtB,CAAA;AAEA,EAAA,MAAMC,WAAW,GAAGC,GAAG,CAAC,MAAM;AAE7B,GAFsB,CAAvB,CAAA;AAIAC,EAAAA,KAAK,CACHhB,WAAW,CAACQ,WADT,EAEFA,WAAD,IAAiB;IACf,IAAI,CAACA,WAAL,EAAkB;AAChBM,MAAAA,WAAW,CAAChB,KAAZ,EAAA,CAAA;MACAgB,WAAW,CAAChB,KAAZ,GAAoBW,QAAQ,CAACQ,SAAT,CAAoBC,MAAD,IAAY;QACjDP,KAAK,CAACQ,MAAN,CAAa,CAAb,EAAgBD,MAAM,CAACE,MAAvB,EAA+B,GAAGF,MAAlC,CAAA,CAAA;OADkB,CAApB,CAFgB;;AAMhBP,MAAAA,KAAK,CAACQ,MAAN,CACE,CADF,EAEER,KAAK,CAACS,MAFR,EAGE,GAAGX,QAAQ,CAACY,mBAAT,CAA6BnB,gBAAgB,CAACJ,KAA9C,CAHL,CAAA,CAAA;AAKD,KAAA;AACF,GAfE,EAgBH;AAAEwB,IAAAA,SAAS,EAAE,IAAA;AAAb,GAhBG,CAAL,CAAA;EAmBAN,KAAK,CACHtB,eADG,EAEH,MAAM;AACJe,IAAAA,QAAQ,CAACc,UAAT,CAAoBrB,gBAAgB,CAACJ,KAArC,CAAA,CAAA;AACAa,IAAAA,KAAK,CAACQ,MAAN,CAAa,CAAb,EAAgBR,KAAK,CAACS,MAAtB,EAA8B,GAAGX,QAAQ,CAACI,gBAAT,EAAjC,CAAA,CAAA;AACD,GALE,EAMH;AAAEW,IAAAA,IAAI,EAAE,IAAA;AAAR,GANG,CAAL,CAAA;AASAC,EAAAA,cAAc,CAAC,MAAM;AACnBX,IAAAA,WAAW,CAAChB,KAAZ,EAAA,CAAA;AACD,GAFa,CAAd,CAAA;EAIA,OAAO4B,QAAQ,CAACf,KAAD,CAAf,CAAA;AACD;;;;"}
@@ -8,34 +8,44 @@ var useQueryClient = require('./useQueryClient.js');
8
8
  var utils = require('./utils.js');
9
9
 
10
10
  /* eslint-disable @typescript-eslint/no-explicit-any */
11
-
12
11
  function useQueries({
13
12
  queries
14
13
  }) {
15
- var _unreffedQueries$, _unreffedQueries$2;
14
+ var _unreffedQueries$valu, _unreffedQueries$valu2;
16
15
 
17
- const unreffedQueries = utils.cloneDeepUnref(queries);
18
- const queryClientKey = (_unreffedQueries$ = unreffedQueries[0]) == null ? void 0 : _unreffedQueries$.queryClientKey;
19
- const optionsQueryClient = (_unreffedQueries$2 = unreffedQueries[0]) == null ? void 0 : _unreffedQueries$2.queryClient;
16
+ const unreffedQueries = vueDemi.computed(() => utils.cloneDeepUnref(queries));
17
+ const queryClientKey = (_unreffedQueries$valu = unreffedQueries.value[0]) == null ? void 0 : _unreffedQueries$valu.queryClientKey;
18
+ const optionsQueryClient = (_unreffedQueries$valu2 = unreffedQueries.value[0]) == null ? void 0 : _unreffedQueries$valu2.queryClient;
20
19
  const queryClient = optionsQueryClient != null ? optionsQueryClient : useQueryClient.useQueryClient(queryClientKey);
21
- const defaultedQueries = unreffedQueries.map(options => {
22
- return queryClient.defaultQueryOptions(options);
23
- });
24
- const observer = new queryCore.QueriesObserver(queryClient, defaultedQueries);
20
+ const defaultedQueries = vueDemi.computed(() => unreffedQueries.value.map(options => {
21
+ const defaulted = queryClient.defaultQueryOptions(options);
22
+ defaulted._optimisticResults = queryClient.isRestoring.value ? 'isRestoring' : 'optimistic';
23
+ return defaulted;
24
+ }));
25
+ const observer = new queryCore.QueriesObserver(queryClient, defaultedQueries.value);
25
26
  const state = vueDemi.reactive(observer.getCurrentResult());
26
- const unsubscribe = observer.subscribe(result => {
27
- state.splice(0, state.length, ...result);
27
+ const unsubscribe = vueDemi.ref(() => {// noop
28
+ });
29
+ vueDemi.watch(queryClient.isRestoring, isRestoring => {
30
+ if (!isRestoring) {
31
+ unsubscribe.value();
32
+ unsubscribe.value = observer.subscribe(result => {
33
+ state.splice(0, result.length, ...result);
34
+ }); // Subscription would not fire for persisted results
35
+
36
+ state.splice(0, state.length, ...observer.getOptimisticResult(defaultedQueries.value));
37
+ }
38
+ }, {
39
+ immediate: true
28
40
  });
29
- vueDemi.watch(() => queries, () => {
30
- const defaulted = utils.cloneDeepUnref(queries).map(options => {
31
- return queryClient.defaultQueryOptions(options);
32
- });
33
- observer.setQueries(defaulted);
41
+ vueDemi.watch(unreffedQueries, () => {
42
+ observer.setQueries(defaultedQueries.value);
43
+ state.splice(0, state.length, ...observer.getCurrentResult());
34
44
  }, {
35
45
  deep: true
36
46
  });
37
47
  vueDemi.onScopeDispose(() => {
38
- unsubscribe();
48
+ unsubscribe.value();
39
49
  });
40
50
  return vueDemi.readonly(state);
41
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useQueries.js","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport { onScopeDispose, reactive, readonly, watch } from 'vue-demi'\nimport type { Ref } from 'vue-demi'\n\nimport type { QueryFunction, QueryObserverResult } from '@tanstack/query-core'\n\nimport { useQueryClient } from './useQueryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport { cloneDeepUnref } from './utils'\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptions<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptions<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? UseQueryOptions<TQueryFnData, unknown, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptions<TQueryFnData, unknown, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptions\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? QueryObserverResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? QueryObserverResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? QueryObserverResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? QueryObserverResult<TQueryFnData>\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? UseQueryOptions[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptions[]\n\n/**\n * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? QueryObserverResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]\n : // Fallback\n QueryObserverResult[]\n\ntype UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]\n\nexport function useQueries<T extends any[]>({\n queries,\n}: {\n queries: Ref<UseQueriesOptionsArg<T>> | UseQueriesOptionsArg<T>\n}): Readonly<UseQueriesResults<T>> {\n const unreffedQueries = cloneDeepUnref(queries) as UseQueriesOptionsArg<T>\n\n const queryClientKey = unreffedQueries[0]?.queryClientKey\n const optionsQueryClient = unreffedQueries[0]?.queryClient\n const queryClient = optionsQueryClient ?? useQueryClient(queryClientKey)\n const defaultedQueries = unreffedQueries.map((options) => {\n return queryClient.defaultQueryOptions(options)\n })\n\n const observer = new QueriesObserver(queryClient, defaultedQueries)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n state.splice(0, state.length, ...result)\n })\n\n watch(\n () => queries,\n () => {\n const defaulted = (\n cloneDeepUnref(queries) as UseQueriesOptionsArg<T>\n ).map((options) => {\n return queryClient.defaultQueryOptions(options)\n })\n observer.setQueries(defaulted)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return readonly(state) as UseQueriesResults<T>\n}\n"],"names":["useQueries","queries","unreffedQueries","cloneDeepUnref","queryClientKey","optionsQueryClient","queryClient","useQueryClient","defaultedQueries","map","options","defaultQueryOptions","observer","QueriesObserver","state","reactive","getCurrentResult","unsubscribe","subscribe","result","splice","length","watch","defaulted","setQueries","deep","onScopeDispose","readonly"],"mappings":";;;;;;;;;AAAA;;AA+HO,SAASA,UAAT,CAAqC;AAC1CC,EAAAA,OAAAA;AAD0C,CAArC,EAI4B;AAAA,EAAA,IAAA,iBAAA,EAAA,kBAAA,CAAA;;AACjC,EAAA,MAAMC,eAAe,GAAGC,oBAAc,CAACF,OAAD,CAAtC,CAAA;EAEA,MAAMG,cAAc,wBAAGF,eAAe,CAAC,CAAD,CAAlB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAG,kBAAoBE,cAA3C,CAAA;EACA,MAAMC,kBAAkB,yBAAGH,eAAe,CAAC,CAAD,CAAlB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAG,mBAAoBI,WAA/C,CAAA;EACA,MAAMA,WAAW,GAAGD,kBAAH,IAAA,IAAA,GAAGA,kBAAH,GAAyBE,6BAAc,CAACH,cAAD,CAAxD,CAAA;AACA,EAAA,MAAMI,gBAAgB,GAAGN,eAAe,CAACO,GAAhB,CAAqBC,OAAD,IAAa;AACxD,IAAA,OAAOJ,WAAW,CAACK,mBAAZ,CAAgCD,OAAhC,CAAP,CAAA;AACD,GAFwB,CAAzB,CAAA;EAIA,MAAME,QAAQ,GAAG,IAAIC,yBAAJ,CAAoBP,WAApB,EAAiCE,gBAAjC,CAAjB,CAAA;EACA,MAAMM,KAAK,GAAGC,gBAAQ,CAACH,QAAQ,CAACI,gBAAT,EAAD,CAAtB,CAAA;AAEA,EAAA,MAAMC,WAAW,GAAGL,QAAQ,CAACM,SAAT,CAAoBC,MAAD,IAAY;IACjDL,KAAK,CAACM,MAAN,CAAa,CAAb,EAAgBN,KAAK,CAACO,MAAtB,EAA8B,GAAGF,MAAjC,CAAA,CAAA;AACD,GAFmB,CAApB,CAAA;AAIAG,EAAAA,aAAK,CACH,MAAMrB,OADH,EAEH,MAAM;IACJ,MAAMsB,SAAS,GACbpB,oBAAc,CAACF,OAAD,CADE,CAEhBQ,GAFgB,CAEXC,OAAD,IAAa;AACjB,MAAA,OAAOJ,WAAW,CAACK,mBAAZ,CAAgCD,OAAhC,CAAP,CAAA;AACD,KAJiB,CAAlB,CAAA;IAKAE,QAAQ,CAACY,UAAT,CAAoBD,SAApB,CAAA,CAAA;AACD,GATE,EAUH;AAAEE,IAAAA,IAAI,EAAE,IAAA;AAAR,GAVG,CAAL,CAAA;AAaAC,EAAAA,sBAAc,CAAC,MAAM;IACnBT,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;EAIA,OAAOU,gBAAQ,CAACb,KAAD,CAAf,CAAA;AACD;;;;"}
1
+ {"version":3,"file":"useQueries.js","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n ref,\n watch,\n} from 'vue-demi'\nimport type { Ref } from 'vue-demi'\n\nimport type { QueryFunction, QueryObserverResult } from '@tanstack/query-core'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptions<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptions<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? UseQueryOptions<TQueryFnData, unknown, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptions<TQueryFnData, unknown, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptions\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? QueryObserverResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? QueryObserverResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? QueryObserverResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? QueryObserverResult<TQueryFnData>\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? UseQueryOptions[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptions[]\n\n/**\n * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? QueryObserverResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]\n : // Fallback\n QueryObserverResult[]\n\ntype UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]\n\nexport function useQueries<T extends any[]>({\n queries,\n}: {\n queries: Ref<UseQueriesOptionsArg<T>> | UseQueriesOptionsArg<T>\n}): Readonly<UseQueriesResults<T>> {\n const unreffedQueries = computed(\n () => cloneDeepUnref(queries) as UseQueriesOptionsArg<T>,\n )\n\n const queryClientKey = unreffedQueries.value[0]?.queryClientKey\n const optionsQueryClient = unreffedQueries.value[0]?.queryClient as\n | QueryClient\n | undefined\n const queryClient = optionsQueryClient ?? useQueryClient(queryClientKey)\n const defaultedQueries = computed(() =>\n unreffedQueries.value.map((options) => {\n const defaulted = queryClient.defaultQueryOptions(options)\n defaulted._optimisticResults = queryClient.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver(queryClient, defaultedQueries.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = ref(() => {\n // noop\n })\n\n watch(\n queryClient.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe.value()\n unsubscribe.value = observer.subscribe((result) => {\n state.splice(0, result.length, ...result)\n })\n // Subscription would not fire for persisted results\n state.splice(\n 0,\n state.length,\n ...observer.getOptimisticResult(defaultedQueries.value),\n )\n }\n },\n { immediate: true },\n )\n\n watch(\n unreffedQueries,\n () => {\n observer.setQueries(defaultedQueries.value)\n state.splice(0, state.length, ...observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n return readonly(state) as UseQueriesResults<T>\n}\n"],"names":["useQueries","queries","unreffedQueries","computed","cloneDeepUnref","queryClientKey","value","optionsQueryClient","queryClient","useQueryClient","defaultedQueries","map","options","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","observer","QueriesObserver","state","reactive","getCurrentResult","unsubscribe","ref","watch","subscribe","result","splice","length","getOptimisticResult","immediate","setQueries","deep","onScopeDispose","readonly"],"mappings":";;;;;;;;;AAAA;AAuIO,SAASA,UAAT,CAAqC;AAC1CC,EAAAA,OAAAA;AAD0C,CAArC,EAI4B;AAAA,EAAA,IAAA,qBAAA,EAAA,sBAAA,CAAA;;EACjC,MAAMC,eAAe,GAAGC,gBAAQ,CAC9B,MAAMC,oBAAc,CAACH,OAAD,CADU,CAAhC,CAAA;EAIA,MAAMI,cAAc,GAAGH,CAAAA,qBAAAA,GAAAA,eAAe,CAACI,KAAhB,CAAsB,CAAtB,CAAH,KAAG,IAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAA0BD,cAAjD,CAAA;EACA,MAAME,kBAAkB,GAAGL,CAAAA,sBAAAA,GAAAA,eAAe,CAACI,KAAhB,CAAsB,CAAtB,CAAH,KAAG,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAA0BE,WAArD,CAAA;EAGA,MAAMA,WAAW,GAAGD,kBAAH,IAAA,IAAA,GAAGA,kBAAH,GAAyBE,6BAAc,CAACJ,cAAD,CAAxD,CAAA;AACA,EAAA,MAAMK,gBAAgB,GAAGP,gBAAQ,CAAC,MAChCD,eAAe,CAACI,KAAhB,CAAsBK,GAAtB,CAA2BC,OAAD,IAAa;AACrC,IAAA,MAAMC,SAAS,GAAGL,WAAW,CAACM,mBAAZ,CAAgCF,OAAhC,CAAlB,CAAA;IACAC,SAAS,CAACE,kBAAV,GAA+BP,WAAW,CAACQ,WAAZ,CAAwBV,KAAxB,GAC3B,aAD2B,GAE3B,YAFJ,CAAA;AAIA,IAAA,OAAOO,SAAP,CAAA;AACD,GAPD,CAD+B,CAAjC,CAAA;EAWA,MAAMI,QAAQ,GAAG,IAAIC,yBAAJ,CAAoBV,WAApB,EAAiCE,gBAAgB,CAACJ,KAAlD,CAAjB,CAAA;EACA,MAAMa,KAAK,GAAGC,gBAAQ,CAACH,QAAQ,CAACI,gBAAT,EAAD,CAAtB,CAAA;AAEA,EAAA,MAAMC,WAAW,GAAGC,WAAG,CAAC,MAAM;AAE7B,GAFsB,CAAvB,CAAA;AAIAC,EAAAA,aAAK,CACHhB,WAAW,CAACQ,WADT,EAEFA,WAAD,IAAiB;IACf,IAAI,CAACA,WAAL,EAAkB;AAChBM,MAAAA,WAAW,CAAChB,KAAZ,EAAA,CAAA;MACAgB,WAAW,CAAChB,KAAZ,GAAoBW,QAAQ,CAACQ,SAAT,CAAoBC,MAAD,IAAY;QACjDP,KAAK,CAACQ,MAAN,CAAa,CAAb,EAAgBD,MAAM,CAACE,MAAvB,EAA+B,GAAGF,MAAlC,CAAA,CAAA;OADkB,CAApB,CAFgB;;AAMhBP,MAAAA,KAAK,CAACQ,MAAN,CACE,CADF,EAEER,KAAK,CAACS,MAFR,EAGE,GAAGX,QAAQ,CAACY,mBAAT,CAA6BnB,gBAAgB,CAACJ,KAA9C,CAHL,CAAA,CAAA;AAKD,KAAA;AACF,GAfE,EAgBH;AAAEwB,IAAAA,SAAS,EAAE,IAAA;AAAb,GAhBG,CAAL,CAAA;EAmBAN,aAAK,CACHtB,eADG,EAEH,MAAM;AACJe,IAAAA,QAAQ,CAACc,UAAT,CAAoBrB,gBAAgB,CAACJ,KAArC,CAAA,CAAA;AACAa,IAAAA,KAAK,CAACQ,MAAN,CAAa,CAAb,EAAgBR,KAAK,CAACS,MAAtB,EAA8B,GAAGX,QAAQ,CAACI,gBAAT,EAAjC,CAAA,CAAA;AACD,GALE,EAMH;AAAEW,IAAAA,IAAI,EAAE,IAAA;AAAR,GANG,CAAL,CAAA;AASAC,EAAAA,sBAAc,CAAC,MAAM;AACnBX,IAAAA,WAAW,CAAChB,KAAZ,EAAA,CAAA;AACD,GAFa,CAAd,CAAA;EAIA,OAAO4B,gBAAQ,CAACf,KAAD,CAAf,CAAA;AACD;;;;"}
@@ -1,37 +1,47 @@
1
1
  import { QueriesObserver } from '@tanstack/query-core';
2
- import { reactive, watch, onScopeDispose, readonly } from 'vue-demi';
2
+ import { computed, reactive, ref, watch, onScopeDispose, readonly } from 'vue-demi';
3
3
  import { useQueryClient } from './useQueryClient.mjs';
4
4
  import { cloneDeepUnref } from './utils.mjs';
5
5
 
6
6
  /* eslint-disable @typescript-eslint/no-explicit-any */
7
-
8
7
  function useQueries({
9
8
  queries
10
9
  }) {
11
- var _unreffedQueries$, _unreffedQueries$2;
10
+ var _unreffedQueries$valu, _unreffedQueries$valu2;
12
11
 
13
- const unreffedQueries = cloneDeepUnref(queries);
14
- const queryClientKey = (_unreffedQueries$ = unreffedQueries[0]) == null ? void 0 : _unreffedQueries$.queryClientKey;
15
- const optionsQueryClient = (_unreffedQueries$2 = unreffedQueries[0]) == null ? void 0 : _unreffedQueries$2.queryClient;
12
+ const unreffedQueries = computed(() => cloneDeepUnref(queries));
13
+ const queryClientKey = (_unreffedQueries$valu = unreffedQueries.value[0]) == null ? void 0 : _unreffedQueries$valu.queryClientKey;
14
+ const optionsQueryClient = (_unreffedQueries$valu2 = unreffedQueries.value[0]) == null ? void 0 : _unreffedQueries$valu2.queryClient;
16
15
  const queryClient = optionsQueryClient != null ? optionsQueryClient : useQueryClient(queryClientKey);
17
- const defaultedQueries = unreffedQueries.map(options => {
18
- return queryClient.defaultQueryOptions(options);
19
- });
20
- const observer = new QueriesObserver(queryClient, defaultedQueries);
16
+ const defaultedQueries = computed(() => unreffedQueries.value.map(options => {
17
+ const defaulted = queryClient.defaultQueryOptions(options);
18
+ defaulted._optimisticResults = queryClient.isRestoring.value ? 'isRestoring' : 'optimistic';
19
+ return defaulted;
20
+ }));
21
+ const observer = new QueriesObserver(queryClient, defaultedQueries.value);
21
22
  const state = reactive(observer.getCurrentResult());
22
- const unsubscribe = observer.subscribe(result => {
23
- state.splice(0, state.length, ...result);
23
+ const unsubscribe = ref(() => {// noop
24
+ });
25
+ watch(queryClient.isRestoring, isRestoring => {
26
+ if (!isRestoring) {
27
+ unsubscribe.value();
28
+ unsubscribe.value = observer.subscribe(result => {
29
+ state.splice(0, result.length, ...result);
30
+ }); // Subscription would not fire for persisted results
31
+
32
+ state.splice(0, state.length, ...observer.getOptimisticResult(defaultedQueries.value));
33
+ }
34
+ }, {
35
+ immediate: true
24
36
  });
25
- watch(() => queries, () => {
26
- const defaulted = cloneDeepUnref(queries).map(options => {
27
- return queryClient.defaultQueryOptions(options);
28
- });
29
- observer.setQueries(defaulted);
37
+ watch(unreffedQueries, () => {
38
+ observer.setQueries(defaultedQueries.value);
39
+ state.splice(0, state.length, ...observer.getCurrentResult());
30
40
  }, {
31
41
  deep: true
32
42
  });
33
43
  onScopeDispose(() => {
34
- unsubscribe();
44
+ unsubscribe.value();
35
45
  });
36
46
  return readonly(state);
37
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useQueries.mjs","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport { onScopeDispose, reactive, readonly, watch } from 'vue-demi'\nimport type { Ref } from 'vue-demi'\n\nimport type { QueryFunction, QueryObserverResult } from '@tanstack/query-core'\n\nimport { useQueryClient } from './useQueryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport { cloneDeepUnref } from './utils'\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptions<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptions<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? UseQueryOptions<TQueryFnData, unknown, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptions<TQueryFnData, unknown, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptions\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? QueryObserverResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? QueryObserverResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? QueryObserverResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? QueryObserverResult<TQueryFnData>\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? UseQueryOptions[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptions[]\n\n/**\n * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? QueryObserverResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]\n : // Fallback\n QueryObserverResult[]\n\ntype UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]\n\nexport function useQueries<T extends any[]>({\n queries,\n}: {\n queries: Ref<UseQueriesOptionsArg<T>> | UseQueriesOptionsArg<T>\n}): Readonly<UseQueriesResults<T>> {\n const unreffedQueries = cloneDeepUnref(queries) as UseQueriesOptionsArg<T>\n\n const queryClientKey = unreffedQueries[0]?.queryClientKey\n const optionsQueryClient = unreffedQueries[0]?.queryClient\n const queryClient = optionsQueryClient ?? useQueryClient(queryClientKey)\n const defaultedQueries = unreffedQueries.map((options) => {\n return queryClient.defaultQueryOptions(options)\n })\n\n const observer = new QueriesObserver(queryClient, defaultedQueries)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = observer.subscribe((result) => {\n state.splice(0, state.length, ...result)\n })\n\n watch(\n () => queries,\n () => {\n const defaulted = (\n cloneDeepUnref(queries) as UseQueriesOptionsArg<T>\n ).map((options) => {\n return queryClient.defaultQueryOptions(options)\n })\n observer.setQueries(defaulted)\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return readonly(state) as UseQueriesResults<T>\n}\n"],"names":["useQueries","queries","unreffedQueries","cloneDeepUnref","queryClientKey","optionsQueryClient","queryClient","useQueryClient","defaultedQueries","map","options","defaultQueryOptions","observer","QueriesObserver","state","reactive","getCurrentResult","unsubscribe","subscribe","result","splice","length","watch","defaulted","setQueries","deep","onScopeDispose","readonly"],"mappings":";;;;;AAAA;;AA+HO,SAASA,UAAT,CAAqC;AAC1CC,EAAAA,OAAAA;AAD0C,CAArC,EAI4B;AAAA,EAAA,IAAA,iBAAA,EAAA,kBAAA,CAAA;;AACjC,EAAA,MAAMC,eAAe,GAAGC,cAAc,CAACF,OAAD,CAAtC,CAAA;EAEA,MAAMG,cAAc,wBAAGF,eAAe,CAAC,CAAD,CAAlB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAG,kBAAoBE,cAA3C,CAAA;EACA,MAAMC,kBAAkB,yBAAGH,eAAe,CAAC,CAAD,CAAlB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAG,mBAAoBI,WAA/C,CAAA;EACA,MAAMA,WAAW,GAAGD,kBAAH,IAAA,IAAA,GAAGA,kBAAH,GAAyBE,cAAc,CAACH,cAAD,CAAxD,CAAA;AACA,EAAA,MAAMI,gBAAgB,GAAGN,eAAe,CAACO,GAAhB,CAAqBC,OAAD,IAAa;AACxD,IAAA,OAAOJ,WAAW,CAACK,mBAAZ,CAAgCD,OAAhC,CAAP,CAAA;AACD,GAFwB,CAAzB,CAAA;EAIA,MAAME,QAAQ,GAAG,IAAIC,eAAJ,CAAoBP,WAApB,EAAiCE,gBAAjC,CAAjB,CAAA;EACA,MAAMM,KAAK,GAAGC,QAAQ,CAACH,QAAQ,CAACI,gBAAT,EAAD,CAAtB,CAAA;AAEA,EAAA,MAAMC,WAAW,GAAGL,QAAQ,CAACM,SAAT,CAAoBC,MAAD,IAAY;IACjDL,KAAK,CAACM,MAAN,CAAa,CAAb,EAAgBN,KAAK,CAACO,MAAtB,EAA8B,GAAGF,MAAjC,CAAA,CAAA;AACD,GAFmB,CAApB,CAAA;AAIAG,EAAAA,KAAK,CACH,MAAMrB,OADH,EAEH,MAAM;IACJ,MAAMsB,SAAS,GACbpB,cAAc,CAACF,OAAD,CADE,CAEhBQ,GAFgB,CAEXC,OAAD,IAAa;AACjB,MAAA,OAAOJ,WAAW,CAACK,mBAAZ,CAAgCD,OAAhC,CAAP,CAAA;AACD,KAJiB,CAAlB,CAAA;IAKAE,QAAQ,CAACY,UAAT,CAAoBD,SAApB,CAAA,CAAA;AACD,GATE,EAUH;AAAEE,IAAAA,IAAI,EAAE,IAAA;AAAR,GAVG,CAAL,CAAA;AAaAC,EAAAA,cAAc,CAAC,MAAM;IACnBT,WAAW,EAAA,CAAA;AACZ,GAFa,CAAd,CAAA;EAIA,OAAOU,QAAQ,CAACb,KAAD,CAAf,CAAA;AACD;;;;"}
1
+ {"version":3,"file":"useQueries.mjs","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n ref,\n watch,\n} from 'vue-demi'\nimport type { Ref } from 'vue-demi'\n\nimport type { QueryFunction, QueryObserverResult } from '@tanstack/query-core'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptions<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptions<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? UseQueryOptions<TQueryFnData, unknown, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptions<TQueryFnData, unknown, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptions\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? QueryObserverResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? QueryObserverResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? QueryObserverResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? QueryObserverResult<TQueryFnData>\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? UseQueryOptions[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptions[]\n\n/**\n * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? QueryObserverResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]\n : // Fallback\n QueryObserverResult[]\n\ntype UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]\n\nexport function useQueries<T extends any[]>({\n queries,\n}: {\n queries: Ref<UseQueriesOptionsArg<T>> | UseQueriesOptionsArg<T>\n}): Readonly<UseQueriesResults<T>> {\n const unreffedQueries = computed(\n () => cloneDeepUnref(queries) as UseQueriesOptionsArg<T>,\n )\n\n const queryClientKey = unreffedQueries.value[0]?.queryClientKey\n const optionsQueryClient = unreffedQueries.value[0]?.queryClient as\n | QueryClient\n | undefined\n const queryClient = optionsQueryClient ?? useQueryClient(queryClientKey)\n const defaultedQueries = computed(() =>\n unreffedQueries.value.map((options) => {\n const defaulted = queryClient.defaultQueryOptions(options)\n defaulted._optimisticResults = queryClient.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver(queryClient, defaultedQueries.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = ref(() => {\n // noop\n })\n\n watch(\n queryClient.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe.value()\n unsubscribe.value = observer.subscribe((result) => {\n state.splice(0, result.length, ...result)\n })\n // Subscription would not fire for persisted results\n state.splice(\n 0,\n state.length,\n ...observer.getOptimisticResult(defaultedQueries.value),\n )\n }\n },\n { immediate: true },\n )\n\n watch(\n unreffedQueries,\n () => {\n observer.setQueries(defaultedQueries.value)\n state.splice(0, state.length, ...observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n return readonly(state) as UseQueriesResults<T>\n}\n"],"names":["useQueries","queries","unreffedQueries","computed","cloneDeepUnref","queryClientKey","value","optionsQueryClient","queryClient","useQueryClient","defaultedQueries","map","options","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","observer","QueriesObserver","state","reactive","getCurrentResult","unsubscribe","ref","watch","subscribe","result","splice","length","getOptimisticResult","immediate","setQueries","deep","onScopeDispose","readonly"],"mappings":";;;;;AAAA;AAuIO,SAASA,UAAT,CAAqC;AAC1CC,EAAAA,OAAAA;AAD0C,CAArC,EAI4B;AAAA,EAAA,IAAA,qBAAA,EAAA,sBAAA,CAAA;;EACjC,MAAMC,eAAe,GAAGC,QAAQ,CAC9B,MAAMC,cAAc,CAACH,OAAD,CADU,CAAhC,CAAA;EAIA,MAAMI,cAAc,GAAGH,CAAAA,qBAAAA,GAAAA,eAAe,CAACI,KAAhB,CAAsB,CAAtB,CAAH,KAAG,IAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAA0BD,cAAjD,CAAA;EACA,MAAME,kBAAkB,GAAGL,CAAAA,sBAAAA,GAAAA,eAAe,CAACI,KAAhB,CAAsB,CAAtB,CAAH,KAAG,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAA0BE,WAArD,CAAA;EAGA,MAAMA,WAAW,GAAGD,kBAAH,IAAA,IAAA,GAAGA,kBAAH,GAAyBE,cAAc,CAACJ,cAAD,CAAxD,CAAA;AACA,EAAA,MAAMK,gBAAgB,GAAGP,QAAQ,CAAC,MAChCD,eAAe,CAACI,KAAhB,CAAsBK,GAAtB,CAA2BC,OAAD,IAAa;AACrC,IAAA,MAAMC,SAAS,GAAGL,WAAW,CAACM,mBAAZ,CAAgCF,OAAhC,CAAlB,CAAA;IACAC,SAAS,CAACE,kBAAV,GAA+BP,WAAW,CAACQ,WAAZ,CAAwBV,KAAxB,GAC3B,aAD2B,GAE3B,YAFJ,CAAA;AAIA,IAAA,OAAOO,SAAP,CAAA;AACD,GAPD,CAD+B,CAAjC,CAAA;EAWA,MAAMI,QAAQ,GAAG,IAAIC,eAAJ,CAAoBV,WAApB,EAAiCE,gBAAgB,CAACJ,KAAlD,CAAjB,CAAA;EACA,MAAMa,KAAK,GAAGC,QAAQ,CAACH,QAAQ,CAACI,gBAAT,EAAD,CAAtB,CAAA;AAEA,EAAA,MAAMC,WAAW,GAAGC,GAAG,CAAC,MAAM;AAE7B,GAFsB,CAAvB,CAAA;AAIAC,EAAAA,KAAK,CACHhB,WAAW,CAACQ,WADT,EAEFA,WAAD,IAAiB;IACf,IAAI,CAACA,WAAL,EAAkB;AAChBM,MAAAA,WAAW,CAAChB,KAAZ,EAAA,CAAA;MACAgB,WAAW,CAAChB,KAAZ,GAAoBW,QAAQ,CAACQ,SAAT,CAAoBC,MAAD,IAAY;QACjDP,KAAK,CAACQ,MAAN,CAAa,CAAb,EAAgBD,MAAM,CAACE,MAAvB,EAA+B,GAAGF,MAAlC,CAAA,CAAA;OADkB,CAApB,CAFgB;;AAMhBP,MAAAA,KAAK,CAACQ,MAAN,CACE,CADF,EAEER,KAAK,CAACS,MAFR,EAGE,GAAGX,QAAQ,CAACY,mBAAT,CAA6BnB,gBAAgB,CAACJ,KAA9C,CAHL,CAAA,CAAA;AAKD,KAAA;AACF,GAfE,EAgBH;AAAEwB,IAAAA,SAAS,EAAE,IAAA;AAAb,GAhBG,CAAL,CAAA;EAmBAN,KAAK,CACHtB,eADG,EAEH,MAAM;AACJe,IAAAA,QAAQ,CAACc,UAAT,CAAoBrB,gBAAgB,CAACJ,KAArC,CAAA,CAAA;AACAa,IAAAA,KAAK,CAACQ,MAAN,CAAa,CAAb,EAAgBR,KAAK,CAACS,MAAtB,EAA8B,GAAGX,QAAQ,CAACI,gBAAT,EAAjC,CAAA,CAAA;AACD,GALE,EAMH;AAAEW,IAAAA,IAAI,EAAE,IAAA;AAAR,GANG,CAAL,CAAA;AASAC,EAAAA,cAAc,CAAC,MAAM;AACnBX,IAAAA,WAAW,CAAChB,KAAZ,EAAA,CAAA;AACD,GAFa,CAAd,CAAA;EAIA,OAAO4B,QAAQ,CAACf,KAAD,CAAf,CAAA;AACD;;;;"}
@@ -2,11 +2,11 @@ import type { ToRefs, UnwrapRef } from 'vue-demi';
2
2
  import type { QueryFunction, QueryKey, QueryObserverResult, DefinedQueryObserverResult } from '@tanstack/query-core';
3
3
  import type { UseQueryReturnType as UQRT } from './useBaseQuery';
4
4
  import type { WithQueryClientKey, VueQueryObserverOptions } from './types';
5
- declare type UseQueryReturnType<TData, TError> = Omit<UQRT<TData, TError>, 'refetch' | 'remove'> & {
5
+ export declare type UseQueryReturnType<TData, TError> = Omit<UQRT<TData, TError>, 'refetch' | 'remove'> & {
6
6
  refetch: QueryObserverResult<TData, TError>['refetch'];
7
7
  remove: QueryObserverResult<TData, TError>['remove'];
8
8
  };
9
- declare type UseQueryDefinedReturnType<TData, TError> = Omit<ToRefs<Readonly<DefinedQueryObserverResult<TData, TError>>>, 'refetch' | 'remove'> & {
9
+ export declare type UseQueryDefinedReturnType<TData, TError> = Omit<ToRefs<Readonly<DefinedQueryObserverResult<TData, TError>>>, 'refetch' | 'remove'> & {
10
10
  suspense: () => Promise<QueryObserverResult<TData, TError>>;
11
11
  refetch: QueryObserverResult<TData, TError>['refetch'];
12
12
  remove: QueryObserverResult<TData, TError>['remove'];
@@ -33,4 +33,3 @@ export declare function useQuery<TQueryFnData = unknown, TError = unknown, TData
33
33
  initialData: TQueryFnData | (() => TQueryFnData);
34
34
  }): UseQueryDefinedReturnType<TData, TError>;
35
35
  export declare function useQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(queryKey: TQueryKey, queryFn: QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>, options?: Omit<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryKey' | 'queryFn'>): UseQueryReturnType<TData, TError>;
36
- export {};
@@ -1 +1 @@
1
- {"version":3,"file":"useQuery.esm.js","sources":["../../src/useQuery.ts"],"sourcesContent":["import type { ToRefs, UnwrapRef } from 'vue-demi'\nimport { QueryObserver } from '@tanstack/query-core'\nimport type {\n QueryFunction,\n QueryKey,\n QueryObserverResult,\n DefinedQueryObserverResult,\n} from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport type { UseQueryReturnType as UQRT } from './useBaseQuery'\nimport type { WithQueryClientKey, VueQueryObserverOptions } from './types'\n\ntype UseQueryReturnType<TData, TError> = Omit<\n UQRT<TData, TError>,\n 'refetch' | 'remove'\n> & {\n refetch: QueryObserverResult<TData, TError>['refetch']\n remove: QueryObserverResult<TData, TError>['remove']\n}\n\ntype UseQueryDefinedReturnType<TData, TError> = Omit<\n ToRefs<Readonly<DefinedQueryObserverResult<TData, TError>>>,\n 'refetch' | 'remove'\n> & {\n suspense: () => Promise<QueryObserverResult<TData, TError>>\n refetch: QueryObserverResult<TData, TError>['refetch']\n remove: QueryObserverResult<TData, TError>['remove']\n}\n\nexport type UseQueryOptions<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = WithQueryClientKey<\n VueQueryObserverOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>\n>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): UseQueryDefinedReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): UseQueryDefinedReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey'\n >,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn' | 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn' | 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): UseQueryDefinedReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn'\n >,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n arg1: TQueryKey | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg2?:\n | QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg3?: UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n):\n | UseQueryReturnType<TData, TError>\n | UseQueryDefinedReturnType<TData, TError> {\n const result = useBaseQuery(QueryObserver, arg1, arg2, arg3)\n\n return {\n ...result,\n refetch: result.refetch.value,\n remove: result.remove.value,\n }\n}\n"],"names":["useQuery","arg1","arg2","arg3","result","useBaseQuery","QueryObserver","refetch","value","remove"],"mappings":";;;AAwJO,SAASA,QAAT,CAMLC,IANK,EAOLC,IAPK,EAULC,IAVK,EAasC;EAC3C,MAAMC,MAAM,GAAGC,YAAY,CAACC,aAAD,EAAgBL,IAAhB,EAAsBC,IAAtB,EAA4BC,IAA5B,CAA3B,CAAA;EAEA,OAAO,EACL,GAAGC,MADE;AAELG,IAAAA,OAAO,EAAEH,MAAM,CAACG,OAAP,CAAeC,KAFnB;AAGLC,IAAAA,MAAM,EAAEL,MAAM,CAACK,MAAP,CAAcD,KAAAA;GAHxB,CAAA;AAKD;;;;"}
1
+ {"version":3,"file":"useQuery.esm.js","sources":["../../src/useQuery.ts"],"sourcesContent":["import type { ToRefs, UnwrapRef } from 'vue-demi'\nimport { QueryObserver } from '@tanstack/query-core'\nimport type {\n QueryFunction,\n QueryKey,\n QueryObserverResult,\n DefinedQueryObserverResult,\n} from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport type { UseQueryReturnType as UQRT } from './useBaseQuery'\nimport type { WithQueryClientKey, VueQueryObserverOptions } from './types'\n\nexport type UseQueryReturnType<TData, TError> = Omit<\n UQRT<TData, TError>,\n 'refetch' | 'remove'\n> & {\n refetch: QueryObserverResult<TData, TError>['refetch']\n remove: QueryObserverResult<TData, TError>['remove']\n}\n\nexport type UseQueryDefinedReturnType<TData, TError> = Omit<\n ToRefs<Readonly<DefinedQueryObserverResult<TData, TError>>>,\n 'refetch' | 'remove'\n> & {\n suspense: () => Promise<QueryObserverResult<TData, TError>>\n refetch: QueryObserverResult<TData, TError>['refetch']\n remove: QueryObserverResult<TData, TError>['remove']\n}\n\nexport type UseQueryOptions<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = WithQueryClientKey<\n VueQueryObserverOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>\n>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): UseQueryDefinedReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): UseQueryDefinedReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey'\n >,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn' | 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn' | 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): UseQueryDefinedReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn'\n >,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n arg1: TQueryKey | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg2?:\n | QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg3?: UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n):\n | UseQueryReturnType<TData, TError>\n | UseQueryDefinedReturnType<TData, TError> {\n const result = useBaseQuery(QueryObserver, arg1, arg2, arg3)\n\n return {\n ...result,\n refetch: result.refetch.value,\n remove: result.remove.value,\n }\n}\n"],"names":["useQuery","arg1","arg2","arg3","result","useBaseQuery","QueryObserver","refetch","value","remove"],"mappings":";;;AAwJO,SAASA,QAAT,CAMLC,IANK,EAOLC,IAPK,EAULC,IAVK,EAasC;EAC3C,MAAMC,MAAM,GAAGC,YAAY,CAACC,aAAD,EAAgBL,IAAhB,EAAsBC,IAAtB,EAA4BC,IAA5B,CAA3B,CAAA;EAEA,OAAO,EACL,GAAGC,MADE;AAELG,IAAAA,OAAO,EAAEH,MAAM,CAACG,OAAP,CAAeC,KAFnB;AAGLC,IAAAA,MAAM,EAAEL,MAAM,CAACK,MAAP,CAAcD,KAAAA;GAHxB,CAAA;AAKD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useQuery.js","sources":["../../src/useQuery.ts"],"sourcesContent":["import type { ToRefs, UnwrapRef } from 'vue-demi'\nimport { QueryObserver } from '@tanstack/query-core'\nimport type {\n QueryFunction,\n QueryKey,\n QueryObserverResult,\n DefinedQueryObserverResult,\n} from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport type { UseQueryReturnType as UQRT } from './useBaseQuery'\nimport type { WithQueryClientKey, VueQueryObserverOptions } from './types'\n\ntype UseQueryReturnType<TData, TError> = Omit<\n UQRT<TData, TError>,\n 'refetch' | 'remove'\n> & {\n refetch: QueryObserverResult<TData, TError>['refetch']\n remove: QueryObserverResult<TData, TError>['remove']\n}\n\ntype UseQueryDefinedReturnType<TData, TError> = Omit<\n ToRefs<Readonly<DefinedQueryObserverResult<TData, TError>>>,\n 'refetch' | 'remove'\n> & {\n suspense: () => Promise<QueryObserverResult<TData, TError>>\n refetch: QueryObserverResult<TData, TError>['refetch']\n remove: QueryObserverResult<TData, TError>['remove']\n}\n\nexport type UseQueryOptions<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = WithQueryClientKey<\n VueQueryObserverOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>\n>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): UseQueryDefinedReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): UseQueryDefinedReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey'\n >,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn' | 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn' | 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): UseQueryDefinedReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn'\n >,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n arg1: TQueryKey | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg2?:\n | QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg3?: UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n):\n | UseQueryReturnType<TData, TError>\n | UseQueryDefinedReturnType<TData, TError> {\n const result = useBaseQuery(QueryObserver, arg1, arg2, arg3)\n\n return {\n ...result,\n refetch: result.refetch.value,\n remove: result.remove.value,\n }\n}\n"],"names":["useQuery","arg1","arg2","arg3","result","useBaseQuery","QueryObserver","refetch","value","remove"],"mappings":";;;;;;;AAwJO,SAASA,QAAT,CAMLC,IANK,EAOLC,IAPK,EAULC,IAVK,EAasC;EAC3C,MAAMC,MAAM,GAAGC,yBAAY,CAACC,uBAAD,EAAgBL,IAAhB,EAAsBC,IAAtB,EAA4BC,IAA5B,CAA3B,CAAA;EAEA,OAAO,EACL,GAAGC,MADE;AAELG,IAAAA,OAAO,EAAEH,MAAM,CAACG,OAAP,CAAeC,KAFnB;AAGLC,IAAAA,MAAM,EAAEL,MAAM,CAACK,MAAP,CAAcD,KAAAA;GAHxB,CAAA;AAKD;;;;"}
1
+ {"version":3,"file":"useQuery.js","sources":["../../src/useQuery.ts"],"sourcesContent":["import type { ToRefs, UnwrapRef } from 'vue-demi'\nimport { QueryObserver } from '@tanstack/query-core'\nimport type {\n QueryFunction,\n QueryKey,\n QueryObserverResult,\n DefinedQueryObserverResult,\n} from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport type { UseQueryReturnType as UQRT } from './useBaseQuery'\nimport type { WithQueryClientKey, VueQueryObserverOptions } from './types'\n\nexport type UseQueryReturnType<TData, TError> = Omit<\n UQRT<TData, TError>,\n 'refetch' | 'remove'\n> & {\n refetch: QueryObserverResult<TData, TError>['refetch']\n remove: QueryObserverResult<TData, TError>['remove']\n}\n\nexport type UseQueryDefinedReturnType<TData, TError> = Omit<\n ToRefs<Readonly<DefinedQueryObserverResult<TData, TError>>>,\n 'refetch' | 'remove'\n> & {\n suspense: () => Promise<QueryObserverResult<TData, TError>>\n refetch: QueryObserverResult<TData, TError>['refetch']\n remove: QueryObserverResult<TData, TError>['remove']\n}\n\nexport type UseQueryOptions<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = WithQueryClientKey<\n VueQueryObserverOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>\n>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): UseQueryDefinedReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): UseQueryDefinedReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey'\n >,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn' | 'initialData'\n > & { initialData?: () => undefined },\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn' | 'initialData'\n > & { initialData: TQueryFnData | (() => TQueryFnData) },\n): UseQueryDefinedReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n queryKey: TQueryKey,\n queryFn: QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>,\n options?: Omit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryKey' | 'queryFn'\n >,\n): UseQueryReturnType<TData, TError>\n\nexport function useQuery<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n arg1: TQueryKey | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg2?:\n | QueryFunction<TQueryFnData, UnwrapRef<TQueryKey>>\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n arg3?: UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n):\n | UseQueryReturnType<TData, TError>\n | UseQueryDefinedReturnType<TData, TError> {\n const result = useBaseQuery(QueryObserver, arg1, arg2, arg3)\n\n return {\n ...result,\n refetch: result.refetch.value,\n remove: result.remove.value,\n }\n}\n"],"names":["useQuery","arg1","arg2","arg3","result","useBaseQuery","QueryObserver","refetch","value","remove"],"mappings":";;;;;;;AAwJO,SAASA,QAAT,CAMLC,IANK,EAOLC,IAPK,EAULC,IAVK,EAasC;EAC3C,MAAMC,MAAM,GAAGC,yBAAY,CAACC,uBAAD,EAAgBL,IAAhB,EAAsBC,IAAtB,EAA4BC,IAA5B,CAA3B,CAAA;EAEA,OAAO,EACL,GAAGC,MADE;AAELG,IAAAA,OAAO,EAAEH,MAAM,CAACG,OAAP,CAAeC,KAFnB;AAGLC,IAAAA,MAAM,EAAEL,MAAM,CAACK,MAAP,CAAcD,KAAAA;GAHxB,CAAA;AAKD;;;;"}