@grund/gql-client
v0.0.85
Published
The purpose of this package is three-folded:
Downloads
11
Readme
@grund/gql-client
The purpose of this package is three-folded:
- Provide types for other gql client packages (e.g. @grund/gql-apollo-client).
- Provide an interface for setting and retrieving the global clients.
- Expose some helper functions.
Generic interface
The initial premise of this package was to also include a common client interface for calling functions such as query
and mutate
. This would enable us to use the clients in other packages (e.g. @grund/stores
) while the actual library performing the query (e.g. apollo
or urql
) could be chosen freely.
However, it was discovered that the libraries differ a bit in how they implement these functions. The simplest example is probably that apollo
calls their mutation function mutate
while urql
has named it mutation
. But there of course are a lot more differences, e.g. how the handle responses, etc.
Currently we haven't solved this theoretically. Currently the only package implemented is @grund/gql-apollo-client
so this is the only one that works with @grund/stores
. In the future, though, we probably should consider adding a common interface for performing at least query
and mutate
. This shouldn't be that difficult, and would require the different other packages to make their own implementations that fulfills this common interface. But before this is done, we need to consider what cases these functions should be used within. We need to find some common ground in what is possible in different solutions - so that other @grund packages can make use of them, as well as all graphql libraries actually could implement this common interface.