@codejamninja/apollo-cache-redux

Redux cache for Apollo Client 2.x

Usage no npm install needed!

<script type="module">
  import codejamninjaApolloCacheRedux from 'https://cdn.skypack.dev/@codejamninja/apollo-cache-redux';
</script>

README

apollo-cache-redux is a cache implementation backed by Redux for Apollo Client 2.0. It heavily reuses cache normalization code from apollo-cache-inmemory. Works with Redux 3.x and 4.x .

Installation

npm install @codejamninja/apollo-cache-redux --save

After installing the package:

import { ReduxCache, apolloReducer } from 'apollo-cache-redux';
import { createStore, combineReducers } from 'redux';
import { HttpLink } from 'apollo-link-http';
import ApolloClient from 'apollo-client';

const store = createStore(
    combineReducers({
        apollo: apolloReducer
        ...otherReducers
    })
);

const cache = new ReduxCache({ store });

const client = new ApolloClient({
  link: new HttpLink(),
  cache
});

The following options are accepted for ReduxCache:

  • store. An existing Redux store. If you don't have one, please create it as per the example above.
  • reduxRootSelector (optional). Customises the reducer name for the cache (default: apollo).
  • Other options accepted by InMemoryCache, to customise the underlying InMemoryCache (e.g. fragmentMatcher).

Tests

Apart from the unit tests in this repo, this cache implementation was tested with the apollo-client and react-apollo end-to-end tests. Until there's a better way to bring them to this repo, they will reside in their own branches of these projects: