Skip to content

Commit 8de3ae7

Browse files
vinibispovmarcosp
authored andcommitted
docs: add docs for types queryClient, queryOptions, and mutationOptions
1 parent 953c57c commit 8de3ae7

File tree

1 file changed

+157
-0
lines changed

1 file changed

+157
-0
lines changed

docs/api-reference.md

Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@
44
- [`Provider.make()`](#providermake)
55
- [`DevTools.make(...)`](#devtoolsmake)
66
- [`useQueryClient`](#usequeryclient)
7+
- [`queryClient`](#queryclient)
78
- [`useQuery`](#usequery)
9+
- [`queryOptions`](#queryoptions)
810
- [`useMutation`](#usemutation)
11+
- [`mutationOptions`](#mutationoptions)
912

1013

1114
### `Provider.createClient()`
@@ -80,6 +83,67 @@ Usage:
8083
let queryClient = useQueryClient()
8184
```
8285

86+
### `queryClient`
87+
Type responsible for the return of the useQueryClient hook
88+
89+
Definition:
90+
```rescript
91+
type queryClient<'queryKey, 'queryData, 'queryError, 'pageParams> = {
92+
fetchQuery: fetchQueryOptions<'queryKey, 'queryData, 'queryError, 'pageParams> => Js.Promise.t<
93+
'queryData,
94+
>,
95+
fetchInfiniteQuery: fetchQueryOptions<
96+
'queryKey,
97+
'queryData,
98+
'queryError,
99+
'pageParams,
100+
> => Js.Promise.t<ReactQuery_Types.infiniteData<'queryData>>,
101+
prefetchQuery: fetchQueryOptions<'queryKey, 'queryData, 'queryError, 'pageParams> => Js.Promise.t<
102+
unit,
103+
>,
104+
prefetchInfiniteQuery: fetchQueryOptions<
105+
'queryKey,
106+
'queryData,
107+
'queryError,
108+
'pageParams,
109+
> => Js.Promise.t<unit>,
110+
getQueryData: 'queryKey => option<'queryData>,
111+
setQueryData: ('queryKey, option<'queryData>) => 'queryData,
112+
getQueryState: (
113+
'queryKey,
114+
ReactQuery_Types.queryFilter<'queryKey>,
115+
) => queryState<'queryData, 'queryError>,
116+
setQueriesData: (
117+
ReactQuery_Types.queryDataKeyOrFilterValue<'queryKey>,
118+
option<'queryData> => 'queryData,
119+
) => unit,
120+
invalidateQueries: (
121+
option<ReactQuery_Types.queryFilter<'queryKey>>,
122+
option<clientRefetchOptions>,
123+
) => Js.Promise.t<unit>,
124+
refetchQueries: (
125+
option<ReactQuery_Types.queryFilter<'queryKey>>,
126+
option<clientRefetchOptions>,
127+
) => Js.Promise.t<unit>,
128+
cancelQueries: option<ReactQuery_Types.queryFilter<'queryKey>> => Js.Promise.t<unit>,
129+
removeQueries: option<ReactQuery_Types.queryFilter<'queryKey>> => Js.Promise.t<unit>,
130+
resetQueries: (
131+
option<ReactQuery_Types.queryFilter<'queryKey>>,
132+
option<clientRefetchOptions>,
133+
) => Js.Promise.t<unit>,
134+
isFetching: option<ReactQuery_Types.queryFilter<'queryKey>> => bool,
135+
isMutating: option<ReactQuery_Types.queryFilter<'queryKey>> => bool,
136+
clear: unit => unit,
137+
}
138+
```
139+
140+
Usage:
141+
142+
```rescript
143+
let queryClient = useQueryClient()
144+
queryClient.fetchQuery(fetchQueryOptions(~queryKey=["articles"], ~retryOnMount=true))
145+
```
146+
83147
### `useQuery`
84148

85149
The hook responsible to get loading, error, and data when fetching data from an api
@@ -102,9 +166,59 @@ Usage:
102166
})
103167
```
104168

169+
### `queryOptions`
170+
Type responsible for hold parameters for the useQuery hook
171+
172+
Definition:
173+
```rescript
174+
type queryOptions<'queryKey, 'queryData, 'queryError, 'pageParam> = {
175+
queryKey?: array<'queryKey>,
176+
queryFn?: ReactQuery_Types.queryFunctionContext<array<'queryKey>, 'pageParam> => Js.Promise.t<
177+
'queryData,
178+
>,
179+
enabled?: bool,
180+
retry?: ReactQuery_Types.retryValue<'queryError>,
181+
retryOnMount?: bool,
182+
retryDelay?: ReactQuery_Types.retryDelayValue<'queryError>,
183+
staleTime?: ReactQuery_Types.timeValue,
184+
queryKeyHashFn?: array<'queryKey> => string,
185+
refetchInterval?: ReactQuery_Types.refetchIntervalValue,
186+
refetchIntervalInBackground?: bool,
187+
refetchOnMount?: ReactQuery_Types.boolOrAlwaysValue,
188+
refetchOnWindowFocus?: ReactQuery_Types.boolOrAlwaysValue,
189+
refetchOnReconnect?: ReactQuery_Types.boolOrAlwaysValue,
190+
notifyOnChangeProps?: ReactQuery_Types.notifyOnChangePropsValue,
191+
notifyOnChangePropsExclusions?: array<string>,
192+
onSuccess?: 'queryData => unit,
193+
onError?: 'queryError => unit,
194+
onSettled?: ('queryData, 'queryError) => unit,
195+
select?: 'queryData => 'queryData,
196+
suspense?: bool,
197+
keepPreviousData?: bool,
198+
structuralSharing?: bool,
199+
useErrorBoundary?: bool,
200+
initialData?: 'queryData => 'queryData,
201+
initialDataUpdatedAt?: unit => int,
202+
placeholderData?: unit => 'queryData,
203+
}
204+
```
205+
206+
Usage:
207+
208+
```rescript
209+
let queryOptions = {
210+
queryKey: ["articles"],
211+
queryFn: () => fetchArticles()
212+
}
213+
let queryResult = useQuery(queryOptions)
214+
215+
```
216+
105217

106218
### `useMutation`
107219

220+
The hook responsible to mutate a query, when update/create/delete anything
221+
108222
Definition:
109223

110224
```rescript
@@ -124,3 +238,46 @@ Usage:
124238
mutationFn: () => addArticle(article)
125239
})
126240
```
241+
242+
### `mutationOptions`
243+
Type responsible for hold the parameters for the useMutation hook
244+
245+
Definition:
246+
247+
```rescript
248+
type mutationOptions<'mutationVariables, 'mutationData, 'mutationError, 'unknown> = {
249+
mutationKey: array<string>,
250+
mutationFn: 'mutationVariables => Js.Promise.t<'mutationData>,
251+
onMutate?: 'mutationVariables => Js.Promise.t<mutationContext>,
252+
onSuccess?: (
253+
'mutationData,
254+
'mutationVariables,
255+
Js.Nullable.t<mutationContext>,
256+
) => Js.Promise.t<'unknown>,
257+
onError?: (
258+
'mutationError,
259+
'mutationVariables,
260+
Js.Nullable.t<mutationContext>,
261+
) => Js.Promise.t<'unknown>,
262+
onSettled?: (
263+
'mutationData,
264+
'mutationError,
265+
'mutationVariables,
266+
Js.Nullable.t<mutationContext>,
267+
) => Js.Promise.t<'unknown>,
268+
retry?: ReactQuery_Types.retryValue<'mutationError>,
269+
retryDelay?: ReactQuery_Types.retryDelayValue<'mutationError>,
270+
useErrorBoundary?: bool,
271+
}
272+
```
273+
274+
Usage:
275+
276+
```rescript
277+
let mutationOptions = {
278+
mutationKey: ["articles"],
279+
mutationFn: () => addArticle(article)
280+
}
281+
282+
let mutationResult = useMutation(mutationOptions)
283+
```

0 commit comments

Comments
 (0)