@tanstack/vue-query 5.0.0-alpha.71 → 5.0.0-alpha.79

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.
@@ -13,14 +13,14 @@ function useBaseQuery(Observer, options, queryClient) {
13
13
  });
14
14
  const observer = new Observer(client, defaultedOptions.value);
15
15
  const state = vueDemi.reactive(observer.getCurrentResult());
16
- const unsubscribe = vueDemi.ref(() => {
16
+ let unsubscribe = () => {
17
17
  // noop
18
- });
18
+ };
19
19
  vueDemi.watch(client.isRestoring, isRestoring => {
20
20
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
21
21
  if (!isRestoring) {
22
- unsubscribe.value();
23
- unsubscribe.value = observer.subscribe(result => {
22
+ unsubscribe();
23
+ unsubscribe = observer.subscribe(result => {
24
24
  utils.updateState(state, result);
25
25
  });
26
26
  }
@@ -34,7 +34,7 @@ function useBaseQuery(Observer, options, queryClient) {
34
34
  deep: true
35
35
  });
36
36
  vueDemi.onScopeDispose(() => {
37
- unsubscribe.value();
37
+ unsubscribe();
38
38
  });
39
39
  const suspense = () => {
40
40
  return new Promise(resolve => {
@@ -1 +1 @@
1
- {"version":3,"file":"useBaseQuery.cjs","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n onScopeDispose,\n toRefs,\n readonly,\n reactive,\n watch,\n ref,\n computed,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n QueryObserver,\n QueryKey,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { updateState, cloneDeepUnref } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n Result = QueryObserverResult<TData, TError>,\n> = ToRefs<Readonly<Result>> & {\n suspense: () => Promise<Result>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(cloneDeepUnref(options as any))\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = ref(() => {\n // noop\n })\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe.value()\n unsubscribe.value = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedOptions,\n () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>((resolve) => {\n let stopWatch = () => {\n //noop\n }\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n const optimisticResult = observer.getOptimisticResult(\n defaultedOptions.value,\n )\n if (optimisticResult.isStale) {\n stopWatch()\n resolve(observer.fetchOptimistic(defaultedOptions.value))\n } else {\n stopWatch()\n resolve(optimisticResult)\n }\n }\n }\n\n run()\n\n stopWatch = watch(defaultedOptions, run, { deep: true })\n })\n }\n\n return {\n ...(toRefs(readonly(state)) as ToRefs<\n Readonly<QueryObserverResult<TData, TError>>\n >),\n suspense,\n }\n}\n"],"names":["useBaseQuery","Observer","options","queryClient","client","useQueryClient","defaultedOptions","computed","defaulted","defaultQueryOptions","cloneDeepUnref","_optimisticResults","isRestoring","value","observer","state","reactive","getCurrentResult","unsubscribe","ref","watch","subscribe","result","updateState","immediate","setOptions","deep","onScopeDispose","suspense","Promise","resolve","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","toRefs","readonly"],"mappings":";;;;;;AAgDO,SAASA,YAAYA,CAQ1BC,QAA8B,EAC9BC,OAOC,EACDC,WAAyB,EACc;AACvC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,6BAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,gBAAQ,CAAC,MAAM;IACtC,MAAMC,SAML,GAAGJ,MAAM,CAACK,mBAAmB,CAACC,oBAAc,CAACR,OAAc,CAAC,CAAC,CAAA;IAE9DM,SAAS,CAACG,kBAAkB,GAAGP,MAAM,CAACQ,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOL,SAAS,CAAA;AAClB,GAAC,CAAC,CAAA;EAEF,MAAMM,QAAQ,GAAG,IAAIb,QAAQ,CAACG,MAAM,EAAEE,gBAAgB,CAACO,KAAK,CAAC,CAAA;EAC7D,MAAME,KAAK,GAAGC,gBAAQ,CAACF,QAAQ,CAACG,gBAAgB,EAAE,CAAC,CAAA;AAEnD,EAAA,MAAMC,WAAW,GAAGC,WAAG,CAAC,MAAM;AAC5B;AAAA,GACD,CAAC,CAAA;AAEFC,EAAAA,aAAK,CACHhB,MAAM,CAACQ,WAAW,EACjBA,WAAW,IAAK;AACf;IACA,IAAI,CAACA,WAAW,EAAE;MAChBM,WAAW,CAACL,KAAK,EAAE,CAAA;MACnBK,WAAW,CAACL,KAAK,GAAGC,QAAQ,CAACO,SAAS,CAAEC,MAAM,IAAK;AACjDC,QAAAA,iBAAW,CAACR,KAAK,EAAEO,MAAM,CAAC,CAAA;AAC5B,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAC,EACD;AAAEE,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;EAEDJ,aAAK,CACHd,gBAAgB,EAChB,MAAM;AACJQ,IAAAA,QAAQ,CAACW,UAAU,CAACnB,gBAAgB,CAACO,KAAK,CAAC,CAAA;IAC3CU,iBAAW,CAACR,KAAK,EAAED,QAAQ,CAACG,gBAAgB,EAAE,CAAC,CAAA;AACjD,GAAC,EACD;AAAES,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,sBAAc,CAAC,MAAM;IACnBT,WAAW,CAACL,KAAK,EAAE,CAAA;AACrB,GAAC,CAAC,CAAA;EAEF,MAAMe,QAAQ,GAAGA,MAAM;AACrB,IAAA,OAAO,IAAIC,OAAO,CAAsCC,OAAO,IAAK;MAClE,IAAIC,SAAS,GAAGA,MAAM;AACpB;OACD,CAAA;MACD,MAAMC,GAAG,GAAGA,MAAM;AAChB,QAAA,IAAI1B,gBAAgB,CAACO,KAAK,CAACoB,OAAO,KAAK,KAAK,EAAE;UAC5C,MAAMC,gBAAgB,GAAGpB,QAAQ,CAACqB,mBAAmB,CACnD7B,gBAAgB,CAACO,KACnB,CAAC,CAAA;UACD,IAAIqB,gBAAgB,CAACE,OAAO,EAAE;AAC5BL,YAAAA,SAAS,EAAE,CAAA;YACXD,OAAO,CAAChB,QAAQ,CAACuB,eAAe,CAAC/B,gBAAgB,CAACO,KAAK,CAAC,CAAC,CAAA;AAC3D,WAAC,MAAM;AACLkB,YAAAA,SAAS,EAAE,CAAA;YACXD,OAAO,CAACI,gBAAgB,CAAC,CAAA;AAC3B,WAAA;AACF,SAAA;OACD,CAAA;AAEDF,MAAAA,GAAG,EAAE,CAAA;AAELD,MAAAA,SAAS,GAAGX,aAAK,CAACd,gBAAgB,EAAE0B,GAAG,EAAE;AAAEN,QAAAA,IAAI,EAAE,IAAA;AAAK,OAAC,CAAC,CAAA;AAC1D,KAAC,CAAC,CAAA;GACH,CAAA;EAED,OAAO;AACL,IAAA,GAAIY,cAAM,CAACC,gBAAQ,CAACxB,KAAK,CAAC,CAExB;AACFa,IAAAA,QAAAA;GACD,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"useBaseQuery.cjs","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n onScopeDispose,\n toRefs,\n readonly,\n reactive,\n watch,\n computed,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n QueryObserver,\n QueryKey,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { updateState, cloneDeepUnref } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n Result = QueryObserverResult<TData, TError>,\n> = ToRefs<Readonly<Result>> & {\n suspense: () => Promise<Result>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(cloneDeepUnref(options as any))\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedOptions,\n () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>((resolve) => {\n let stopWatch = () => {\n //noop\n }\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n const optimisticResult = observer.getOptimisticResult(\n defaultedOptions.value,\n )\n if (optimisticResult.isStale) {\n stopWatch()\n resolve(observer.fetchOptimistic(defaultedOptions.value))\n } else {\n stopWatch()\n resolve(optimisticResult)\n }\n }\n }\n\n run()\n\n stopWatch = watch(defaultedOptions, run, { deep: true })\n })\n }\n\n return {\n ...(toRefs(readonly(state)) as ToRefs<\n Readonly<QueryObserverResult<TData, TError>>\n >),\n suspense,\n }\n}\n"],"names":["useBaseQuery","Observer","options","queryClient","client","useQueryClient","defaultedOptions","computed","defaulted","defaultQueryOptions","cloneDeepUnref","_optimisticResults","isRestoring","value","observer","state","reactive","getCurrentResult","unsubscribe","watch","subscribe","result","updateState","immediate","setOptions","deep","onScopeDispose","suspense","Promise","resolve","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","toRefs","readonly"],"mappings":";;;;;;AA+CO,SAASA,YAAYA,CAQ1BC,QAA8B,EAC9BC,OAOC,EACDC,WAAyB,EACc;AACvC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,6BAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,gBAAQ,CAAC,MAAM;IACtC,MAAMC,SAML,GAAGJ,MAAM,CAACK,mBAAmB,CAACC,oBAAc,CAACR,OAAc,CAAC,CAAC,CAAA;IAE9DM,SAAS,CAACG,kBAAkB,GAAGP,MAAM,CAACQ,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOL,SAAS,CAAA;AAClB,GAAC,CAAC,CAAA;EAEF,MAAMM,QAAQ,GAAG,IAAIb,QAAQ,CAACG,MAAM,EAAEE,gBAAgB,CAACO,KAAK,CAAC,CAAA;EAC7D,MAAME,KAAK,GAAGC,gBAAQ,CAACF,QAAQ,CAACG,gBAAgB,EAAE,CAAC,CAAA;EAEnD,IAAIC,WAAW,GAAGA,MAAM;AACtB;GACD,CAAA;AAEDC,EAAAA,aAAK,CACHf,MAAM,CAACQ,WAAW,EACjBA,WAAW,IAAK;AACf;IACA,IAAI,CAACA,WAAW,EAAE;AAChBM,MAAAA,WAAW,EAAE,CAAA;AACbA,MAAAA,WAAW,GAAGJ,QAAQ,CAACM,SAAS,CAAEC,MAAM,IAAK;AAC3CC,QAAAA,iBAAW,CAACP,KAAK,EAAEM,MAAM,CAAC,CAAA;AAC5B,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAC,EACD;AAAEE,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;EAEDJ,aAAK,CACHb,gBAAgB,EAChB,MAAM;AACJQ,IAAAA,QAAQ,CAACU,UAAU,CAAClB,gBAAgB,CAACO,KAAK,CAAC,CAAA;IAC3CS,iBAAW,CAACP,KAAK,EAAED,QAAQ,CAACG,gBAAgB,EAAE,CAAC,CAAA;AACjD,GAAC,EACD;AAAEQ,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,sBAAc,CAAC,MAAM;AACnBR,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;EAEF,MAAMS,QAAQ,GAAGA,MAAM;AACrB,IAAA,OAAO,IAAIC,OAAO,CAAsCC,OAAO,IAAK;MAClE,IAAIC,SAAS,GAAGA,MAAM;AACpB;OACD,CAAA;MACD,MAAMC,GAAG,GAAGA,MAAM;AAChB,QAAA,IAAIzB,gBAAgB,CAACO,KAAK,CAACmB,OAAO,KAAK,KAAK,EAAE;UAC5C,MAAMC,gBAAgB,GAAGnB,QAAQ,CAACoB,mBAAmB,CACnD5B,gBAAgB,CAACO,KACnB,CAAC,CAAA;UACD,IAAIoB,gBAAgB,CAACE,OAAO,EAAE;AAC5BL,YAAAA,SAAS,EAAE,CAAA;YACXD,OAAO,CAACf,QAAQ,CAACsB,eAAe,CAAC9B,gBAAgB,CAACO,KAAK,CAAC,CAAC,CAAA;AAC3D,WAAC,MAAM;AACLiB,YAAAA,SAAS,EAAE,CAAA;YACXD,OAAO,CAACI,gBAAgB,CAAC,CAAA;AAC3B,WAAA;AACF,SAAA;OACD,CAAA;AAEDF,MAAAA,GAAG,EAAE,CAAA;AAELD,MAAAA,SAAS,GAAGX,aAAK,CAACb,gBAAgB,EAAEyB,GAAG,EAAE;AAAEN,QAAAA,IAAI,EAAE,IAAA;AAAK,OAAC,CAAC,CAAA;AAC1D,KAAC,CAAC,CAAA;GACH,CAAA;EAED,OAAO;AACL,IAAA,GAAIY,cAAM,CAACC,gBAAQ,CAACvB,KAAK,CAAC,CAExB;AACFY,IAAAA,QAAAA;GACD,CAAA;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useBaseQuery.d.ts","sourceRoot":"","sources":["../../src/useBaseQuery.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,mBAAmB,EAEpB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAEjE,MAAM,MAAM,sBAAsB,CAChC,KAAK,EACL,MAAM,EACN,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,IACzC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG;IAC7B,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAChC,CAAA;AAED,KAAK,sBAAsB,CACzB,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,SAAS,QAAQ,GAAG,QAAQ,EACrC,UAAU,GAAG,OAAO,IAElB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,GACnE,uBAAuB,CACrB,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,UAAU,CACX,CAAA;AAEL,wBAAgB,YAAY,CAC1B,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,SAAS,QAAQ,EAC1B,UAAU,EAEV,QAAQ,EAAE,OAAO,aAAa,EAC9B,OAAO,EAAE,sBAAsB,CAC7B,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,UAAU,CACX,EACD,WAAW,CAAC,EAAE,WAAW,GACxB,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAqFvC"}
1
+ {"version":3,"file":"useBaseQuery.d.ts","sourceRoot":"","sources":["../../src/useBaseQuery.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,mBAAmB,EAEpB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAEjE,MAAM,MAAM,sBAAsB,CAChC,KAAK,EACL,MAAM,EACN,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,IACzC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG;IAC7B,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAChC,CAAA;AAED,KAAK,sBAAsB,CACzB,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,SAAS,QAAQ,GAAG,QAAQ,EACrC,UAAU,GAAG,OAAO,IAElB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,GACnE,uBAAuB,CACrB,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,UAAU,CACX,CAAA;AAEL,wBAAgB,YAAY,CAC1B,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,SAAS,QAAQ,EAC1B,UAAU,EAEV,QAAQ,EAAE,OAAO,aAAa,EAC9B,OAAO,EAAE,sBAAsB,CAC7B,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,UAAU,CACX,EACD,WAAW,CAAC,EAAE,WAAW,GACxB,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAqFvC"}
@@ -1,4 +1,4 @@
1
- import { computed, reactive, ref, watch, onScopeDispose, toRefs, readonly } from 'vue-demi';
1
+ import { computed, reactive, watch, onScopeDispose, toRefs, readonly } from 'vue-demi';
2
2
  import { useQueryClient } from './useQueryClient.js';
3
3
  import { cloneDeepUnref, updateState } from './utils.js';
4
4
 
@@ -11,14 +11,14 @@ function useBaseQuery(Observer, options, queryClient) {
11
11
  });
12
12
  const observer = new Observer(client, defaultedOptions.value);
13
13
  const state = reactive(observer.getCurrentResult());
14
- const unsubscribe = ref(() => {
14
+ let unsubscribe = () => {
15
15
  // noop
16
- });
16
+ };
17
17
  watch(client.isRestoring, isRestoring => {
18
18
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
19
19
  if (!isRestoring) {
20
- unsubscribe.value();
21
- unsubscribe.value = observer.subscribe(result => {
20
+ unsubscribe();
21
+ unsubscribe = observer.subscribe(result => {
22
22
  updateState(state, result);
23
23
  });
24
24
  }
@@ -32,7 +32,7 @@ function useBaseQuery(Observer, options, queryClient) {
32
32
  deep: true
33
33
  });
34
34
  onScopeDispose(() => {
35
- unsubscribe.value();
35
+ unsubscribe();
36
36
  });
37
37
  const suspense = () => {
38
38
  return new Promise(resolve => {
@@ -1 +1 @@
1
- {"version":3,"file":"useBaseQuery.js","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n onScopeDispose,\n toRefs,\n readonly,\n reactive,\n watch,\n ref,\n computed,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n QueryObserver,\n QueryKey,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { updateState, cloneDeepUnref } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n Result = QueryObserverResult<TData, TError>,\n> = ToRefs<Readonly<Result>> & {\n suspense: () => Promise<Result>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(cloneDeepUnref(options as any))\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = ref(() => {\n // noop\n })\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe.value()\n unsubscribe.value = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedOptions,\n () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>((resolve) => {\n let stopWatch = () => {\n //noop\n }\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n const optimisticResult = observer.getOptimisticResult(\n defaultedOptions.value,\n )\n if (optimisticResult.isStale) {\n stopWatch()\n resolve(observer.fetchOptimistic(defaultedOptions.value))\n } else {\n stopWatch()\n resolve(optimisticResult)\n }\n }\n }\n\n run()\n\n stopWatch = watch(defaultedOptions, run, { deep: true })\n })\n }\n\n return {\n ...(toRefs(readonly(state)) as ToRefs<\n Readonly<QueryObserverResult<TData, TError>>\n >),\n suspense,\n }\n}\n"],"names":["useBaseQuery","Observer","options","queryClient","client","useQueryClient","defaultedOptions","computed","defaulted","defaultQueryOptions","cloneDeepUnref","_optimisticResults","isRestoring","value","observer","state","reactive","getCurrentResult","unsubscribe","ref","watch","subscribe","result","updateState","immediate","setOptions","deep","onScopeDispose","suspense","Promise","resolve","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","toRefs","readonly"],"mappings":"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"}
1
+ {"version":3,"file":"useBaseQuery.js","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n onScopeDispose,\n toRefs,\n readonly,\n reactive,\n watch,\n computed,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n QueryObserver,\n QueryKey,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { updateState, cloneDeepUnref } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n Result = QueryObserverResult<TData, TError>,\n> = ToRefs<Readonly<Result>> & {\n suspense: () => Promise<Result>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(cloneDeepUnref(options as any))\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedOptions,\n () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>((resolve) => {\n let stopWatch = () => {\n //noop\n }\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n const optimisticResult = observer.getOptimisticResult(\n defaultedOptions.value,\n )\n if (optimisticResult.isStale) {\n stopWatch()\n resolve(observer.fetchOptimistic(defaultedOptions.value))\n } else {\n stopWatch()\n resolve(optimisticResult)\n }\n }\n }\n\n run()\n\n stopWatch = watch(defaultedOptions, run, { deep: true })\n })\n }\n\n return {\n ...(toRefs(readonly(state)) as ToRefs<\n Readonly<QueryObserverResult<TData, TError>>\n >),\n suspense,\n }\n}\n"],"names":["useBaseQuery","Observer","options","queryClient","client","useQueryClient","defaultedOptions","computed","defaulted","defaultQueryOptions","cloneDeepUnref","_optimisticResults","isRestoring","value","observer","state","reactive","getCurrentResult","unsubscribe","watch","subscribe","result","updateState","immediate","setOptions","deep","onScopeDispose","suspense","Promise","resolve","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","toRefs","readonly"],"mappings":";;;;AA+CO,SAASA,YAAYA,CAQ1BC,QAA8B,EAC9BC,OAOC,EACDC,WAAyB,EACc;AACvC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,cAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,QAAQ,CAAC,MAAM;IACtC,MAAMC,SAML,GAAGJ,MAAM,CAACK,mBAAmB,CAACC,cAAc,CAACR,OAAc,CAAC,CAAC,CAAA;IAE9DM,SAAS,CAACG,kBAAkB,GAAGP,MAAM,CAACQ,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOL,SAAS,CAAA;AAClB,GAAC,CAAC,CAAA;EAEF,MAAMM,QAAQ,GAAG,IAAIb,QAAQ,CAACG,MAAM,EAAEE,gBAAgB,CAACO,KAAK,CAAC,CAAA;EAC7D,MAAME,KAAK,GAAGC,QAAQ,CAACF,QAAQ,CAACG,gBAAgB,EAAE,CAAC,CAAA;EAEnD,IAAIC,WAAW,GAAGA,MAAM;AACtB;GACD,CAAA;AAEDC,EAAAA,KAAK,CACHf,MAAM,CAACQ,WAAW,EACjBA,WAAW,IAAK;AACf;IACA,IAAI,CAACA,WAAW,EAAE;AAChBM,MAAAA,WAAW,EAAE,CAAA;AACbA,MAAAA,WAAW,GAAGJ,QAAQ,CAACM,SAAS,CAAEC,MAAM,IAAK;AAC3CC,QAAAA,WAAW,CAACP,KAAK,EAAEM,MAAM,CAAC,CAAA;AAC5B,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAC,EACD;AAAEE,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;EAEDJ,KAAK,CACHb,gBAAgB,EAChB,MAAM;AACJQ,IAAAA,QAAQ,CAACU,UAAU,CAAClB,gBAAgB,CAACO,KAAK,CAAC,CAAA;IAC3CS,WAAW,CAACP,KAAK,EAAED,QAAQ,CAACG,gBAAgB,EAAE,CAAC,CAAA;AACjD,GAAC,EACD;AAAEQ,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,cAAc,CAAC,MAAM;AACnBR,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;EAEF,MAAMS,QAAQ,GAAGA,MAAM;AACrB,IAAA,OAAO,IAAIC,OAAO,CAAsCC,OAAO,IAAK;MAClE,IAAIC,SAAS,GAAGA,MAAM;AACpB;OACD,CAAA;MACD,MAAMC,GAAG,GAAGA,MAAM;AAChB,QAAA,IAAIzB,gBAAgB,CAACO,KAAK,CAACmB,OAAO,KAAK,KAAK,EAAE;UAC5C,MAAMC,gBAAgB,GAAGnB,QAAQ,CAACoB,mBAAmB,CACnD5B,gBAAgB,CAACO,KACnB,CAAC,CAAA;UACD,IAAIoB,gBAAgB,CAACE,OAAO,EAAE;AAC5BL,YAAAA,SAAS,EAAE,CAAA;YACXD,OAAO,CAACf,QAAQ,CAACsB,eAAe,CAAC9B,gBAAgB,CAACO,KAAK,CAAC,CAAC,CAAA;AAC3D,WAAC,MAAM;AACLiB,YAAAA,SAAS,EAAE,CAAA;YACXD,OAAO,CAACI,gBAAgB,CAAC,CAAA;AAC3B,WAAA;AACF,SAAA;OACD,CAAA;AAEDF,MAAAA,GAAG,EAAE,CAAA;AAELD,MAAAA,SAAS,GAAGX,KAAK,CAACb,gBAAgB,EAAEyB,GAAG,EAAE;AAAEN,QAAAA,IAAI,EAAE,IAAA;AAAK,OAAC,CAAC,CAAA;AAC1D,KAAC,CAAC,CAAA;GACH,CAAA;EAED,OAAO;AACL,IAAA,GAAIY,MAAM,CAACC,QAAQ,CAACvB,KAAK,CAAC,CAExB;AACFY,IAAAA,QAAAA;GACD,CAAA;AACH;;;;"}
@@ -13,14 +13,14 @@ function useBaseQuery(Observer, options, queryClient) {
13
13
  });
14
14
  const observer = new Observer(client, defaultedOptions.value);
15
15
  const state = vueDemi.reactive(observer.getCurrentResult());
16
- const unsubscribe = vueDemi.ref(() => {
16
+ let unsubscribe = () => {
17
17
  // noop
18
- });
18
+ };
19
19
  vueDemi.watch(client.isRestoring, isRestoring => {
20
20
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
21
21
  if (!isRestoring) {
22
- unsubscribe.value();
23
- unsubscribe.value = observer.subscribe(result => {
22
+ unsubscribe();
23
+ unsubscribe = observer.subscribe(result => {
24
24
  utils.updateState(state, result);
25
25
  });
26
26
  }
@@ -34,7 +34,7 @@ function useBaseQuery(Observer, options, queryClient) {
34
34
  deep: true
35
35
  });
36
36
  vueDemi.onScopeDispose(() => {
37
- unsubscribe.value();
37
+ unsubscribe();
38
38
  });
39
39
  const suspense = () => {
40
40
  return new Promise(resolve => {
@@ -1 +1 @@
1
- {"version":3,"file":"useBaseQuery.legacy.cjs","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n onScopeDispose,\n toRefs,\n readonly,\n reactive,\n watch,\n ref,\n computed,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n QueryObserver,\n QueryKey,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { updateState, cloneDeepUnref } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n Result = QueryObserverResult<TData, TError>,\n> = ToRefs<Readonly<Result>> & {\n suspense: () => Promise<Result>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(cloneDeepUnref(options as any))\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = ref(() => {\n // noop\n })\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe.value()\n unsubscribe.value = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedOptions,\n () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>((resolve) => {\n let stopWatch = () => {\n //noop\n }\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n const optimisticResult = observer.getOptimisticResult(\n defaultedOptions.value,\n )\n if (optimisticResult.isStale) {\n stopWatch()\n resolve(observer.fetchOptimistic(defaultedOptions.value))\n } else {\n stopWatch()\n resolve(optimisticResult)\n }\n }\n }\n\n run()\n\n stopWatch = watch(defaultedOptions, run, { deep: true })\n })\n }\n\n return {\n ...(toRefs(readonly(state)) as ToRefs<\n Readonly<QueryObserverResult<TData, TError>>\n >),\n suspense,\n }\n}\n"],"names":["useBaseQuery","Observer","options","queryClient","client","useQueryClient","defaultedOptions","computed","defaulted","defaultQueryOptions","cloneDeepUnref","_optimisticResults","isRestoring","value","observer","state","reactive","getCurrentResult","unsubscribe","ref","watch","subscribe","result","updateState","immediate","setOptions","deep","onScopeDispose","suspense","Promise","resolve","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","toRefs","readonly"],"mappings":"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"}
1
+ {"version":3,"file":"useBaseQuery.legacy.cjs","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n onScopeDispose,\n toRefs,\n readonly,\n reactive,\n watch,\n computed,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n QueryObserver,\n QueryKey,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { updateState, cloneDeepUnref } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n Result = QueryObserverResult<TData, TError>,\n> = ToRefs<Readonly<Result>> & {\n suspense: () => Promise<Result>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(cloneDeepUnref(options as any))\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedOptions,\n () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>((resolve) => {\n let stopWatch = () => {\n //noop\n }\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n const optimisticResult = observer.getOptimisticResult(\n defaultedOptions.value,\n )\n if (optimisticResult.isStale) {\n stopWatch()\n resolve(observer.fetchOptimistic(defaultedOptions.value))\n } else {\n stopWatch()\n resolve(optimisticResult)\n }\n }\n }\n\n run()\n\n stopWatch = watch(defaultedOptions, run, { deep: true })\n })\n }\n\n return {\n ...(toRefs(readonly(state)) as ToRefs<\n Readonly<QueryObserverResult<TData, TError>>\n >),\n suspense,\n }\n}\n"],"names":["useBaseQuery","Observer","options","queryClient","client","useQueryClient","defaultedOptions","computed","defaulted","defaultQueryOptions","cloneDeepUnref","_optimisticResults","isRestoring","value","observer","state","reactive","getCurrentResult","unsubscribe","watch","subscribe","result","updateState","immediate","setOptions","deep","onScopeDispose","suspense","Promise","resolve","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","toRefs","readonly"],"mappings":";;;;;;AA+CO,SAASA,YAAYA,CAQ1BC,QAA8B,EAC9BC,OAOC,EACDC,WAAyB,EACc;AACvC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,6BAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,gBAAQ,CAAC,MAAM;IACtC,MAAMC,SAML,GAAGJ,MAAM,CAACK,mBAAmB,CAACC,oBAAc,CAACR,OAAc,CAAC,CAAC,CAAA;IAE9DM,SAAS,CAACG,kBAAkB,GAAGP,MAAM,CAACQ,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOL,SAAS,CAAA;AAClB,GAAC,CAAC,CAAA;EAEF,MAAMM,QAAQ,GAAG,IAAIb,QAAQ,CAACG,MAAM,EAAEE,gBAAgB,CAACO,KAAK,CAAC,CAAA;EAC7D,MAAME,KAAK,GAAGC,gBAAQ,CAACF,QAAQ,CAACG,gBAAgB,EAAE,CAAC,CAAA;EAEnD,IAAIC,WAAW,GAAGA,MAAM;AACtB;GACD,CAAA;AAEDC,EAAAA,aAAK,CACHf,MAAM,CAACQ,WAAW,EACjBA,WAAW,IAAK;AACf;IACA,IAAI,CAACA,WAAW,EAAE;AAChBM,MAAAA,WAAW,EAAE,CAAA;AACbA,MAAAA,WAAW,GAAGJ,QAAQ,CAACM,SAAS,CAAEC,MAAM,IAAK;AAC3CC,QAAAA,iBAAW,CAACP,KAAK,EAAEM,MAAM,CAAC,CAAA;AAC5B,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAC,EACD;AAAEE,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;EAEDJ,aAAK,CACHb,gBAAgB,EAChB,MAAM;AACJQ,IAAAA,QAAQ,CAACU,UAAU,CAAClB,gBAAgB,CAACO,KAAK,CAAC,CAAA;IAC3CS,iBAAW,CAACP,KAAK,EAAED,QAAQ,CAACG,gBAAgB,EAAE,CAAC,CAAA;AACjD,GAAC,EACD;AAAEQ,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,sBAAc,CAAC,MAAM;AACnBR,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;EAEF,MAAMS,QAAQ,GAAGA,MAAM;AACrB,IAAA,OAAO,IAAIC,OAAO,CAAsCC,OAAO,IAAK;MAClE,IAAIC,SAAS,GAAGA,MAAM;AACpB;OACD,CAAA;MACD,MAAMC,GAAG,GAAGA,MAAM;AAChB,QAAA,IAAIzB,gBAAgB,CAACO,KAAK,CAACmB,OAAO,KAAK,KAAK,EAAE;UAC5C,MAAMC,gBAAgB,GAAGnB,QAAQ,CAACoB,mBAAmB,CACnD5B,gBAAgB,CAACO,KACnB,CAAC,CAAA;UACD,IAAIoB,gBAAgB,CAACE,OAAO,EAAE;AAC5BL,YAAAA,SAAS,EAAE,CAAA;YACXD,OAAO,CAACf,QAAQ,CAACsB,eAAe,CAAC9B,gBAAgB,CAACO,KAAK,CAAC,CAAC,CAAA;AAC3D,WAAC,MAAM;AACLiB,YAAAA,SAAS,EAAE,CAAA;YACXD,OAAO,CAACI,gBAAgB,CAAC,CAAA;AAC3B,WAAA;AACF,SAAA;OACD,CAAA;AAEDF,MAAAA,GAAG,EAAE,CAAA;AAELD,MAAAA,SAAS,GAAGX,aAAK,CAACb,gBAAgB,EAAEyB,GAAG,EAAE;AAAEN,QAAAA,IAAI,EAAE,IAAA;AAAK,OAAC,CAAC,CAAA;AAC1D,KAAC,CAAC,CAAA;GACH,CAAA;EAED,OAAO;AACL,IAAA,GAAIY,cAAM,CAACC,gBAAQ,CAACvB,KAAK,CAAC,CAExB;AACFY,IAAAA,QAAAA;GACD,CAAA;AACH;;;;"}
@@ -1,4 +1,4 @@
1
- import { computed, reactive, ref, watch, onScopeDispose, toRefs, readonly } from 'vue-demi';
1
+ import { computed, reactive, watch, onScopeDispose, toRefs, readonly } from 'vue-demi';
2
2
  import { useQueryClient } from './useQueryClient.legacy.js';
3
3
  import { cloneDeepUnref, updateState } from './utils.legacy.js';
4
4
 
@@ -11,14 +11,14 @@ function useBaseQuery(Observer, options, queryClient) {
11
11
  });
12
12
  const observer = new Observer(client, defaultedOptions.value);
13
13
  const state = reactive(observer.getCurrentResult());
14
- const unsubscribe = ref(() => {
14
+ let unsubscribe = () => {
15
15
  // noop
16
- });
16
+ };
17
17
  watch(client.isRestoring, isRestoring => {
18
18
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
19
19
  if (!isRestoring) {
20
- unsubscribe.value();
21
- unsubscribe.value = observer.subscribe(result => {
20
+ unsubscribe();
21
+ unsubscribe = observer.subscribe(result => {
22
22
  updateState(state, result);
23
23
  });
24
24
  }
@@ -32,7 +32,7 @@ function useBaseQuery(Observer, options, queryClient) {
32
32
  deep: true
33
33
  });
34
34
  onScopeDispose(() => {
35
- unsubscribe.value();
35
+ unsubscribe();
36
36
  });
37
37
  const suspense = () => {
38
38
  return new Promise(resolve => {
@@ -1 +1 @@
1
- {"version":3,"file":"useBaseQuery.legacy.js","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n onScopeDispose,\n toRefs,\n readonly,\n reactive,\n watch,\n ref,\n computed,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n QueryObserver,\n QueryKey,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { updateState, cloneDeepUnref } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n Result = QueryObserverResult<TData, TError>,\n> = ToRefs<Readonly<Result>> & {\n suspense: () => Promise<Result>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(cloneDeepUnref(options as any))\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = ref(() => {\n // noop\n })\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe.value()\n unsubscribe.value = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedOptions,\n () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>((resolve) => {\n let stopWatch = () => {\n //noop\n }\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n const optimisticResult = observer.getOptimisticResult(\n defaultedOptions.value,\n )\n if (optimisticResult.isStale) {\n stopWatch()\n resolve(observer.fetchOptimistic(defaultedOptions.value))\n } else {\n stopWatch()\n resolve(optimisticResult)\n }\n }\n }\n\n run()\n\n stopWatch = watch(defaultedOptions, run, { deep: true })\n })\n }\n\n return {\n ...(toRefs(readonly(state)) as ToRefs<\n Readonly<QueryObserverResult<TData, TError>>\n >),\n suspense,\n }\n}\n"],"names":["useBaseQuery","Observer","options","queryClient","client","useQueryClient","defaultedOptions","computed","defaulted","defaultQueryOptions","cloneDeepUnref","_optimisticResults","isRestoring","value","observer","state","reactive","getCurrentResult","unsubscribe","ref","watch","subscribe","result","updateState","immediate","setOptions","deep","onScopeDispose","suspense","Promise","resolve","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","toRefs","readonly"],"mappings":"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"}
1
+ {"version":3,"file":"useBaseQuery.legacy.js","sources":["../../src/useBaseQuery.ts"],"sourcesContent":["import {\n onScopeDispose,\n toRefs,\n readonly,\n reactive,\n watch,\n computed,\n} from 'vue-demi'\nimport type { ToRefs } from 'vue-demi'\nimport type {\n QueryObserver,\n QueryKey,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from '@tanstack/query-core'\nimport { useQueryClient } from './useQueryClient'\nimport { updateState, cloneDeepUnref } from './utils'\nimport type { QueryClient } from './queryClient'\nimport type { UseQueryOptions } from './useQuery'\nimport type { UseInfiniteQueryOptions } from './useInfiniteQuery'\n\nexport type UseBaseQueryReturnType<\n TData,\n TError,\n Result = QueryObserverResult<TData, TError>,\n> = ToRefs<Readonly<Result>> & {\n suspense: () => Promise<Result>\n}\n\ntype UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> =\n | UseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n | UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\n\nexport function useBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n TPageParam,\n>(\n Observer: typeof QueryObserver,\n options: UseQueryOptionsGeneric<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseBaseQueryReturnType<TData, TError> {\n const client = queryClient || useQueryClient()\n\n const defaultedOptions = computed(() => {\n const defaulted: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > = client.defaultQueryOptions(cloneDeepUnref(options as any))\n\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n })\n\n const observer = new Observer(client, defaultedOptions.value)\n const state = reactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n updateState(state, result)\n })\n }\n },\n { immediate: true },\n )\n\n watch(\n defaultedOptions,\n () => {\n observer.setOptions(defaultedOptions.value)\n updateState(state, observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n const suspense = () => {\n return new Promise<QueryObserverResult<TData, TError>>((resolve) => {\n let stopWatch = () => {\n //noop\n }\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n const optimisticResult = observer.getOptimisticResult(\n defaultedOptions.value,\n )\n if (optimisticResult.isStale) {\n stopWatch()\n resolve(observer.fetchOptimistic(defaultedOptions.value))\n } else {\n stopWatch()\n resolve(optimisticResult)\n }\n }\n }\n\n run()\n\n stopWatch = watch(defaultedOptions, run, { deep: true })\n })\n }\n\n return {\n ...(toRefs(readonly(state)) as ToRefs<\n Readonly<QueryObserverResult<TData, TError>>\n >),\n suspense,\n }\n}\n"],"names":["useBaseQuery","Observer","options","queryClient","client","useQueryClient","defaultedOptions","computed","defaulted","defaultQueryOptions","cloneDeepUnref","_optimisticResults","isRestoring","value","observer","state","reactive","getCurrentResult","unsubscribe","watch","subscribe","result","updateState","immediate","setOptions","deep","onScopeDispose","suspense","Promise","resolve","stopWatch","run","enabled","optimisticResult","getOptimisticResult","isStale","fetchOptimistic","toRefs","readonly"],"mappings":";;;;AA+CO,SAASA,YAAYA,CAQ1BC,QAA8B,EAC9BC,OAOC,EACDC,WAAyB,EACc;AACvC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,cAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,QAAQ,CAAC,MAAM;IACtC,MAAMC,SAML,GAAGJ,MAAM,CAACK,mBAAmB,CAACC,cAAc,CAACR,OAAc,CAAC,CAAC,CAAA;IAE9DM,SAAS,CAACG,kBAAkB,GAAGP,MAAM,CAACQ,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOL,SAAS,CAAA;AAClB,GAAC,CAAC,CAAA;EAEF,MAAMM,QAAQ,GAAG,IAAIb,QAAQ,CAACG,MAAM,EAAEE,gBAAgB,CAACO,KAAK,CAAC,CAAA;EAC7D,MAAME,KAAK,GAAGC,QAAQ,CAACF,QAAQ,CAACG,gBAAgB,EAAE,CAAC,CAAA;EAEnD,IAAIC,WAAW,GAAGA,MAAM;AACtB;GACD,CAAA;AAEDC,EAAAA,KAAK,CACHf,MAAM,CAACQ,WAAW,EACjBA,WAAW,IAAK;AACf;IACA,IAAI,CAACA,WAAW,EAAE;AAChBM,MAAAA,WAAW,EAAE,CAAA;AACbA,MAAAA,WAAW,GAAGJ,QAAQ,CAACM,SAAS,CAAEC,MAAM,IAAK;AAC3CC,QAAAA,WAAW,CAACP,KAAK,EAAEM,MAAM,CAAC,CAAA;AAC5B,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAC,EACD;AAAEE,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;EAEDJ,KAAK,CACHb,gBAAgB,EAChB,MAAM;AACJQ,IAAAA,QAAQ,CAACU,UAAU,CAAClB,gBAAgB,CAACO,KAAK,CAAC,CAAA;IAC3CS,WAAW,CAACP,KAAK,EAAED,QAAQ,CAACG,gBAAgB,EAAE,CAAC,CAAA;AACjD,GAAC,EACD;AAAEQ,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,cAAc,CAAC,MAAM;AACnBR,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;EAEF,MAAMS,QAAQ,GAAGA,MAAM;AACrB,IAAA,OAAO,IAAIC,OAAO,CAAsCC,OAAO,IAAK;MAClE,IAAIC,SAAS,GAAGA,MAAM;AACpB;OACD,CAAA;MACD,MAAMC,GAAG,GAAGA,MAAM;AAChB,QAAA,IAAIzB,gBAAgB,CAACO,KAAK,CAACmB,OAAO,KAAK,KAAK,EAAE;UAC5C,MAAMC,gBAAgB,GAAGnB,QAAQ,CAACoB,mBAAmB,CACnD5B,gBAAgB,CAACO,KACnB,CAAC,CAAA;UACD,IAAIoB,gBAAgB,CAACE,OAAO,EAAE;AAC5BL,YAAAA,SAAS,EAAE,CAAA;YACXD,OAAO,CAACf,QAAQ,CAACsB,eAAe,CAAC9B,gBAAgB,CAACO,KAAK,CAAC,CAAC,CAAA;AAC3D,WAAC,MAAM;AACLiB,YAAAA,SAAS,EAAE,CAAA;YACXD,OAAO,CAACI,gBAAgB,CAAC,CAAA;AAC3B,WAAA;AACF,SAAA;OACD,CAAA;AAEDF,MAAAA,GAAG,EAAE,CAAA;AAELD,MAAAA,SAAS,GAAGX,KAAK,CAACb,gBAAgB,EAAEyB,GAAG,EAAE;AAAEN,QAAAA,IAAI,EAAE,IAAA;AAAK,OAAC,CAAC,CAAA;AAC1D,KAAC,CAAC,CAAA;GACH,CAAA;EAED,OAAO;AACL,IAAA,GAAIY,MAAM,CAACC,QAAQ,CAACvB,KAAK,CAAC,CAExB;AACFY,IAAAA,QAAAA;GACD,CAAA;AACH;;;;"}
@@ -29,13 +29,13 @@ function useQueries({
29
29
  const observer = new queryCore.QueriesObserver(client, defaultedQueries.value, options);
30
30
  const [, getCombinedResult] = observer.getOptimisticResult(defaultedQueries.value);
31
31
  const state = vueDemi.ref(getCombinedResult());
32
- const unsubscribe = vueDemi.ref(() => {
32
+ let unsubscribe = () => {
33
33
  // noop
34
- });
34
+ };
35
35
  vueDemi.watch(client.isRestoring, isRestoring => {
36
36
  if (!isRestoring) {
37
- unsubscribe.value();
38
- unsubscribe.value = observer.subscribe(() => {
37
+ unsubscribe();
38
+ unsubscribe = observer.subscribe(() => {
39
39
  const [, getCombinedResultRestoring] = observer.getOptimisticResult(defaultedQueries.value);
40
40
  state.value = getCombinedResultRestoring();
41
41
  });
@@ -53,7 +53,7 @@ function useQueries({
53
53
  deep: true
54
54
  });
55
55
  vueDemi.onScopeDispose(() => {
56
- unsubscribe.value();
56
+ unsubscribe();
57
57
  });
58
58
  return vueDemi.readonly(state);
59
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useQueries.cjs","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport type {\n QueriesPlaceholderDataFunction,\n QueryKey,\n QueriesObserverOptions,\n QueryFunction,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { Ref } from 'vue-demi'\nimport { computed, onScopeDispose, readonly, ref, watch } from 'vue-demi'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype UseQueryOptionsForUseQueries<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = DistributiveOmit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\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 ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<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 ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptionsForUseQueries<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 ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptionsForUseQueries\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 ? UseQueryOptionsForUseQueries[]\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 UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptionsForUseQueries[]\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 UseQueryOptionsForUseQueries<\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<\n T extends any[],\n TCombinedResult = UseQueriesResults<T>,\n>(\n {\n queries,\n ...options\n }: {\n queries: MaybeRefDeep<UseQueriesOptionsArg<T>>\n combine?: (result: UseQueriesResults<T>) => TCombinedResult\n },\n queryClient?: QueryClient,\n): Readonly<Ref<TCombinedResult>> {\n const client = queryClient || useQueryClient()\n\n const defaultedQueries = computed(() =>\n cloneDeepUnref(queries).map((queryOptions) => {\n const defaulted = client.defaultQueryOptions(queryOptions)\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver<TCombinedResult>(\n client,\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResult] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n const state = ref(getCombinedResult()) as Ref<TCombinedResult>\n\n const unsubscribe = ref(() => {\n // noop\n })\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe.value()\n unsubscribe.value = observer.subscribe(() => {\n const [, getCombinedResultRestoring] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultRestoring()\n })\n // Subscription would not fire for persisted results\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultPersisted()\n }\n },\n { immediate: true },\n )\n\n watch(\n [defaultedQueries],\n () => {\n observer.setQueries(\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n state.value = observer.getCurrentResult()\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n return readonly(state) as Readonly<Ref<TCombinedResult>>\n}\n"],"names":["useQueries","queries","options","queryClient","client","useQueryClient","defaultedQueries","computed","cloneDeepUnref","map","queryOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","value","observer","QueriesObserver","getCombinedResult","getOptimisticResult","state","ref","unsubscribe","watch","subscribe","getCombinedResultRestoring","getCombinedResultPersisted","immediate","setQueries","getCurrentResult","deep","onScopeDispose","readonly"],"mappings":";;;;;;;AAAA;;AAkBA;AACA;AAaA;AA2DA;AACA;AACA;AA2BA;AACA;AACA;AA0BO,SAASA,UAAUA,CAIxB;EACEC,OAAO;EACP,GAAGC,OAAAA;AAIL,CAAC,EACDC,WAAyB,EACO;AAChC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,6BAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,gBAAQ,CAAC,MAChCC,oBAAc,CAACP,OAAO,CAAC,CAACQ,GAAG,CAAEC,YAAY,IAAK;AAC5C,IAAA,MAAMC,SAAS,GAAGP,MAAM,CAACQ,mBAAmB,CAACF,YAAY,CAAC,CAAA;IAC1DC,SAAS,CAACE,kBAAkB,GAAGT,MAAM,CAACU,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOJ,SAAS,CAAA;AAClB,GAAC,CACH,CAAC,CAAA;AAED,EAAA,MAAMK,QAAQ,GAAG,IAAIC,yBAAe,CAClCb,MAAM,EACNE,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;EACD,MAAM,GAAGgB,iBAAiB,CAAC,GAAGF,QAAQ,CAACG,mBAAmB,CACxDb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACD,EAAA,MAAMK,KAAK,GAAGC,WAAG,CAACH,iBAAiB,EAAE,CAAyB,CAAA;AAE9D,EAAA,MAAMI,WAAW,GAAGD,WAAG,CAAC,MAAM;AAC5B;AAAA,GACD,CAAC,CAAA;AAEFE,EAAAA,aAAK,CACHnB,MAAM,CAACU,WAAW,EACjBA,WAAW,IAAK;IACf,IAAI,CAACA,WAAW,EAAE;MAChBQ,WAAW,CAACP,KAAK,EAAE,CAAA;AACnBO,MAAAA,WAAW,CAACP,KAAK,GAAGC,QAAQ,CAACQ,SAAS,CAAC,MAAM;QAC3C,MAAM,GAAGC,0BAA0B,CAAC,GAAGT,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,QAAAA,KAAK,CAACL,KAAK,GAAGU,0BAA0B,EAAE,CAAA;AAC5C,OAAC,CAAC,CAAA;AACF;MACA,MAAM,GAAGC,0BAA0B,CAAC,GAAGV,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,MAAAA,KAAK,CAACL,KAAK,GAAGW,0BAA0B,EAAE,CAAA;AAC5C,KAAA;AACF,GAAC,EACD;AAAEC,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;AAEDJ,EAAAA,aAAK,CACH,CAACjB,gBAAgB,CAAC,EAClB,MAAM;IACJU,QAAQ,CAACY,UAAU,CACjBtB,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;AACDkB,IAAAA,KAAK,CAACL,KAAK,GAAGC,QAAQ,CAACa,gBAAgB,EAAE,CAAA;AAC3C,GAAC,EACD;AAAEC,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,sBAAc,CAAC,MAAM;IACnBT,WAAW,CAACP,KAAK,EAAE,CAAA;AACrB,GAAC,CAAC,CAAA;EAEF,OAAOiB,gBAAQ,CAACZ,KAAK,CAAC,CAAA;AACxB;;;;"}
1
+ {"version":3,"file":"useQueries.cjs","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport type {\n QueriesPlaceholderDataFunction,\n QueryKey,\n QueriesObserverOptions,\n QueryFunction,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { Ref } from 'vue-demi'\nimport { computed, onScopeDispose, readonly, ref, watch } from 'vue-demi'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype UseQueryOptionsForUseQueries<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = DistributiveOmit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\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 ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<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 ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptionsForUseQueries<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 ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptionsForUseQueries\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 ? UseQueryOptionsForUseQueries[]\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 UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptionsForUseQueries[]\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 UseQueryOptionsForUseQueries<\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<\n T extends any[],\n TCombinedResult = UseQueriesResults<T>,\n>(\n {\n queries,\n ...options\n }: {\n queries: MaybeRefDeep<UseQueriesOptionsArg<T>>\n combine?: (result: UseQueriesResults<T>) => TCombinedResult\n },\n queryClient?: QueryClient,\n): Readonly<Ref<TCombinedResult>> {\n const client = queryClient || useQueryClient()\n\n const defaultedQueries = computed(() =>\n cloneDeepUnref(queries).map((queryOptions) => {\n const defaulted = client.defaultQueryOptions(queryOptions)\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver<TCombinedResult>(\n client,\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResult] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n const state = ref(getCombinedResult()) as Ref<TCombinedResult>\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe(() => {\n const [, getCombinedResultRestoring] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultRestoring()\n })\n // Subscription would not fire for persisted results\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultPersisted()\n }\n },\n { immediate: true },\n )\n\n watch(\n [defaultedQueries],\n () => {\n observer.setQueries(\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n state.value = observer.getCurrentResult()\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return readonly(state) as Readonly<Ref<TCombinedResult>>\n}\n"],"names":["useQueries","queries","options","queryClient","client","useQueryClient","defaultedQueries","computed","cloneDeepUnref","map","queryOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","value","observer","QueriesObserver","getCombinedResult","getOptimisticResult","state","ref","unsubscribe","watch","subscribe","getCombinedResultRestoring","getCombinedResultPersisted","immediate","setQueries","getCurrentResult","deep","onScopeDispose","readonly"],"mappings":";;;;;;;AAAA;;AAkBA;AACA;AAaA;AA2DA;AACA;AACA;AA2BA;AACA;AACA;AA0BO,SAASA,UAAUA,CAIxB;EACEC,OAAO;EACP,GAAGC,OAAAA;AAIL,CAAC,EACDC,WAAyB,EACO;AAChC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,6BAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,gBAAQ,CAAC,MAChCC,oBAAc,CAACP,OAAO,CAAC,CAACQ,GAAG,CAAEC,YAAY,IAAK;AAC5C,IAAA,MAAMC,SAAS,GAAGP,MAAM,CAACQ,mBAAmB,CAACF,YAAY,CAAC,CAAA;IAC1DC,SAAS,CAACE,kBAAkB,GAAGT,MAAM,CAACU,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOJ,SAAS,CAAA;AAClB,GAAC,CACH,CAAC,CAAA;AAED,EAAA,MAAMK,QAAQ,GAAG,IAAIC,yBAAe,CAClCb,MAAM,EACNE,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;EACD,MAAM,GAAGgB,iBAAiB,CAAC,GAAGF,QAAQ,CAACG,mBAAmB,CACxDb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACD,EAAA,MAAMK,KAAK,GAAGC,WAAG,CAACH,iBAAiB,EAAE,CAAyB,CAAA;EAE9D,IAAII,WAAW,GAAGA,MAAM;AACtB;GACD,CAAA;AAEDC,EAAAA,aAAK,CACHnB,MAAM,CAACU,WAAW,EACjBA,WAAW,IAAK;IACf,IAAI,CAACA,WAAW,EAAE;AAChBQ,MAAAA,WAAW,EAAE,CAAA;AACbA,MAAAA,WAAW,GAAGN,QAAQ,CAACQ,SAAS,CAAC,MAAM;QACrC,MAAM,GAAGC,0BAA0B,CAAC,GAAGT,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,QAAAA,KAAK,CAACL,KAAK,GAAGU,0BAA0B,EAAE,CAAA;AAC5C,OAAC,CAAC,CAAA;AACF;MACA,MAAM,GAAGC,0BAA0B,CAAC,GAAGV,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,MAAAA,KAAK,CAACL,KAAK,GAAGW,0BAA0B,EAAE,CAAA;AAC5C,KAAA;AACF,GAAC,EACD;AAAEC,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;AAEDJ,EAAAA,aAAK,CACH,CAACjB,gBAAgB,CAAC,EAClB,MAAM;IACJU,QAAQ,CAACY,UAAU,CACjBtB,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;AACDkB,IAAAA,KAAK,CAACL,KAAK,GAAGC,QAAQ,CAACa,gBAAgB,EAAE,CAAA;AAC3C,GAAC,EACD;AAAEC,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,sBAAc,CAAC,MAAM;AACnBT,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;EAEF,OAAOU,gBAAQ,CAACZ,KAAK,CAAC,CAAA;AACxB;;;;"}
@@ -27,13 +27,13 @@ function useQueries({
27
27
  const observer = new QueriesObserver(client, defaultedQueries.value, options);
28
28
  const [, getCombinedResult] = observer.getOptimisticResult(defaultedQueries.value);
29
29
  const state = ref(getCombinedResult());
30
- const unsubscribe = ref(() => {
30
+ let unsubscribe = () => {
31
31
  // noop
32
- });
32
+ };
33
33
  watch(client.isRestoring, isRestoring => {
34
34
  if (!isRestoring) {
35
- unsubscribe.value();
36
- unsubscribe.value = observer.subscribe(() => {
35
+ unsubscribe();
36
+ unsubscribe = observer.subscribe(() => {
37
37
  const [, getCombinedResultRestoring] = observer.getOptimisticResult(defaultedQueries.value);
38
38
  state.value = getCombinedResultRestoring();
39
39
  });
@@ -51,7 +51,7 @@ function useQueries({
51
51
  deep: true
52
52
  });
53
53
  onScopeDispose(() => {
54
- unsubscribe.value();
54
+ unsubscribe();
55
55
  });
56
56
  return readonly(state);
57
57
  }
@@ -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 type {\n QueriesPlaceholderDataFunction,\n QueryKey,\n QueriesObserverOptions,\n QueryFunction,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { Ref } from 'vue-demi'\nimport { computed, onScopeDispose, readonly, ref, watch } from 'vue-demi'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype UseQueryOptionsForUseQueries<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = DistributiveOmit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\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 ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<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 ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptionsForUseQueries<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 ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptionsForUseQueries\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 ? UseQueryOptionsForUseQueries[]\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 UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptionsForUseQueries[]\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 UseQueryOptionsForUseQueries<\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<\n T extends any[],\n TCombinedResult = UseQueriesResults<T>,\n>(\n {\n queries,\n ...options\n }: {\n queries: MaybeRefDeep<UseQueriesOptionsArg<T>>\n combine?: (result: UseQueriesResults<T>) => TCombinedResult\n },\n queryClient?: QueryClient,\n): Readonly<Ref<TCombinedResult>> {\n const client = queryClient || useQueryClient()\n\n const defaultedQueries = computed(() =>\n cloneDeepUnref(queries).map((queryOptions) => {\n const defaulted = client.defaultQueryOptions(queryOptions)\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver<TCombinedResult>(\n client,\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResult] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n const state = ref(getCombinedResult()) as Ref<TCombinedResult>\n\n const unsubscribe = ref(() => {\n // noop\n })\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe.value()\n unsubscribe.value = observer.subscribe(() => {\n const [, getCombinedResultRestoring] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultRestoring()\n })\n // Subscription would not fire for persisted results\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultPersisted()\n }\n },\n { immediate: true },\n )\n\n watch(\n [defaultedQueries],\n () => {\n observer.setQueries(\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n state.value = observer.getCurrentResult()\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n return readonly(state) as Readonly<Ref<TCombinedResult>>\n}\n"],"names":["useQueries","queries","options","queryClient","client","useQueryClient","defaultedQueries","computed","cloneDeepUnref","map","queryOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","value","observer","QueriesObserver","getCombinedResult","getOptimisticResult","state","ref","unsubscribe","watch","subscribe","getCombinedResultRestoring","getCombinedResultPersisted","immediate","setQueries","getCurrentResult","deep","onScopeDispose","readonly"],"mappings":";;;;;AAAA;;AAkBA;AACA;AAaA;AA2DA;AACA;AACA;AA2BA;AACA;AACA;AA0BO,SAASA,UAAUA,CAIxB;EACEC,OAAO;EACP,GAAGC,OAAAA;AAIL,CAAC,EACDC,WAAyB,EACO;AAChC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,cAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,QAAQ,CAAC,MAChCC,cAAc,CAACP,OAAO,CAAC,CAACQ,GAAG,CAAEC,YAAY,IAAK;AAC5C,IAAA,MAAMC,SAAS,GAAGP,MAAM,CAACQ,mBAAmB,CAACF,YAAY,CAAC,CAAA;IAC1DC,SAAS,CAACE,kBAAkB,GAAGT,MAAM,CAACU,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOJ,SAAS,CAAA;AAClB,GAAC,CACH,CAAC,CAAA;AAED,EAAA,MAAMK,QAAQ,GAAG,IAAIC,eAAe,CAClCb,MAAM,EACNE,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;EACD,MAAM,GAAGgB,iBAAiB,CAAC,GAAGF,QAAQ,CAACG,mBAAmB,CACxDb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACD,EAAA,MAAMK,KAAK,GAAGC,GAAG,CAACH,iBAAiB,EAAE,CAAyB,CAAA;AAE9D,EAAA,MAAMI,WAAW,GAAGD,GAAG,CAAC,MAAM;AAC5B;AAAA,GACD,CAAC,CAAA;AAEFE,EAAAA,KAAK,CACHnB,MAAM,CAACU,WAAW,EACjBA,WAAW,IAAK;IACf,IAAI,CAACA,WAAW,EAAE;MAChBQ,WAAW,CAACP,KAAK,EAAE,CAAA;AACnBO,MAAAA,WAAW,CAACP,KAAK,GAAGC,QAAQ,CAACQ,SAAS,CAAC,MAAM;QAC3C,MAAM,GAAGC,0BAA0B,CAAC,GAAGT,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,QAAAA,KAAK,CAACL,KAAK,GAAGU,0BAA0B,EAAE,CAAA;AAC5C,OAAC,CAAC,CAAA;AACF;MACA,MAAM,GAAGC,0BAA0B,CAAC,GAAGV,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,MAAAA,KAAK,CAACL,KAAK,GAAGW,0BAA0B,EAAE,CAAA;AAC5C,KAAA;AACF,GAAC,EACD;AAAEC,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;AAEDJ,EAAAA,KAAK,CACH,CAACjB,gBAAgB,CAAC,EAClB,MAAM;IACJU,QAAQ,CAACY,UAAU,CACjBtB,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;AACDkB,IAAAA,KAAK,CAACL,KAAK,GAAGC,QAAQ,CAACa,gBAAgB,EAAE,CAAA;AAC3C,GAAC,EACD;AAAEC,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,cAAc,CAAC,MAAM;IACnBT,WAAW,CAACP,KAAK,EAAE,CAAA;AACrB,GAAC,CAAC,CAAA;EAEF,OAAOiB,QAAQ,CAACZ,KAAK,CAAC,CAAA;AACxB;;;;"}
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 type {\n QueriesPlaceholderDataFunction,\n QueryKey,\n QueriesObserverOptions,\n QueryFunction,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { Ref } from 'vue-demi'\nimport { computed, onScopeDispose, readonly, ref, watch } from 'vue-demi'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype UseQueryOptionsForUseQueries<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = DistributiveOmit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\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 ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<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 ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptionsForUseQueries<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 ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptionsForUseQueries\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 ? UseQueryOptionsForUseQueries[]\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 UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptionsForUseQueries[]\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 UseQueryOptionsForUseQueries<\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<\n T extends any[],\n TCombinedResult = UseQueriesResults<T>,\n>(\n {\n queries,\n ...options\n }: {\n queries: MaybeRefDeep<UseQueriesOptionsArg<T>>\n combine?: (result: UseQueriesResults<T>) => TCombinedResult\n },\n queryClient?: QueryClient,\n): Readonly<Ref<TCombinedResult>> {\n const client = queryClient || useQueryClient()\n\n const defaultedQueries = computed(() =>\n cloneDeepUnref(queries).map((queryOptions) => {\n const defaulted = client.defaultQueryOptions(queryOptions)\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver<TCombinedResult>(\n client,\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResult] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n const state = ref(getCombinedResult()) as Ref<TCombinedResult>\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe(() => {\n const [, getCombinedResultRestoring] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultRestoring()\n })\n // Subscription would not fire for persisted results\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultPersisted()\n }\n },\n { immediate: true },\n )\n\n watch(\n [defaultedQueries],\n () => {\n observer.setQueries(\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n state.value = observer.getCurrentResult()\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return readonly(state) as Readonly<Ref<TCombinedResult>>\n}\n"],"names":["useQueries","queries","options","queryClient","client","useQueryClient","defaultedQueries","computed","cloneDeepUnref","map","queryOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","value","observer","QueriesObserver","getCombinedResult","getOptimisticResult","state","ref","unsubscribe","watch","subscribe","getCombinedResultRestoring","getCombinedResultPersisted","immediate","setQueries","getCurrentResult","deep","onScopeDispose","readonly"],"mappings":";;;;;AAAA;;AAkBA;AACA;AAaA;AA2DA;AACA;AACA;AA2BA;AACA;AACA;AA0BO,SAASA,UAAUA,CAIxB;EACEC,OAAO;EACP,GAAGC,OAAAA;AAIL,CAAC,EACDC,WAAyB,EACO;AAChC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,cAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,QAAQ,CAAC,MAChCC,cAAc,CAACP,OAAO,CAAC,CAACQ,GAAG,CAAEC,YAAY,IAAK;AAC5C,IAAA,MAAMC,SAAS,GAAGP,MAAM,CAACQ,mBAAmB,CAACF,YAAY,CAAC,CAAA;IAC1DC,SAAS,CAACE,kBAAkB,GAAGT,MAAM,CAACU,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOJ,SAAS,CAAA;AAClB,GAAC,CACH,CAAC,CAAA;AAED,EAAA,MAAMK,QAAQ,GAAG,IAAIC,eAAe,CAClCb,MAAM,EACNE,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;EACD,MAAM,GAAGgB,iBAAiB,CAAC,GAAGF,QAAQ,CAACG,mBAAmB,CACxDb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACD,EAAA,MAAMK,KAAK,GAAGC,GAAG,CAACH,iBAAiB,EAAE,CAAyB,CAAA;EAE9D,IAAII,WAAW,GAAGA,MAAM;AACtB;GACD,CAAA;AAEDC,EAAAA,KAAK,CACHnB,MAAM,CAACU,WAAW,EACjBA,WAAW,IAAK;IACf,IAAI,CAACA,WAAW,EAAE;AAChBQ,MAAAA,WAAW,EAAE,CAAA;AACbA,MAAAA,WAAW,GAAGN,QAAQ,CAACQ,SAAS,CAAC,MAAM;QACrC,MAAM,GAAGC,0BAA0B,CAAC,GAAGT,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,QAAAA,KAAK,CAACL,KAAK,GAAGU,0BAA0B,EAAE,CAAA;AAC5C,OAAC,CAAC,CAAA;AACF;MACA,MAAM,GAAGC,0BAA0B,CAAC,GAAGV,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,MAAAA,KAAK,CAACL,KAAK,GAAGW,0BAA0B,EAAE,CAAA;AAC5C,KAAA;AACF,GAAC,EACD;AAAEC,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;AAEDJ,EAAAA,KAAK,CACH,CAACjB,gBAAgB,CAAC,EAClB,MAAM;IACJU,QAAQ,CAACY,UAAU,CACjBtB,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;AACDkB,IAAAA,KAAK,CAACL,KAAK,GAAGC,QAAQ,CAACa,gBAAgB,EAAE,CAAA;AAC3C,GAAC,EACD;AAAEC,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,cAAc,CAAC,MAAM;AACnBT,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;EAEF,OAAOU,QAAQ,CAACZ,KAAK,CAAC,CAAA;AACxB;;;;"}
@@ -29,13 +29,13 @@ function useQueries({
29
29
  const observer = new queryCore.QueriesObserver(client, defaultedQueries.value, options);
30
30
  const [, getCombinedResult] = observer.getOptimisticResult(defaultedQueries.value);
31
31
  const state = vueDemi.ref(getCombinedResult());
32
- const unsubscribe = vueDemi.ref(() => {
32
+ let unsubscribe = () => {
33
33
  // noop
34
- });
34
+ };
35
35
  vueDemi.watch(client.isRestoring, isRestoring => {
36
36
  if (!isRestoring) {
37
- unsubscribe.value();
38
- unsubscribe.value = observer.subscribe(() => {
37
+ unsubscribe();
38
+ unsubscribe = observer.subscribe(() => {
39
39
  const [, getCombinedResultRestoring] = observer.getOptimisticResult(defaultedQueries.value);
40
40
  state.value = getCombinedResultRestoring();
41
41
  });
@@ -53,7 +53,7 @@ function useQueries({
53
53
  deep: true
54
54
  });
55
55
  vueDemi.onScopeDispose(() => {
56
- unsubscribe.value();
56
+ unsubscribe();
57
57
  });
58
58
  return vueDemi.readonly(state);
59
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useQueries.legacy.cjs","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport type {\n QueriesPlaceholderDataFunction,\n QueryKey,\n QueriesObserverOptions,\n QueryFunction,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { Ref } from 'vue-demi'\nimport { computed, onScopeDispose, readonly, ref, watch } from 'vue-demi'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype UseQueryOptionsForUseQueries<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = DistributiveOmit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\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 ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<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 ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptionsForUseQueries<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 ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptionsForUseQueries\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 ? UseQueryOptionsForUseQueries[]\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 UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptionsForUseQueries[]\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 UseQueryOptionsForUseQueries<\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<\n T extends any[],\n TCombinedResult = UseQueriesResults<T>,\n>(\n {\n queries,\n ...options\n }: {\n queries: MaybeRefDeep<UseQueriesOptionsArg<T>>\n combine?: (result: UseQueriesResults<T>) => TCombinedResult\n },\n queryClient?: QueryClient,\n): Readonly<Ref<TCombinedResult>> {\n const client = queryClient || useQueryClient()\n\n const defaultedQueries = computed(() =>\n cloneDeepUnref(queries).map((queryOptions) => {\n const defaulted = client.defaultQueryOptions(queryOptions)\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver<TCombinedResult>(\n client,\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResult] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n const state = ref(getCombinedResult()) as Ref<TCombinedResult>\n\n const unsubscribe = ref(() => {\n // noop\n })\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe.value()\n unsubscribe.value = observer.subscribe(() => {\n const [, getCombinedResultRestoring] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultRestoring()\n })\n // Subscription would not fire for persisted results\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultPersisted()\n }\n },\n { immediate: true },\n )\n\n watch(\n [defaultedQueries],\n () => {\n observer.setQueries(\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n state.value = observer.getCurrentResult()\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n return readonly(state) as Readonly<Ref<TCombinedResult>>\n}\n"],"names":["useQueries","queries","options","queryClient","client","useQueryClient","defaultedQueries","computed","cloneDeepUnref","map","queryOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","value","observer","QueriesObserver","getCombinedResult","getOptimisticResult","state","ref","unsubscribe","watch","subscribe","getCombinedResultRestoring","getCombinedResultPersisted","immediate","setQueries","getCurrentResult","deep","onScopeDispose","readonly"],"mappings":";;;;;;;AAAA;;AAkBA;AACA;AAaA;AA2DA;AACA;AACA;AA2BA;AACA;AACA;AA0BO,SAASA,UAAUA,CAIxB;EACEC,OAAO;EACP,GAAGC,OAAAA;AAIL,CAAC,EACDC,WAAyB,EACO;AAChC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,6BAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,gBAAQ,CAAC,MAChCC,oBAAc,CAACP,OAAO,CAAC,CAACQ,GAAG,CAAEC,YAAY,IAAK;AAC5C,IAAA,MAAMC,SAAS,GAAGP,MAAM,CAACQ,mBAAmB,CAACF,YAAY,CAAC,CAAA;IAC1DC,SAAS,CAACE,kBAAkB,GAAGT,MAAM,CAACU,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOJ,SAAS,CAAA;AAClB,GAAC,CACH,CAAC,CAAA;AAED,EAAA,MAAMK,QAAQ,GAAG,IAAIC,yBAAe,CAClCb,MAAM,EACNE,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;EACD,MAAM,GAAGgB,iBAAiB,CAAC,GAAGF,QAAQ,CAACG,mBAAmB,CACxDb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACD,EAAA,MAAMK,KAAK,GAAGC,WAAG,CAACH,iBAAiB,EAAE,CAAyB,CAAA;AAE9D,EAAA,MAAMI,WAAW,GAAGD,WAAG,CAAC,MAAM;AAC5B;AAAA,GACD,CAAC,CAAA;AAEFE,EAAAA,aAAK,CACHnB,MAAM,CAACU,WAAW,EACjBA,WAAW,IAAK;IACf,IAAI,CAACA,WAAW,EAAE;MAChBQ,WAAW,CAACP,KAAK,EAAE,CAAA;AACnBO,MAAAA,WAAW,CAACP,KAAK,GAAGC,QAAQ,CAACQ,SAAS,CAAC,MAAM;QAC3C,MAAM,GAAGC,0BAA0B,CAAC,GAAGT,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,QAAAA,KAAK,CAACL,KAAK,GAAGU,0BAA0B,EAAE,CAAA;AAC5C,OAAC,CAAC,CAAA;AACF;MACA,MAAM,GAAGC,0BAA0B,CAAC,GAAGV,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,MAAAA,KAAK,CAACL,KAAK,GAAGW,0BAA0B,EAAE,CAAA;AAC5C,KAAA;AACF,GAAC,EACD;AAAEC,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;AAEDJ,EAAAA,aAAK,CACH,CAACjB,gBAAgB,CAAC,EAClB,MAAM;IACJU,QAAQ,CAACY,UAAU,CACjBtB,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;AACDkB,IAAAA,KAAK,CAACL,KAAK,GAAGC,QAAQ,CAACa,gBAAgB,EAAE,CAAA;AAC3C,GAAC,EACD;AAAEC,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,sBAAc,CAAC,MAAM;IACnBT,WAAW,CAACP,KAAK,EAAE,CAAA;AACrB,GAAC,CAAC,CAAA;EAEF,OAAOiB,gBAAQ,CAACZ,KAAK,CAAC,CAAA;AACxB;;;;"}
1
+ {"version":3,"file":"useQueries.legacy.cjs","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport type {\n QueriesPlaceholderDataFunction,\n QueryKey,\n QueriesObserverOptions,\n QueryFunction,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { Ref } from 'vue-demi'\nimport { computed, onScopeDispose, readonly, ref, watch } from 'vue-demi'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype UseQueryOptionsForUseQueries<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = DistributiveOmit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\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 ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<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 ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptionsForUseQueries<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 ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptionsForUseQueries\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 ? UseQueryOptionsForUseQueries[]\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 UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptionsForUseQueries[]\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 UseQueryOptionsForUseQueries<\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<\n T extends any[],\n TCombinedResult = UseQueriesResults<T>,\n>(\n {\n queries,\n ...options\n }: {\n queries: MaybeRefDeep<UseQueriesOptionsArg<T>>\n combine?: (result: UseQueriesResults<T>) => TCombinedResult\n },\n queryClient?: QueryClient,\n): Readonly<Ref<TCombinedResult>> {\n const client = queryClient || useQueryClient()\n\n const defaultedQueries = computed(() =>\n cloneDeepUnref(queries).map((queryOptions) => {\n const defaulted = client.defaultQueryOptions(queryOptions)\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver<TCombinedResult>(\n client,\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResult] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n const state = ref(getCombinedResult()) as Ref<TCombinedResult>\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe(() => {\n const [, getCombinedResultRestoring] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultRestoring()\n })\n // Subscription would not fire for persisted results\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultPersisted()\n }\n },\n { immediate: true },\n )\n\n watch(\n [defaultedQueries],\n () => {\n observer.setQueries(\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n state.value = observer.getCurrentResult()\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return readonly(state) as Readonly<Ref<TCombinedResult>>\n}\n"],"names":["useQueries","queries","options","queryClient","client","useQueryClient","defaultedQueries","computed","cloneDeepUnref","map","queryOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","value","observer","QueriesObserver","getCombinedResult","getOptimisticResult","state","ref","unsubscribe","watch","subscribe","getCombinedResultRestoring","getCombinedResultPersisted","immediate","setQueries","getCurrentResult","deep","onScopeDispose","readonly"],"mappings":";;;;;;;AAAA;;AAkBA;AACA;AAaA;AA2DA;AACA;AACA;AA2BA;AACA;AACA;AA0BO,SAASA,UAAUA,CAIxB;EACEC,OAAO;EACP,GAAGC,OAAAA;AAIL,CAAC,EACDC,WAAyB,EACO;AAChC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,6BAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,gBAAQ,CAAC,MAChCC,oBAAc,CAACP,OAAO,CAAC,CAACQ,GAAG,CAAEC,YAAY,IAAK;AAC5C,IAAA,MAAMC,SAAS,GAAGP,MAAM,CAACQ,mBAAmB,CAACF,YAAY,CAAC,CAAA;IAC1DC,SAAS,CAACE,kBAAkB,GAAGT,MAAM,CAACU,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOJ,SAAS,CAAA;AAClB,GAAC,CACH,CAAC,CAAA;AAED,EAAA,MAAMK,QAAQ,GAAG,IAAIC,yBAAe,CAClCb,MAAM,EACNE,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;EACD,MAAM,GAAGgB,iBAAiB,CAAC,GAAGF,QAAQ,CAACG,mBAAmB,CACxDb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACD,EAAA,MAAMK,KAAK,GAAGC,WAAG,CAACH,iBAAiB,EAAE,CAAyB,CAAA;EAE9D,IAAII,WAAW,GAAGA,MAAM;AACtB;GACD,CAAA;AAEDC,EAAAA,aAAK,CACHnB,MAAM,CAACU,WAAW,EACjBA,WAAW,IAAK;IACf,IAAI,CAACA,WAAW,EAAE;AAChBQ,MAAAA,WAAW,EAAE,CAAA;AACbA,MAAAA,WAAW,GAAGN,QAAQ,CAACQ,SAAS,CAAC,MAAM;QACrC,MAAM,GAAGC,0BAA0B,CAAC,GAAGT,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,QAAAA,KAAK,CAACL,KAAK,GAAGU,0BAA0B,EAAE,CAAA;AAC5C,OAAC,CAAC,CAAA;AACF;MACA,MAAM,GAAGC,0BAA0B,CAAC,GAAGV,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,MAAAA,KAAK,CAACL,KAAK,GAAGW,0BAA0B,EAAE,CAAA;AAC5C,KAAA;AACF,GAAC,EACD;AAAEC,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;AAEDJ,EAAAA,aAAK,CACH,CAACjB,gBAAgB,CAAC,EAClB,MAAM;IACJU,QAAQ,CAACY,UAAU,CACjBtB,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;AACDkB,IAAAA,KAAK,CAACL,KAAK,GAAGC,QAAQ,CAACa,gBAAgB,EAAE,CAAA;AAC3C,GAAC,EACD;AAAEC,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,sBAAc,CAAC,MAAM;AACnBT,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;EAEF,OAAOU,gBAAQ,CAACZ,KAAK,CAAC,CAAA;AACxB;;;;"}
@@ -27,13 +27,13 @@ function useQueries({
27
27
  const observer = new QueriesObserver(client, defaultedQueries.value, options);
28
28
  const [, getCombinedResult] = observer.getOptimisticResult(defaultedQueries.value);
29
29
  const state = ref(getCombinedResult());
30
- const unsubscribe = ref(() => {
30
+ let unsubscribe = () => {
31
31
  // noop
32
- });
32
+ };
33
33
  watch(client.isRestoring, isRestoring => {
34
34
  if (!isRestoring) {
35
- unsubscribe.value();
36
- unsubscribe.value = observer.subscribe(() => {
35
+ unsubscribe();
36
+ unsubscribe = observer.subscribe(() => {
37
37
  const [, getCombinedResultRestoring] = observer.getOptimisticResult(defaultedQueries.value);
38
38
  state.value = getCombinedResultRestoring();
39
39
  });
@@ -51,7 +51,7 @@ function useQueries({
51
51
  deep: true
52
52
  });
53
53
  onScopeDispose(() => {
54
- unsubscribe.value();
54
+ unsubscribe();
55
55
  });
56
56
  return readonly(state);
57
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useQueries.legacy.js","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport type {\n QueriesPlaceholderDataFunction,\n QueryKey,\n QueriesObserverOptions,\n QueryFunction,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { Ref } from 'vue-demi'\nimport { computed, onScopeDispose, readonly, ref, watch } from 'vue-demi'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype UseQueryOptionsForUseQueries<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = DistributiveOmit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\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 ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<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 ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptionsForUseQueries<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 ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptionsForUseQueries\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 ? UseQueryOptionsForUseQueries[]\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 UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptionsForUseQueries[]\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 UseQueryOptionsForUseQueries<\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<\n T extends any[],\n TCombinedResult = UseQueriesResults<T>,\n>(\n {\n queries,\n ...options\n }: {\n queries: MaybeRefDeep<UseQueriesOptionsArg<T>>\n combine?: (result: UseQueriesResults<T>) => TCombinedResult\n },\n queryClient?: QueryClient,\n): Readonly<Ref<TCombinedResult>> {\n const client = queryClient || useQueryClient()\n\n const defaultedQueries = computed(() =>\n cloneDeepUnref(queries).map((queryOptions) => {\n const defaulted = client.defaultQueryOptions(queryOptions)\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver<TCombinedResult>(\n client,\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResult] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n const state = ref(getCombinedResult()) as Ref<TCombinedResult>\n\n const unsubscribe = ref(() => {\n // noop\n })\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe.value()\n unsubscribe.value = observer.subscribe(() => {\n const [, getCombinedResultRestoring] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultRestoring()\n })\n // Subscription would not fire for persisted results\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultPersisted()\n }\n },\n { immediate: true },\n )\n\n watch(\n [defaultedQueries],\n () => {\n observer.setQueries(\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n state.value = observer.getCurrentResult()\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n return readonly(state) as Readonly<Ref<TCombinedResult>>\n}\n"],"names":["useQueries","queries","options","queryClient","client","useQueryClient","defaultedQueries","computed","cloneDeepUnref","map","queryOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","value","observer","QueriesObserver","getCombinedResult","getOptimisticResult","state","ref","unsubscribe","watch","subscribe","getCombinedResultRestoring","getCombinedResultPersisted","immediate","setQueries","getCurrentResult","deep","onScopeDispose","readonly"],"mappings":";;;;;AAAA;;AAkBA;AACA;AAaA;AA2DA;AACA;AACA;AA2BA;AACA;AACA;AA0BO,SAASA,UAAUA,CAIxB;EACEC,OAAO;EACP,GAAGC,OAAAA;AAIL,CAAC,EACDC,WAAyB,EACO;AAChC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,cAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,QAAQ,CAAC,MAChCC,cAAc,CAACP,OAAO,CAAC,CAACQ,GAAG,CAAEC,YAAY,IAAK;AAC5C,IAAA,MAAMC,SAAS,GAAGP,MAAM,CAACQ,mBAAmB,CAACF,YAAY,CAAC,CAAA;IAC1DC,SAAS,CAACE,kBAAkB,GAAGT,MAAM,CAACU,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOJ,SAAS,CAAA;AAClB,GAAC,CACH,CAAC,CAAA;AAED,EAAA,MAAMK,QAAQ,GAAG,IAAIC,eAAe,CAClCb,MAAM,EACNE,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;EACD,MAAM,GAAGgB,iBAAiB,CAAC,GAAGF,QAAQ,CAACG,mBAAmB,CACxDb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACD,EAAA,MAAMK,KAAK,GAAGC,GAAG,CAACH,iBAAiB,EAAE,CAAyB,CAAA;AAE9D,EAAA,MAAMI,WAAW,GAAGD,GAAG,CAAC,MAAM;AAC5B;AAAA,GACD,CAAC,CAAA;AAEFE,EAAAA,KAAK,CACHnB,MAAM,CAACU,WAAW,EACjBA,WAAW,IAAK;IACf,IAAI,CAACA,WAAW,EAAE;MAChBQ,WAAW,CAACP,KAAK,EAAE,CAAA;AACnBO,MAAAA,WAAW,CAACP,KAAK,GAAGC,QAAQ,CAACQ,SAAS,CAAC,MAAM;QAC3C,MAAM,GAAGC,0BAA0B,CAAC,GAAGT,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,QAAAA,KAAK,CAACL,KAAK,GAAGU,0BAA0B,EAAE,CAAA;AAC5C,OAAC,CAAC,CAAA;AACF;MACA,MAAM,GAAGC,0BAA0B,CAAC,GAAGV,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,MAAAA,KAAK,CAACL,KAAK,GAAGW,0BAA0B,EAAE,CAAA;AAC5C,KAAA;AACF,GAAC,EACD;AAAEC,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;AAEDJ,EAAAA,KAAK,CACH,CAACjB,gBAAgB,CAAC,EAClB,MAAM;IACJU,QAAQ,CAACY,UAAU,CACjBtB,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;AACDkB,IAAAA,KAAK,CAACL,KAAK,GAAGC,QAAQ,CAACa,gBAAgB,EAAE,CAAA;AAC3C,GAAC,EACD;AAAEC,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,cAAc,CAAC,MAAM;IACnBT,WAAW,CAACP,KAAK,EAAE,CAAA;AACrB,GAAC,CAAC,CAAA;EAEF,OAAOiB,QAAQ,CAACZ,KAAK,CAAC,CAAA;AACxB;;;;"}
1
+ {"version":3,"file":"useQueries.legacy.js","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport type {\n QueriesPlaceholderDataFunction,\n QueryKey,\n QueriesObserverOptions,\n QueryFunction,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { Ref } from 'vue-demi'\nimport { computed, onScopeDispose, readonly, ref, watch } from 'vue-demi'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\nimport type { DistributiveOmit, MaybeRefDeep } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype UseQueryOptionsForUseQueries<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = DistributiveOmit<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\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 ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptionsForUseQueries<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 ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptionsForUseQueries<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 ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptionsForUseQueries<TQueryFnData, Error, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptionsForUseQueries\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 ? UseQueryOptionsForUseQueries[]\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 UseQueryOptionsForUseQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptionsForUseQueries[]\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 UseQueryOptionsForUseQueries<\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<\n T extends any[],\n TCombinedResult = UseQueriesResults<T>,\n>(\n {\n queries,\n ...options\n }: {\n queries: MaybeRefDeep<UseQueriesOptionsArg<T>>\n combine?: (result: UseQueriesResults<T>) => TCombinedResult\n },\n queryClient?: QueryClient,\n): Readonly<Ref<TCombinedResult>> {\n const client = queryClient || useQueryClient()\n\n const defaultedQueries = computed(() =>\n cloneDeepUnref(queries).map((queryOptions) => {\n const defaulted = client.defaultQueryOptions(queryOptions)\n defaulted._optimisticResults = client.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver<TCombinedResult>(\n client,\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n const [, getCombinedResult] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n const state = ref(getCombinedResult()) as Ref<TCombinedResult>\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n client.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe(() => {\n const [, getCombinedResultRestoring] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultRestoring()\n })\n // Subscription would not fire for persisted results\n const [, getCombinedResultPersisted] = observer.getOptimisticResult(\n defaultedQueries.value,\n )\n state.value = getCombinedResultPersisted()\n }\n },\n { immediate: true },\n )\n\n watch(\n [defaultedQueries],\n () => {\n observer.setQueries(\n defaultedQueries.value,\n options as QueriesObserverOptions<TCombinedResult>,\n )\n state.value = observer.getCurrentResult()\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return readonly(state) as Readonly<Ref<TCombinedResult>>\n}\n"],"names":["useQueries","queries","options","queryClient","client","useQueryClient","defaultedQueries","computed","cloneDeepUnref","map","queryOptions","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","value","observer","QueriesObserver","getCombinedResult","getOptimisticResult","state","ref","unsubscribe","watch","subscribe","getCombinedResultRestoring","getCombinedResultPersisted","immediate","setQueries","getCurrentResult","deep","onScopeDispose","readonly"],"mappings":";;;;;AAAA;;AAkBA;AACA;AAaA;AA2DA;AACA;AACA;AA2BA;AACA;AACA;AA0BO,SAASA,UAAUA,CAIxB;EACEC,OAAO;EACP,GAAGC,OAAAA;AAIL,CAAC,EACDC,WAAyB,EACO;AAChC,EAAA,MAAMC,MAAM,GAAGD,WAAW,IAAIE,cAAc,EAAE,CAAA;AAE9C,EAAA,MAAMC,gBAAgB,GAAGC,QAAQ,CAAC,MAChCC,cAAc,CAACP,OAAO,CAAC,CAACQ,GAAG,CAAEC,YAAY,IAAK;AAC5C,IAAA,MAAMC,SAAS,GAAGP,MAAM,CAACQ,mBAAmB,CAACF,YAAY,CAAC,CAAA;IAC1DC,SAAS,CAACE,kBAAkB,GAAGT,MAAM,CAACU,WAAW,CAACC,KAAK,GACnD,aAAa,GACb,YAAY,CAAA;AAEhB,IAAA,OAAOJ,SAAS,CAAA;AAClB,GAAC,CACH,CAAC,CAAA;AAED,EAAA,MAAMK,QAAQ,GAAG,IAAIC,eAAe,CAClCb,MAAM,EACNE,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;EACD,MAAM,GAAGgB,iBAAiB,CAAC,GAAGF,QAAQ,CAACG,mBAAmB,CACxDb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACD,EAAA,MAAMK,KAAK,GAAGC,GAAG,CAACH,iBAAiB,EAAE,CAAyB,CAAA;EAE9D,IAAII,WAAW,GAAGA,MAAM;AACtB;GACD,CAAA;AAEDC,EAAAA,KAAK,CACHnB,MAAM,CAACU,WAAW,EACjBA,WAAW,IAAK;IACf,IAAI,CAACA,WAAW,EAAE;AAChBQ,MAAAA,WAAW,EAAE,CAAA;AACbA,MAAAA,WAAW,GAAGN,QAAQ,CAACQ,SAAS,CAAC,MAAM;QACrC,MAAM,GAAGC,0BAA0B,CAAC,GAAGT,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,QAAAA,KAAK,CAACL,KAAK,GAAGU,0BAA0B,EAAE,CAAA;AAC5C,OAAC,CAAC,CAAA;AACF;MACA,MAAM,GAAGC,0BAA0B,CAAC,GAAGV,QAAQ,CAACG,mBAAmB,CACjEb,gBAAgB,CAACS,KACnB,CAAC,CAAA;AACDK,MAAAA,KAAK,CAACL,KAAK,GAAGW,0BAA0B,EAAE,CAAA;AAC5C,KAAA;AACF,GAAC,EACD;AAAEC,IAAAA,SAAS,EAAE,IAAA;AAAK,GACpB,CAAC,CAAA;AAEDJ,EAAAA,KAAK,CACH,CAACjB,gBAAgB,CAAC,EAClB,MAAM;IACJU,QAAQ,CAACY,UAAU,CACjBtB,gBAAgB,CAACS,KAAK,EACtBb,OACF,CAAC,CAAA;AACDkB,IAAAA,KAAK,CAACL,KAAK,GAAGC,QAAQ,CAACa,gBAAgB,EAAE,CAAA;AAC3C,GAAC,EACD;AAAEC,IAAAA,IAAI,EAAE,IAAA;AAAK,GACf,CAAC,CAAA;AAEDC,EAAAA,cAAc,CAAC,MAAM;AACnBT,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,CAAC,CAAA;EAEF,OAAOU,QAAQ,CAACZ,KAAK,CAAC,CAAA;AACxB;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/vue-query",
3
- "version": "5.0.0-alpha.71",
3
+ "version": "5.0.0-alpha.79",
4
4
  "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue",
5
5
  "author": "Damian Osipiuk",
6
6
  "license": "MIT",
@@ -28,6 +28,15 @@
28
28
  "./package.json": "./package.json"
29
29
  },
30
30
  "sideEffects": false,
31
+ "nx": {
32
+ "targets": {
33
+ "test:lib": {
34
+ "dependsOn": [
35
+ "test:types"
36
+ ]
37
+ }
38
+ }
39
+ },
31
40
  "files": [
32
41
  "build/lib/*",
33
42
  "src"
@@ -4,7 +4,6 @@ import {
4
4
  readonly,
5
5
  reactive,
6
6
  watch,
7
- ref,
8
7
  computed,
9
8
  } from 'vue-demi'
10
9
  import type { ToRefs } from 'vue-demi'
@@ -86,17 +85,17 @@ export function useBaseQuery<
86
85
  const observer = new Observer(client, defaultedOptions.value)
87
86
  const state = reactive(observer.getCurrentResult())
88
87
 
89
- const unsubscribe = ref(() => {
88
+ let unsubscribe = () => {
90
89
  // noop
91
- })
90
+ }
92
91
 
93
92
  watch(
94
93
  client.isRestoring,
95
94
  (isRestoring) => {
96
95
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
97
96
  if (!isRestoring) {
98
- unsubscribe.value()
99
- unsubscribe.value = observer.subscribe((result) => {
97
+ unsubscribe()
98
+ unsubscribe = observer.subscribe((result) => {
100
99
  updateState(state, result)
101
100
  })
102
101
  }
@@ -114,7 +113,7 @@ export function useBaseQuery<
114
113
  )
115
114
 
116
115
  onScopeDispose(() => {
117
- unsubscribe.value()
116
+ unsubscribe()
118
117
  })
119
118
 
120
119
  const suspense = () => {
package/src/useQueries.ts CHANGED
@@ -182,16 +182,16 @@ export function useQueries<
182
182
  )
183
183
  const state = ref(getCombinedResult()) as Ref<TCombinedResult>
184
184
 
185
- const unsubscribe = ref(() => {
185
+ let unsubscribe = () => {
186
186
  // noop
187
- })
187
+ }
188
188
 
189
189
  watch(
190
190
  client.isRestoring,
191
191
  (isRestoring) => {
192
192
  if (!isRestoring) {
193
- unsubscribe.value()
194
- unsubscribe.value = observer.subscribe(() => {
193
+ unsubscribe()
194
+ unsubscribe = observer.subscribe(() => {
195
195
  const [, getCombinedResultRestoring] = observer.getOptimisticResult(
196
196
  defaultedQueries.value,
197
197
  )
@@ -220,7 +220,7 @@ export function useQueries<
220
220
  )
221
221
 
222
222
  onScopeDispose(() => {
223
- unsubscribe.value()
223
+ unsubscribe()
224
224
  })
225
225
 
226
226
  return readonly(state) as Readonly<Ref<TCombinedResult>>