-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathReactQuery_Mutation.res
72 lines (67 loc) · 2.14 KB
/
ReactQuery_Mutation.res
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
type mutationContext
type mutationStatus = [#loading | #success | #error]
type mutateParams<'mutationVariables, 'mutationData, 'mutationError, 'unknown> = {
onSuccess: option<
('mutationData, 'mutationVariables, Js.Nullable.t<mutationContext>) => Js.Promise.t<'unknown>,
>,
onError: option<
('mutationError, 'mutationVariables, Js.Nullable.t<mutationContext>) => Js.Promise.t<'unknown>,
>,
onSettled: option<
(
'mutationData,
'mutationError,
'mutationVariables,
Js.Nullable.t<mutationContext>,
) => Js.Promise.t<'unknown>,
>,
}
type mutationOptions<'mutationVariables, 'mutationData, 'mutationError, 'unknown> = {
mutationKey: array<string>,
mutationFn: 'mutationVariables => Js.Promise.t<'mutationData>,
onMutate?: 'mutationVariables => Js.Promise.t<mutationContext>,
onSuccess?: (
'mutationData,
'mutationVariables,
Js.Nullable.t<mutationContext>,
) => Js.Promise.t<'unknown>,
onError?: (
'mutationError,
'mutationVariables,
Js.Nullable.t<mutationContext>,
) => Js.Promise.t<'unknown>,
onSettled?: (
'mutationData,
'mutationError,
'mutationVariables,
Js.Nullable.t<mutationContext>,
) => Js.Promise.t<'unknown>,
retry?: ReactQuery_Types.retryValue<'mutationError>,
retryDelay?: ReactQuery_Types.retryDelayValue<'mutationError>,
useErrorBoundary?: bool,
}
type mutationResult<'mutationVariables, 'mutationData, 'mutationError, 'unknown> = {
mutate: (
. 'mutationVariables,
option<mutateParams<'mutationVariables, 'mutationData, 'mutationError, 'unknown>>,
) => unit,
mutateAsync: (
'mutationVariables,
mutateParams<'mutationVariables, 'mutationData, 'mutationError, 'unknown>,
) => Js.Promise.t<'mutationData>,
status: mutationStatus,
isIdle: bool,
isError: bool,
isLoading: bool,
isSuccess: bool,
data: option<'mutationData>,
error: Js.Nullable.t<'mutationError>,
reset: unit => unit,
}
@module("@tanstack/react-query")
external useMutation: mutationOptions<
'mutationVariables,
'mutationData,
'mutationError,
'unknown,
> => mutationResult<'mutationVariables, 'mutationData, 'mutationError, 'unknown> = "useMutation"