Version: 0.13.0

Client Configuration



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


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.


import { ApolloOfflineClient, createDefaultCacheStorage } from "offix-client";
import { HttpLink } from "apollo-link-http";
import { InMemoryCache } from "apollo-cache-inmemory";
import { CachePersistor } from "apollo-cache-persist";
const link = new HttpLink({ uri: "" });
const cache = new InMemoryCache()
const cachePersistor = new CachePersistor({
storage: createDefaultCacheStorage()
const client = new ApolloOfflineClient({

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.


ConflictResolutionStrategyinterface used on the client to resolve conflicts. The default strategy merges client changes onto the server changes.


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 apollo-link-retry.



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 async function that returns an AuthContext object with authentication headers that will be passed in GraphQL requests and in the connectionParams of websocket connections.
  • fileUpload - If set to true, GraphGL file uploads will be enabled and supported. (default is false)
  • websocketClientOptions - Options for the websocket client used for subscriptions. See subscriptions-transport-ws