MCPcopy
hub / github.com/TanStack/query / createMutation

Function createMutation

packages/svelte-query/src/createMutation.ts:13–54  ·  view source on GitHub ↗
(
  options: StoreOrVal<
    CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>
  >,
  queryClient?: QueryClient,
)

Source from the content-addressed store, hash-verified

11import type { DefaultError, QueryClient } from '@tanstack/query-core'
12
13export function createMutation<
14 TData = unknown,
15 TError = DefaultError,
16 TVariables = void,
17 TOnMutateResult = unknown,
18>(
19 options: StoreOrVal<
20 CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>
21 >,
22 queryClient?: QueryClient,
23): CreateMutationResult<TData, TError, TVariables, TOnMutateResult> {
24 const client = useQueryClient(queryClient)
25
26 const optionsStore = isSvelteStore(options) ? options : readable(options)
27
28 const observer = new MutationObserver<
29 TData,
30 TError,
31 TVariables,
32 TOnMutateResult
33 >(client, get(optionsStore))
34 let mutate: CreateMutateFunction<TData, TError, TVariables, TOnMutateResult>
35
36 optionsStore.subscribe(($options) => {
37 mutate = (variables, mutateOptions) => {
38 observer.mutate(variables, mutateOptions).catch(noop)
39 }
40 observer.setOptions($options)
41 })
42
43 const result = readable(observer.getCurrentResult(), (set) => {
44 return observer.subscribe(notifyManager.batchCalls((val) => set(val)))
45 })
46
47 const { subscribe } = derived(result, ($result) => ({
48 ...$result,
49 mutate,
50 mutateAsync: $result.mutate,
51 }))
52
53 return { subscribe }
54}

Callers

nothing calls this directly

Calls 8

mutateMethod · 0.95
setOptionsMethod · 0.95
getCurrentResultMethod · 0.95
isSvelteStoreFunction · 0.85
setFunction · 0.85
useQueryClientFunction · 0.70
getFunction · 0.50
subscribeMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…