• This repository has been archived on 10/Jul/2019
  • Stars
    star
    177
  • Rank 215,985 (Top 5 %)
  • Language
    TypeScript
  • Created about 7 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Redux cache for Apollo Client 2.0. This project is no longer maintained.

DEPRECATED - no longer actively maintained

npm version CircleCI

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