cacheFindAll (name, data, hash, opts) {
    this._completedQueries[name][hash] = (name, hash, opts) => this.filter(name, utils.fromJson(hash))
  }
Mark a {@link Mapper#findAll} result as cached by adding an entry to
{@link SimpleStore#_completedQueries}. By default, once a `findAll` entry is
added it means subsequent calls to the same Resource with the same `query`
argument will immediately resolve with the result of calling
{@link SimpleStore#filter} instead of delegating to {@link Mapper#findAll}.

As part of implementing your own caching strategy, you may choose to
override this method.

@example
const store = new SimpleStore({
  cachedFindAll (mapperName, data, hash, opts) {
    // Let's say for a particular Resource, we always want to pull fresh from the server
    if (mapperName === 'schedule') {
      // Return without saving an entry to SimpleStore#_completedQueries
      return;
    }
    // Otherwise perform default behavior.
    return SimpleStore.prototype.cachedFindAll.call(this, mapperName, data, hash, opts);
  }
});

@example
// Extend using ES2015 class syntax.
class MyStore extends SimpleStore {
  cachedFindAll (mapperName, data, hash, opts) {
    // Let's say for a particular Resource, we always want to pull fresh from the server
    if (mapperName === 'schedule') {
      // Return without saving an entry to SimpleStore#_completedQueries
      return;
    }
    // Otherwise perform default behavior.
    return super.cachedFindAll(mapperName, data, hash, opts);
  }
}
const store = new MyStore();

@method SimpleStore#cacheFindAll
@param {string} name The `name` argument passed to {@link SimpleStore#findAll}.
@param {*} data The result to cache.
@param {string} hash The result of calling {@link SimpleStore#hashQuery} on
the `query` argument passed to {@link SimpleStore#findAll}.
@param {object} opts The `opts` argument passed to {@link SimpleStore#findAll}.
@since 3.0.0