@tanstack/vue-query 4.29.19 → 4.29.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/devtools/devtools.d.ts.map +1 -1
- package/build/lib/devtools/devtools.esm.js +2 -1
- package/build/lib/devtools/devtools.esm.js.map +1 -1
- package/build/lib/devtools/devtools.js +2 -1
- package/build/lib/devtools/devtools.js.map +1 -1
- package/build/lib/devtools/devtools.mjs +2 -1
- package/build/lib/devtools/devtools.mjs.map +1 -1
- package/build/lib/useBaseQuery.d.ts.map +1 -1
- package/build/lib/useBaseQuery.esm.js +8 -6
- package/build/lib/useBaseQuery.esm.js.map +1 -1
- package/build/lib/useBaseQuery.js +7 -5
- package/build/lib/useBaseQuery.js.map +1 -1
- package/build/lib/useBaseQuery.mjs +8 -6
- package/build/lib/useBaseQuery.mjs.map +1 -1
- package/build/lib/useQueries.d.ts.map +1 -1
- package/build/lib/useQueries.esm.js +8 -6
- package/build/lib/useQueries.esm.js.map +1 -1
- package/build/lib/useQueries.js +7 -5
- package/build/lib/useQueries.js.map +1 -1
- package/build/lib/useQueries.mjs +8 -6
- package/build/lib/useQueries.mjs.map +1 -1
- package/build/umd/index.development.js +16 -11
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQueries.esm.js","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n ref,\n watch,\n} from 'vue-demi'\nimport type { Ref } from 'vue-demi'\n\nimport type { QueryFunction, QueryObserverResult } from '@tanstack/query-core'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptions<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptions<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? UseQueryOptions<TQueryFnData, unknown, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptions<TQueryFnData, unknown, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptions\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? QueryObserverResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? QueryObserverResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? QueryObserverResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? QueryObserverResult<TQueryFnData>\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? UseQueryOptions[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptions[]\n\n/**\n * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? QueryObserverResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]\n : // Fallback\n QueryObserverResult[]\n\ntype UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]\n\nexport function useQueries<T extends any[]>({\n queries,\n queryClient: queryClientInjected,\n}: {\n queries: Ref<UseQueriesOptionsArg<T>> | UseQueriesOptionsArg<T>\n queryClient?: QueryClient\n}): Readonly<UseQueriesResults<T>> {\n const unreffedQueries = computed(\n () => cloneDeepUnref(queries) as UseQueriesOptionsArg<T>,\n )\n\n const queryClientKey = unreffedQueries.value[0]?.queryClientKey\n const optionsQueryClient = unreffedQueries.value[0]?.queryClient as\n | QueryClient\n | undefined\n const queryClient =\n queryClientInjected ?? optionsQueryClient ?? useQueryClient(queryClientKey)\n if (\n process.env.NODE_ENV !== 'production' &&\n (queryClientKey || optionsQueryClient)\n ) {\n queryClient\n .getLogger()\n .error(\n `Providing queryClient to individual queries in useQueries has been deprecated and will be removed in the next major version. You can still pass queryClient as an option directly to useQueries hook.`,\n )\n }\n\n const defaultedQueries = computed(() =>\n unreffedQueries.value.map((options) => {\n const defaulted = queryClient.defaultQueryOptions(options)\n defaulted._optimisticResults = queryClient.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver(queryClient, defaultedQueries.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = ref(() => {\n // noop\n })\n\n watch(\n queryClient.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe.value()\n unsubscribe.value = observer.subscribe((result) => {\n state.splice(0, result.length, ...result)\n })\n // Subscription would not fire for persisted results\n state.splice(\n 0,\n state.length,\n ...observer.getOptimisticResult(defaultedQueries.value),\n )\n }\n },\n { immediate: true },\n )\n\n watch(\n unreffedQueries,\n () => {\n observer.setQueries(defaultedQueries.value)\n state.splice(0, state.length, ...observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n return readonly(state) as UseQueriesResults<T>\n}\n"],"names":["useQueries","queries","queryClient","queryClientInjected","unreffedQueries","computed","cloneDeepUnref","queryClientKey","value","optionsQueryClient","useQueryClient","process","env","NODE_ENV","getLogger","error","defaultedQueries","map","options","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","observer","QueriesObserver","state","reactive","getCurrentResult","unsubscribe","ref","watch","subscribe","result","splice","length","getOptimisticResult","immediate","setQueries","deep","onScopeDispose","readonly"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useQueries.esm.js","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport { computed, onScopeDispose, reactive, readonly, watch } from 'vue-demi'\nimport type { Ref } from 'vue-demi'\n\nimport type { QueryFunction, QueryObserverResult } from '@tanstack/query-core'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptions<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptions<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? UseQueryOptions<TQueryFnData, unknown, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptions<TQueryFnData, unknown, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptions\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? QueryObserverResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? QueryObserverResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? QueryObserverResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? QueryObserverResult<TQueryFnData>\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? UseQueryOptions[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptions[]\n\n/**\n * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? QueryObserverResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]\n : // Fallback\n QueryObserverResult[]\n\ntype UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]\n\nexport function useQueries<T extends any[]>({\n queries,\n queryClient: queryClientInjected,\n}: {\n queries: Ref<UseQueriesOptionsArg<T>> | UseQueriesOptionsArg<T>\n queryClient?: QueryClient\n}): Readonly<UseQueriesResults<T>> {\n const unreffedQueries = computed(\n () => cloneDeepUnref(queries) as UseQueriesOptionsArg<T>,\n )\n\n const queryClientKey = unreffedQueries.value[0]?.queryClientKey\n const optionsQueryClient = unreffedQueries.value[0]?.queryClient as\n | QueryClient\n | undefined\n const queryClient =\n queryClientInjected ?? optionsQueryClient ?? useQueryClient(queryClientKey)\n if (\n process.env.NODE_ENV !== 'production' &&\n (queryClientKey || optionsQueryClient)\n ) {\n queryClient\n .getLogger()\n .error(\n `Providing queryClient to individual queries in useQueries has been deprecated and will be removed in the next major version. You can still pass queryClient as an option directly to useQueries hook.`,\n )\n }\n\n const defaultedQueries = computed(() =>\n unreffedQueries.value.map((options) => {\n const defaulted = queryClient.defaultQueryOptions(options)\n defaulted._optimisticResults = queryClient.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver(queryClient, defaultedQueries.value)\n const state = reactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n queryClient.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n state.splice(0, result.length, ...result)\n })\n // Subscription would not fire for persisted results\n state.splice(\n 0,\n state.length,\n ...observer.getOptimisticResult(defaultedQueries.value),\n )\n }\n },\n { immediate: true },\n )\n\n watch(\n unreffedQueries,\n () => {\n observer.setQueries(defaultedQueries.value)\n state.splice(0, state.length, ...observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return readonly(state) as UseQueriesResults<T>\n}\n"],"names":["useQueries","queries","queryClient","queryClientInjected","unreffedQueries","computed","cloneDeepUnref","queryClientKey","value","optionsQueryClient","useQueryClient","process","env","NODE_ENV","getLogger","error","defaultedQueries","map","options","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","observer","QueriesObserver","state","reactive","getCurrentResult","unsubscribe","watch","subscribe","result","splice","length","getOptimisticResult","immediate","setQueries","deep","onScopeDispose","readonly"],"mappings":"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"}
|
package/build/lib/useQueries.js
CHANGED
|
@@ -30,12 +30,14 @@ function useQueries({
|
|
|
30
30
|
}));
|
|
31
31
|
const observer = new queryCore.QueriesObserver(queryClient, defaultedQueries.value);
|
|
32
32
|
const state = vueDemi.reactive(observer.getCurrentResult());
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
|
|
34
|
+
let unsubscribe = () => {// noop
|
|
35
|
+
};
|
|
36
|
+
|
|
35
37
|
vueDemi.watch(queryClient.isRestoring, isRestoring => {
|
|
36
38
|
if (!isRestoring) {
|
|
37
|
-
unsubscribe
|
|
38
|
-
unsubscribe
|
|
39
|
+
unsubscribe();
|
|
40
|
+
unsubscribe = observer.subscribe(result => {
|
|
39
41
|
state.splice(0, result.length, ...result);
|
|
40
42
|
}); // Subscription would not fire for persisted results
|
|
41
43
|
|
|
@@ -51,7 +53,7 @@ function useQueries({
|
|
|
51
53
|
deep: true
|
|
52
54
|
});
|
|
53
55
|
vueDemi.onScopeDispose(() => {
|
|
54
|
-
unsubscribe
|
|
56
|
+
unsubscribe();
|
|
55
57
|
});
|
|
56
58
|
return vueDemi.readonly(state);
|
|
57
59
|
}
|
|
@@ -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 {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n ref,\n watch,\n} from 'vue-demi'\nimport type { Ref } from 'vue-demi'\n\nimport type { QueryFunction, QueryObserverResult } from '@tanstack/query-core'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptions<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptions<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? UseQueryOptions<TQueryFnData, unknown, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptions<TQueryFnData, unknown, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptions\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? QueryObserverResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? QueryObserverResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? QueryObserverResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? QueryObserverResult<TQueryFnData>\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? UseQueryOptions[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptions[]\n\n/**\n * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? QueryObserverResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]\n : // Fallback\n QueryObserverResult[]\n\ntype UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]\n\nexport function useQueries<T extends any[]>({\n queries,\n queryClient: queryClientInjected,\n}: {\n queries: Ref<UseQueriesOptionsArg<T>> | UseQueriesOptionsArg<T>\n queryClient?: QueryClient\n}): Readonly<UseQueriesResults<T>> {\n const unreffedQueries = computed(\n () => cloneDeepUnref(queries) as UseQueriesOptionsArg<T>,\n )\n\n const queryClientKey = unreffedQueries.value[0]?.queryClientKey\n const optionsQueryClient = unreffedQueries.value[0]?.queryClient as\n | QueryClient\n | undefined\n const queryClient =\n queryClientInjected ?? optionsQueryClient ?? useQueryClient(queryClientKey)\n if (\n process.env.NODE_ENV !== 'production' &&\n (queryClientKey || optionsQueryClient)\n ) {\n queryClient\n .getLogger()\n .error(\n `Providing queryClient to individual queries in useQueries has been deprecated and will be removed in the next major version. You can still pass queryClient as an option directly to useQueries hook.`,\n )\n }\n\n const defaultedQueries = computed(() =>\n unreffedQueries.value.map((options) => {\n const defaulted = queryClient.defaultQueryOptions(options)\n defaulted._optimisticResults = queryClient.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver(queryClient, defaultedQueries.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = ref(() => {\n // noop\n })\n\n watch(\n queryClient.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe.value()\n unsubscribe.value = observer.subscribe((result) => {\n state.splice(0, result.length, ...result)\n })\n // Subscription would not fire for persisted results\n state.splice(\n 0,\n state.length,\n ...observer.getOptimisticResult(defaultedQueries.value),\n )\n }\n },\n { immediate: true },\n )\n\n watch(\n unreffedQueries,\n () => {\n observer.setQueries(defaultedQueries.value)\n state.splice(0, state.length, ...observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n return readonly(state) as UseQueriesResults<T>\n}\n"],"names":["useQueries","queries","queryClient","queryClientInjected","unreffedQueries","computed","cloneDeepUnref","queryClientKey","value","optionsQueryClient","useQueryClient","process","env","NODE_ENV","getLogger","error","defaultedQueries","map","options","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","observer","QueriesObserver","state","reactive","getCurrentResult","unsubscribe","ref","watch","subscribe","result","splice","length","getOptimisticResult","immediate","setQueries","deep","onScopeDispose","readonly"],"mappings":"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"}
|
|
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 { computed, onScopeDispose, reactive, readonly, watch } from 'vue-demi'\nimport type { Ref } from 'vue-demi'\n\nimport type { QueryFunction, QueryObserverResult } from '@tanstack/query-core'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptions<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptions<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? UseQueryOptions<TQueryFnData, unknown, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptions<TQueryFnData, unknown, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptions\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? QueryObserverResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? QueryObserverResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? QueryObserverResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? QueryObserverResult<TQueryFnData>\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? UseQueryOptions[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptions[]\n\n/**\n * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? QueryObserverResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]\n : // Fallback\n QueryObserverResult[]\n\ntype UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]\n\nexport function useQueries<T extends any[]>({\n queries,\n queryClient: queryClientInjected,\n}: {\n queries: Ref<UseQueriesOptionsArg<T>> | UseQueriesOptionsArg<T>\n queryClient?: QueryClient\n}): Readonly<UseQueriesResults<T>> {\n const unreffedQueries = computed(\n () => cloneDeepUnref(queries) as UseQueriesOptionsArg<T>,\n )\n\n const queryClientKey = unreffedQueries.value[0]?.queryClientKey\n const optionsQueryClient = unreffedQueries.value[0]?.queryClient as\n | QueryClient\n | undefined\n const queryClient =\n queryClientInjected ?? optionsQueryClient ?? useQueryClient(queryClientKey)\n if (\n process.env.NODE_ENV !== 'production' &&\n (queryClientKey || optionsQueryClient)\n ) {\n queryClient\n .getLogger()\n .error(\n `Providing queryClient to individual queries in useQueries has been deprecated and will be removed in the next major version. You can still pass queryClient as an option directly to useQueries hook.`,\n )\n }\n\n const defaultedQueries = computed(() =>\n unreffedQueries.value.map((options) => {\n const defaulted = queryClient.defaultQueryOptions(options)\n defaulted._optimisticResults = queryClient.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver(queryClient, defaultedQueries.value)\n const state = reactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n queryClient.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n state.splice(0, result.length, ...result)\n })\n // Subscription would not fire for persisted results\n state.splice(\n 0,\n state.length,\n ...observer.getOptimisticResult(defaultedQueries.value),\n )\n }\n },\n { immediate: true },\n )\n\n watch(\n unreffedQueries,\n () => {\n observer.setQueries(defaultedQueries.value)\n state.splice(0, state.length, ...observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return readonly(state) as UseQueriesResults<T>\n}\n"],"names":["useQueries","queries","queryClient","queryClientInjected","unreffedQueries","computed","cloneDeepUnref","queryClientKey","value","optionsQueryClient","useQueryClient","process","env","NODE_ENV","getLogger","error","defaultedQueries","map","options","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","observer","QueriesObserver","state","reactive","getCurrentResult","unsubscribe","watch","subscribe","result","splice","length","getOptimisticResult","immediate","setQueries","deep","onScopeDispose","readonly"],"mappings":"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"}
|
package/build/lib/useQueries.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { QueriesObserver } from '@tanstack/query-core';
|
|
2
|
-
import { computed, reactive,
|
|
2
|
+
import { computed, reactive, watch, onScopeDispose, readonly } from 'vue-demi';
|
|
3
3
|
import { useQueryClient } from './useQueryClient.mjs';
|
|
4
4
|
import { cloneDeepUnref } from './utils.mjs';
|
|
5
5
|
|
|
@@ -26,12 +26,14 @@ function useQueries({
|
|
|
26
26
|
}));
|
|
27
27
|
const observer = new QueriesObserver(queryClient, defaultedQueries.value);
|
|
28
28
|
const state = reactive(observer.getCurrentResult());
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
|
|
30
|
+
let unsubscribe = () => {// noop
|
|
31
|
+
};
|
|
32
|
+
|
|
31
33
|
watch(queryClient.isRestoring, isRestoring => {
|
|
32
34
|
if (!isRestoring) {
|
|
33
|
-
unsubscribe
|
|
34
|
-
unsubscribe
|
|
35
|
+
unsubscribe();
|
|
36
|
+
unsubscribe = observer.subscribe(result => {
|
|
35
37
|
state.splice(0, result.length, ...result);
|
|
36
38
|
}); // Subscription would not fire for persisted results
|
|
37
39
|
|
|
@@ -47,7 +49,7 @@ function useQueries({
|
|
|
47
49
|
deep: true
|
|
48
50
|
});
|
|
49
51
|
onScopeDispose(() => {
|
|
50
|
-
unsubscribe
|
|
52
|
+
unsubscribe();
|
|
51
53
|
});
|
|
52
54
|
return readonly(state);
|
|
53
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQueries.mjs","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport {\n computed,\n onScopeDispose,\n reactive,\n readonly,\n ref,\n watch,\n} from 'vue-demi'\nimport type { Ref } from 'vue-demi'\n\nimport type { QueryFunction, QueryObserverResult } from '@tanstack/query-core'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptions<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptions<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? UseQueryOptions<TQueryFnData, unknown, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptions<TQueryFnData, unknown, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptions\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? QueryObserverResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? QueryObserverResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? QueryObserverResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? QueryObserverResult<TQueryFnData>\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? UseQueryOptions[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptions[]\n\n/**\n * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? QueryObserverResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]\n : // Fallback\n QueryObserverResult[]\n\ntype UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]\n\nexport function useQueries<T extends any[]>({\n queries,\n queryClient: queryClientInjected,\n}: {\n queries: Ref<UseQueriesOptionsArg<T>> | UseQueriesOptionsArg<T>\n queryClient?: QueryClient\n}): Readonly<UseQueriesResults<T>> {\n const unreffedQueries = computed(\n () => cloneDeepUnref(queries) as UseQueriesOptionsArg<T>,\n )\n\n const queryClientKey = unreffedQueries.value[0]?.queryClientKey\n const optionsQueryClient = unreffedQueries.value[0]?.queryClient as\n | QueryClient\n | undefined\n const queryClient =\n queryClientInjected ?? optionsQueryClient ?? useQueryClient(queryClientKey)\n if (\n process.env.NODE_ENV !== 'production' &&\n (queryClientKey || optionsQueryClient)\n ) {\n queryClient\n .getLogger()\n .error(\n `Providing queryClient to individual queries in useQueries has been deprecated and will be removed in the next major version. You can still pass queryClient as an option directly to useQueries hook.`,\n )\n }\n\n const defaultedQueries = computed(() =>\n unreffedQueries.value.map((options) => {\n const defaulted = queryClient.defaultQueryOptions(options)\n defaulted._optimisticResults = queryClient.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver(queryClient, defaultedQueries.value)\n const state = reactive(observer.getCurrentResult())\n\n const unsubscribe = ref(() => {\n // noop\n })\n\n watch(\n queryClient.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe.value()\n unsubscribe.value = observer.subscribe((result) => {\n state.splice(0, result.length, ...result)\n })\n // Subscription would not fire for persisted results\n state.splice(\n 0,\n state.length,\n ...observer.getOptimisticResult(defaultedQueries.value),\n )\n }\n },\n { immediate: true },\n )\n\n watch(\n unreffedQueries,\n () => {\n observer.setQueries(defaultedQueries.value)\n state.splice(0, state.length, ...observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe.value()\n })\n\n return readonly(state) as UseQueriesResults<T>\n}\n"],"names":["useQueries","queries","queryClient","queryClientInjected","unreffedQueries","computed","cloneDeepUnref","queryClientKey","value","optionsQueryClient","useQueryClient","process","env","NODE_ENV","getLogger","error","defaultedQueries","map","options","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","observer","QueriesObserver","state","reactive","getCurrentResult","unsubscribe","ref","watch","subscribe","result","splice","length","getOptimisticResult","immediate","setQueries","deep","onScopeDispose","readonly"],"mappings":";;;;;AAAA;AAuIO,SAASA,UAAT,CAAqC;EAC1CC,OAD0C;AAE1CC,EAAAA,WAAW,EAAEC,mBAAAA;AAF6B,CAArC,EAM4B;AAAA,EAAA,IAAA,qBAAA,EAAA,sBAAA,EAAA,IAAA,CAAA;;EACjC,MAAMC,eAAe,GAAGC,QAAQ,CAC9B,MAAMC,cAAc,CAACL,OAAD,CADU,CAAhC,CAAA;EAIA,MAAMM,cAAc,GAAGH,CAAAA,qBAAAA,GAAAA,eAAe,CAACI,KAAhB,CAAsB,CAAtB,CAAH,KAAG,IAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAA0BD,cAAjD,CAAA;EACA,MAAME,kBAAkB,GAAGL,CAAAA,sBAAAA,GAAAA,eAAe,CAACI,KAAhB,CAAsB,CAAtB,CAAH,KAAG,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAA0BN,WAArD,CAAA;EAGA,MAAMA,WAAW,GACfC,CAAAA,IAAAA,GAAAA,mBADe,IACfA,IAAAA,GAAAA,mBADe,GACQM,kBADR,KAC8BC,IAAAA,GAAAA,IAAAA,GAAAA,cAAc,CAACH,cAAD,CAD7D,CAAA;;AAEA,EAAA,IACEI,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,KACCN,cAAc,IAAIE,kBADnB,CADF,EAGE;IACAP,WAAW,CACRY,SADH,EAAA,CAEGC,KAFH,CAAA,uMAAA,CAAA,CAAA;AAKD,GAAA;;AAED,EAAA,MAAMC,gBAAgB,GAAGX,QAAQ,CAAC,MAChCD,eAAe,CAACI,KAAhB,CAAsBS,GAAtB,CAA2BC,OAAD,IAAa;AACrC,IAAA,MAAMC,SAAS,GAAGjB,WAAW,CAACkB,mBAAZ,CAAgCF,OAAhC,CAAlB,CAAA;IACAC,SAAS,CAACE,kBAAV,GAA+BnB,WAAW,CAACoB,WAAZ,CAAwBd,KAAxB,GAC3B,aAD2B,GAE3B,YAFJ,CAAA;AAIA,IAAA,OAAOW,SAAP,CAAA;AACD,GAPD,CAD+B,CAAjC,CAAA;EAWA,MAAMI,QAAQ,GAAG,IAAIC,eAAJ,CAAoBtB,WAApB,EAAiCc,gBAAgB,CAACR,KAAlD,CAAjB,CAAA;EACA,MAAMiB,KAAK,GAAGC,QAAQ,CAACH,QAAQ,CAACI,gBAAT,EAAD,CAAtB,CAAA;AAEA,EAAA,MAAMC,WAAW,GAAGC,GAAG,CAAC,MAAM;AAE7B,GAFsB,CAAvB,CAAA;AAIAC,EAAAA,KAAK,CACH5B,WAAW,CAACoB,WADT,EAEFA,WAAD,IAAiB;IACf,IAAI,CAACA,WAAL,EAAkB;AAChBM,MAAAA,WAAW,CAACpB,KAAZ,EAAA,CAAA;MACAoB,WAAW,CAACpB,KAAZ,GAAoBe,QAAQ,CAACQ,SAAT,CAAoBC,MAAD,IAAY;QACjDP,KAAK,CAACQ,MAAN,CAAa,CAAb,EAAgBD,MAAM,CAACE,MAAvB,EAA+B,GAAGF,MAAlC,CAAA,CAAA;OADkB,CAApB,CAFgB;;AAMhBP,MAAAA,KAAK,CAACQ,MAAN,CACE,CADF,EAEER,KAAK,CAACS,MAFR,EAGE,GAAGX,QAAQ,CAACY,mBAAT,CAA6BnB,gBAAgB,CAACR,KAA9C,CAHL,CAAA,CAAA;AAKD,KAAA;AACF,GAfE,EAgBH;AAAE4B,IAAAA,SAAS,EAAE,IAAA;AAAb,GAhBG,CAAL,CAAA;EAmBAN,KAAK,CACH1B,eADG,EAEH,MAAM;AACJmB,IAAAA,QAAQ,CAACc,UAAT,CAAoBrB,gBAAgB,CAACR,KAArC,CAAA,CAAA;AACAiB,IAAAA,KAAK,CAACQ,MAAN,CAAa,CAAb,EAAgBR,KAAK,CAACS,MAAtB,EAA8B,GAAGX,QAAQ,CAACI,gBAAT,EAAjC,CAAA,CAAA;AACD,GALE,EAMH;AAAEW,IAAAA,IAAI,EAAE,IAAA;AAAR,GANG,CAAL,CAAA;AASAC,EAAAA,cAAc,CAAC,MAAM;AACnBX,IAAAA,WAAW,CAACpB,KAAZ,EAAA,CAAA;AACD,GAFa,CAAd,CAAA;EAIA,OAAOgC,QAAQ,CAACf,KAAD,CAAf,CAAA;AACD;;;;"}
|
|
1
|
+
{"version":3,"file":"useQueries.mjs","sources":["../../src/useQueries.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { QueriesObserver } from '@tanstack/query-core'\nimport { computed, onScopeDispose, reactive, readonly, watch } from 'vue-demi'\nimport type { Ref } from 'vue-demi'\n\nimport type { QueryFunction, QueryObserverResult } from '@tanstack/query-core'\n\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type { UseQueryOptions } from './useQuery'\nimport type { QueryClient } from './queryClient'\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? UseQueryOptions<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? UseQueryOptions<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? UseQueryOptions<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? UseQueryOptions<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? UseQueryOptions<TQueryFnData, unknown, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? UseQueryOptions<TQueryFnData, unknown, TQueryFnData, TQueryKey>\n : // Fallback\n UseQueryOptions\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? QueryObserverResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? QueryObserverResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? QueryObserverResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? QueryObserverResult<TQueryFnData>\n : // Fallback\n QueryObserverResult\n\n/**\n * UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type UseQueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? UseQueryOptions[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n UseQueryOptions[]\n\n/**\n * UseQueriesResults reducer recursively maps type param to results\n */\nexport type UseQueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? QueryObserverResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends UseQueryOptions<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]\n : // Fallback\n QueryObserverResult[]\n\ntype UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]\n\nexport function useQueries<T extends any[]>({\n queries,\n queryClient: queryClientInjected,\n}: {\n queries: Ref<UseQueriesOptionsArg<T>> | UseQueriesOptionsArg<T>\n queryClient?: QueryClient\n}): Readonly<UseQueriesResults<T>> {\n const unreffedQueries = computed(\n () => cloneDeepUnref(queries) as UseQueriesOptionsArg<T>,\n )\n\n const queryClientKey = unreffedQueries.value[0]?.queryClientKey\n const optionsQueryClient = unreffedQueries.value[0]?.queryClient as\n | QueryClient\n | undefined\n const queryClient =\n queryClientInjected ?? optionsQueryClient ?? useQueryClient(queryClientKey)\n if (\n process.env.NODE_ENV !== 'production' &&\n (queryClientKey || optionsQueryClient)\n ) {\n queryClient\n .getLogger()\n .error(\n `Providing queryClient to individual queries in useQueries has been deprecated and will be removed in the next major version. You can still pass queryClient as an option directly to useQueries hook.`,\n )\n }\n\n const defaultedQueries = computed(() =>\n unreffedQueries.value.map((options) => {\n const defaulted = queryClient.defaultQueryOptions(options)\n defaulted._optimisticResults = queryClient.isRestoring.value\n ? 'isRestoring'\n : 'optimistic'\n\n return defaulted\n }),\n )\n\n const observer = new QueriesObserver(queryClient, defaultedQueries.value)\n const state = reactive(observer.getCurrentResult())\n\n let unsubscribe = () => {\n // noop\n }\n\n watch(\n queryClient.isRestoring,\n (isRestoring) => {\n if (!isRestoring) {\n unsubscribe()\n unsubscribe = observer.subscribe((result) => {\n state.splice(0, result.length, ...result)\n })\n // Subscription would not fire for persisted results\n state.splice(\n 0,\n state.length,\n ...observer.getOptimisticResult(defaultedQueries.value),\n )\n }\n },\n { immediate: true },\n )\n\n watch(\n unreffedQueries,\n () => {\n observer.setQueries(defaultedQueries.value)\n state.splice(0, state.length, ...observer.getCurrentResult())\n },\n { deep: true },\n )\n\n onScopeDispose(() => {\n unsubscribe()\n })\n\n return readonly(state) as UseQueriesResults<T>\n}\n"],"names":["useQueries","queries","queryClient","queryClientInjected","unreffedQueries","computed","cloneDeepUnref","queryClientKey","value","optionsQueryClient","useQueryClient","process","env","NODE_ENV","getLogger","error","defaultedQueries","map","options","defaulted","defaultQueryOptions","_optimisticResults","isRestoring","observer","QueriesObserver","state","reactive","getCurrentResult","unsubscribe","watch","subscribe","result","splice","length","getOptimisticResult","immediate","setQueries","deep","onScopeDispose","readonly"],"mappings":"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"}
|
|
@@ -4554,9 +4554,10 @@
|
|
|
4554
4554
|
queryCache.subscribe(event => {
|
|
4555
4555
|
api.sendInspectorTree(pluginId);
|
|
4556
4556
|
api.sendInspectorState(pluginId);
|
|
4557
|
+
const queryEvents = ['added', 'removed', 'updated'];
|
|
4557
4558
|
|
|
4558
4559
|
if ( // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
4559
|
-
event &&
|
|
4560
|
+
event && queryEvents.includes(event.type)) {
|
|
4560
4561
|
api.addTimelineEvent({
|
|
4561
4562
|
layerId: pluginId,
|
|
4562
4563
|
event: {
|
|
@@ -4732,13 +4733,15 @@
|
|
|
4732
4733
|
});
|
|
4733
4734
|
const observer = new Observer(queryClient, defaultedOptions.value);
|
|
4734
4735
|
const state = vueDemi.reactive(observer.getCurrentResult());
|
|
4735
|
-
|
|
4736
|
-
|
|
4736
|
+
|
|
4737
|
+
let unsubscribe = () => {// noop
|
|
4738
|
+
};
|
|
4739
|
+
|
|
4737
4740
|
vueDemi.watch(queryClient.isRestoring, isRestoring => {
|
|
4738
4741
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
4739
4742
|
if (!isRestoring) {
|
|
4740
|
-
unsubscribe
|
|
4741
|
-
unsubscribe
|
|
4743
|
+
unsubscribe();
|
|
4744
|
+
unsubscribe = observer.subscribe(result => {
|
|
4742
4745
|
updateState(state, result);
|
|
4743
4746
|
});
|
|
4744
4747
|
}
|
|
@@ -4752,7 +4755,7 @@
|
|
|
4752
4755
|
deep: true
|
|
4753
4756
|
});
|
|
4754
4757
|
vueDemi.onScopeDispose(() => {
|
|
4755
|
-
unsubscribe
|
|
4758
|
+
unsubscribe();
|
|
4756
4759
|
});
|
|
4757
4760
|
|
|
4758
4761
|
const suspense = () => {
|
|
@@ -4838,12 +4841,14 @@
|
|
|
4838
4841
|
}));
|
|
4839
4842
|
const observer = new QueriesObserver(queryClient, defaultedQueries.value);
|
|
4840
4843
|
const state = vueDemi.reactive(observer.getCurrentResult());
|
|
4841
|
-
|
|
4842
|
-
|
|
4844
|
+
|
|
4845
|
+
let unsubscribe = () => {// noop
|
|
4846
|
+
};
|
|
4847
|
+
|
|
4843
4848
|
vueDemi.watch(queryClient.isRestoring, isRestoring => {
|
|
4844
4849
|
if (!isRestoring) {
|
|
4845
|
-
unsubscribe
|
|
4846
|
-
unsubscribe
|
|
4850
|
+
unsubscribe();
|
|
4851
|
+
unsubscribe = observer.subscribe(result => {
|
|
4847
4852
|
state.splice(0, result.length, ...result);
|
|
4848
4853
|
}); // Subscription would not fire for persisted results
|
|
4849
4854
|
|
|
@@ -4859,7 +4864,7 @@
|
|
|
4859
4864
|
deep: true
|
|
4860
4865
|
});
|
|
4861
4866
|
vueDemi.onScopeDispose(() => {
|
|
4862
|
-
unsubscribe
|
|
4867
|
+
unsubscribe();
|
|
4863
4868
|
});
|
|
4864
4869
|
return vueDemi.readonly(state);
|
|
4865
4870
|
}
|