@tanstack/vue-query
Version:
Hooks for managing, caching and syncing asynchronous and remote data in Vue
1 lines • 2.5 kB
Source Map (JSON)
{"version":3,"sources":["../../src/usePrefetchQuery.ts"],"sourcesContent":["import { getCurrentScope, unref, watchEffect } from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type {\n DefaultError,\n FetchQueryOptions,\n OmitKeyof,\n QueryKey,\n SkipToken,\n} from '@tanstack/query-core'\nimport type { QueryClient } from './queryClient'\nimport type { MaybeRefDeep, MaybeRefOrGetter } from './types'\n\nexport type UsePrefetchQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey,\n> = OmitKeyof<\n FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryFn'\n> & {\n queryFn?: Exclude<\n FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>['queryFn'],\n SkipToken\n >\n}\n\nfunction isGetter<T>(value: MaybeRefOrGetter<T>): value is () => T {\n return typeof value === 'function'\n}\n\nexport function usePrefetchQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: MaybeRefOrGetter<\n MaybeRefDeep<\n UsePrefetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>\n >\n >,\n queryClient?: QueryClient,\n): void {\n if (process.env.NODE_ENV === 'development') {\n if (!getCurrentScope()) {\n console.warn(\n 'vue-query composable like \"useQuery()\" should only be used inside a \"setup()\" function or a running effect scope. They might otherwise lead to memory leaks.',\n )\n }\n }\n\n const client = queryClient || useQueryClient()\n\n watchEffect(() => {\n const resolvedOptions = isGetter(options) ? options() : unref(options)\n const clonedOptions: UsePrefetchQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey\n > = cloneDeepUnref(resolvedOptions)\n\n if (!client.getQueryState(clonedOptions.queryKey)) {\n void client.prefetchQuery(clonedOptions)\n }\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAoD;AACpD,4BAA+B;AAC/B,mBAA+B;AA0B/B,SAAS,SAAY,OAA8C;AACjE,SAAO,OAAO,UAAU;AAC1B;AAEO,SAAS,iBAMd,SAKA,aACM;AACN,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,KAAC,iCAAgB,GAAG;AACtB,cAAQ;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,QAAM,SAAS,mBAAe,sCAAe;AAE7C,mCAAY,MAAM;AAChB,UAAM,kBAAkB,SAAS,OAAO,IAAI,QAAQ,QAAI,uBAAM,OAAO;AACrE,UAAM,oBAKF,6BAAe,eAAe;AAElC,QAAI,CAAC,OAAO,cAAc,cAAc,QAAQ,GAAG;AACjD,WAAK,OAAO,cAAc,aAAa;AAAA,IACzC;AAAA,EACF,CAAC;AACH;","names":[]}