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

Function useMutation

packages/solid-query/src/useMutation.ts:15–80  ·  view source on GitHub ↗
(
  options: UseMutationOptions<TData, TError, TVariables, TOnMutateResult>,
  queryClient?: Accessor<QueryClient>,
)

Source from the content-addressed store, hash-verified

13
14// HOOK
15export function useMutation<
16 TData = unknown,
17 TError = DefaultError,
18 TVariables = void,
19 TOnMutateResult = unknown,
20>(
21 options: UseMutationOptions<TData, TError, TVariables, TOnMutateResult>,
22 queryClient?: Accessor<QueryClient>,
23): UseMutationResult<TData, TError, TVariables, TOnMutateResult> {
24 const resolveClient = useQueryClientResolver(queryClient)
25 const client = createMemo(() => resolveClient())
26
27 const observer = new MutationObserver<
28 TData,
29 TError,
30 TVariables,
31 TOnMutateResult
32 >(client(), options())
33
34 const mutate: UseMutateFunction<
35 TData,
36 TError,
37 TVariables,
38 TOnMutateResult
39 > = (...args) => {
40 observer.mutate(args[0] as TVariables, args[1]).catch(noop)
41 }
42
43 const [state, setState] = createStore<
44 UseMutationResult<TData, TError, TVariables, TOnMutateResult>
45 >({
46 ...observer.getCurrentResult(),
47 mutate,
48 mutateAsync: observer.getCurrentResult().mutate,
49 })
50
51 createComputed(() => {
52 observer.setOptions(options())
53 })
54
55 createComputed(
56 on(
57 () => state.status,
58 () => {
59 if (
60 state.isError &&
61 shouldThrowError(observer.options.throwOnError, [state.error])
62 ) {
63 throw state.error
64 }
65 },
66 ),
67 )
68
69 const unsubscribe = observer.subscribe((result) => {
70 setState({
71 ...result,
72 mutate,

Callers 10

useMovieFunction · 0.90
MutateFunction · 0.50
PageFunction · 0.50
MutatesFunction · 0.50
ComponentFunction · 0.50
MutationsFunction · 0.50
PageFunction · 0.50
MutationFunction · 0.50

Calls 7

getCurrentResultMethod · 0.95
setOptionsMethod · 0.95
useQueryClientResolverFunction · 0.90
shouldThrowErrorFunction · 0.90
clientFunction · 0.85
optionsFunction · 0.50
subscribeMethod · 0.45

Tested by 7

MutateFunction · 0.40
PageFunction · 0.40
MutatesFunction · 0.40
ComponentFunction · 0.40
MutationsFunction · 0.40
PageFunction · 0.40
MutationFunction · 0.40