MCPcopy Create free account
hub / github.com/TanStack/query / createBaseQuery

Function createBaseQuery

packages/svelte-query/src/createBaseQuery.svelte.ts:18–107  ·  view source on GitHub ↗
(
  options: Accessor<
    CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>
  >,
  Observer: typeof QueryObserver,
  queryClient?: Accessor<QueryClient>,
)

Source from the content-addressed store, hash-verified

16 * @param queryClient - Custom query client which overrides provider
17 */
18export function createBaseQuery<
19 TQueryFnData,
20 TError,
21 TData,
22 TQueryData,
23 TQueryKey extends QueryKey,
24>(
25 options: Accessor<
26 CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>
27 >,
28 Observer: typeof QueryObserver,
29 queryClient?: Accessor<QueryClient>,
30): CreateBaseQueryResult<TData, TError> {
31 /** Load query client */
32 const client = $derived(useQueryClient(queryClient?.()))
33 const isRestoring = useIsRestoring()
34
35 const resolvedOptions = $derived.by(() => {
36 const opts = client.defaultQueryOptions(options())
37 opts._optimisticResults = isRestoring.current ? 'isRestoring' : 'optimistic'
38 return opts
39 })
40
41 /** Creates the observer */
42 // svelte-ignore state_referenced_locally - intentional, initial value
43 let observer = $state(
44 new Observer<TQueryFnData, TError, TData, TQueryData, TQueryKey>(
45 client,
46 resolvedOptions,
47 ),
48 )
49 watchChanges(
50 () => client,
51 'pre',
52 () => {
53 observer = new Observer<
54 TQueryFnData,
55 TError,
56 TData,
57 TQueryData,
58 TQueryKey
59 >(client, resolvedOptions)
60 },
61 )
62
63 function createResult() {
64 const result = observer.getOptimisticResult(resolvedOptions)
65 return !resolvedOptions.notifyOnChangeProps
66 ? observer.trackResult(result)
67 : result
68 }
69 const [query, update] = createRawRef(
70 // svelte-ignore state_referenced_locally - intentional, initial value
71 createResult(),
72 )
73
74 $effect(() => {
75 const unsubscribe = isRestoring.current

Callers 2

createInfiniteQueryFunction · 0.70
createQueryFunction · 0.70

Calls 11

watchChangesFunction · 0.85
createRawRefFunction · 0.85
updateFunction · 0.85
defaultQueryOptionsMethod · 0.80
updateResultMethod · 0.80
useQueryClientFunction · 0.70
useIsRestoringFunction · 0.70
createResultFunction · 0.70
optionsFunction · 0.50
subscribeMethod · 0.45
setOptionsMethod · 0.45

Tested by

no test coverage detected