ApolloOfflineClient extends the
ApolloClient class. Check the
ApolloClient constructor docs to see the options that can be passed.
There are some additional options specific to
NetworkStatus Interface for detecting changes in network status. (Uses browser networking APIs by default)
The PersistentStore you want your client to use for persisting offline operations in the offline queue (Uses IndexedDB by default).
The PersistentStore you want your client to use for persisting the Apollo Cache (Uses IndexedDB by default).
The CachePersistor instance used by the client to persist the Apollo Cache across application restarts. Pass your own instance to override the one that is created by default.
Note: if using TypeScript, you may need to declare the cachePersistor as follows
const cachePersistor = new CachePersistor<object>(...options) or you may experience compiler errors.
This example uses
createDefaultCacheStorage to create the default IndexedDB based storage driver.
The storage can be swapped depending on the platform. For example
window.localstorage in older browsers or
AsyncStorage in React Native.
ApolloOfflineQueueListener User provided listener that contains a set of methods that are called when certain events occur in the queue.
ObjectState Interface that defines how object state is progressed. This interface needs to match state provider supplied on server.
CacheUpdates Cache updates functions for your mutations. Argument allows to restore optimistic responses on application restarts.
The options to configure how failed offline mutations are retried. See
If your mutation variables are not passed directly, for example if you use input types, an
inputMapper is a set of functions that tells Offix how to read the mutation
For example, if your mutations use Input types:
ApolloOfflineClient will need an additional
inputMapper object with the following functions:
deserialize- to know how to convert the
variablesobject into a flat object that can be used to generate optimistic responses and cache update functions.
serialize- to know how to convert the serialized object back into the correct
variablesobject after performing conflict resolution.
createClient accepts all of the
ApolloOfflineClient options described above as well as the ones listed below.
httpUrl(required) - The URL of the GraphQL server
wsUrl(required) - The URL of the websocket endpoint for subscriptions
cache- The Apollo InMemoryCache that will be used. (creates one by default).
authContextProvider- An object or an
asyncfunction that returns an
AuthContextobject with authentication headers that will be passed in GraphQL requests and in the
connectionParamsof websocket connections.
fileUpload- If set to
true, GraphGL file uploads will be enabled and supported. (default is
websocketClientOptions- Options for the websocket client used for subscriptions. See subscriptions-transport-ws