{"version":3,"sources":["../../src/usePrefetchInfiniteQuery.ts"],"sourcesContent":["import { getCurrentScope, unref, watchEffect } from 'vue-demi'\nimport { useQueryClient } from './useQueryClient'\nimport { cloneDeepUnref } from './utils'\nimport type {\n  DefaultError,\n  FetchInfiniteQueryOptions,\n  FetchQueryOptions,\n  GetNextPageParamFunction,\n  InfiniteData,\n  InitialPageParam,\n  OmitKeyof,\n  QueryKey,\n  SkipToken,\n} from '@tanstack/query-core'\nimport type { QueryClient } from './queryClient'\nimport type { MaybeRefDeep, MaybeRefOrGetter } from './types'\n\ntype PrefetchInfinitePages<TQueryFnData, TPageParam> =\n  | {\n      pages?: never\n      getNextPageParam?: GetNextPageParamFunction<TPageParam, TQueryFnData>\n    }\n  | {\n      pages: number\n      getNextPageParam: GetNextPageParamFunction<TPageParam, TQueryFnData>\n    }\n\nexport type UsePrefetchInfiniteQueryOptions<\n  TQueryFnData,\n  TError,\n  TData,\n  TQueryKey extends QueryKey,\n  TPageParam,\n> = OmitKeyof<\n  FetchQueryOptions<\n    TQueryFnData,\n    TError,\n    InfiniteData<TData, TPageParam>,\n    TQueryKey,\n    TPageParam\n  >,\n  'queryFn' | 'initialPageParam'\n> &\n  InitialPageParam<TPageParam> & {\n    queryFn?: Exclude<\n      FetchQueryOptions<\n        TQueryFnData,\n        TError,\n        InfiniteData<TData, TPageParam>,\n        TQueryKey,\n        TPageParam\n      >['queryFn'],\n      SkipToken\n    >\n  } & PrefetchInfinitePages<TQueryFnData, TPageParam>\n\nfunction isGetter<T>(value: MaybeRefOrGetter<T>): value is () => T {\n  return typeof value === 'function'\n}\n\nexport function usePrefetchInfiniteQuery<\n  TQueryFnData = unknown,\n  TError = DefaultError,\n  TData = TQueryFnData,\n  TQueryKey extends QueryKey = QueryKey,\n  TPageParam = unknown,\n>(\n  options: MaybeRefOrGetter<\n    MaybeRefDeep<\n      UsePrefetchInfiniteQueryOptions<\n        TQueryFnData,\n        TError,\n        TData,\n        TQueryKey,\n        TPageParam\n      >\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: UsePrefetchInfiniteQueryOptions<\n      TQueryFnData,\n      TError,\n      TData,\n      TQueryKey,\n      TPageParam\n    > = cloneDeepUnref(resolvedOptions)\n\n    if (!client.getQueryState(clonedOptions.queryKey)) {\n      void client.prefetchInfiniteQuery(\n        clonedOptions as FetchInfiniteQueryOptions<\n          TQueryFnData,\n          TError,\n          TData,\n          TQueryKey,\n          TPageParam\n        >,\n      )\n    }\n  })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAoD;AACpD,4BAA+B;AAC/B,mBAA+B;AAsD/B,SAAS,SAAY,OAA8C;AACjE,SAAO,OAAO,UAAU;AAC1B;AAEO,SAAS,yBAOd,SAWA,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,oBAMF,6BAAe,eAAe;AAElC,QAAI,CAAC,OAAO,cAAc,cAAc,QAAQ,GAAG;AACjD,WAAK,OAAO;AAAA,QACV;AAAA,MAOF;AAAA,IACF;AAAA,EACF,CAAC;AACH;","names":[]}