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
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