orval-labs / orval

orval is able to generate client with appropriate type-signatures (TypeScript) from any valid OpenAPI v3 or Swagger v2 specification, either in yaml or json formats. 🍺
https://orval.dev
MIT License
3.18k stars 336 forks source link

Feature request: useQueryOptionsHook for react-query #1679

Open bartlangelaan opened 3 weeks ago

bartlangelaan commented 3 weeks ago

First of all, thanks for this amazing library!

I have a feature request for the react-query generator. I would like to use the generated query options with useQueries, while also using a hook mutator.

What happens?

A currently generated function is, for example:

https://github.com/orval-labs/orval/blob/b24ef85805437a8fdd1b956b8934b4c5d8da1d29/samples/react-query/hook-mutator/endpoints.ts#L51-L79

The useListPetsQueryOptions function accepts parameters, and returns the query options. But you cannot run hooks in a loop.

What were you expecting to happen?

I would expect that there is a way to get an option generator.

For example, this already exists for the query function itself. The useListPetsHook returns a function.

In the same style, I would also expect a useListPetsQueryOptionsHook or useListPetsQueryOptionsGenerator or useGetListPetsQueryOptions, that could be used like this:

const getListPetsQueryOptions = useListPetsQueryOptionsHook();

const queries = useQueries({
  queries: Array(5).keys().map(length => getListPetsQueryOptions({ length }))
});

For me, it would also be okay if the current use*QueryOptions is changed instead of introducing a new hook - but that would of course be a breaking change.