cachingResolvingPageLoader method

PageLoader cachingResolvingPageLoader(
  1. ClientResolver resolve,
  2. Map<String, Map<String, dynamic>> cache, {
  3. Map<String, dynamic> transform(
    1. Map<String, dynamic>
    )?,
})

cachingPageLoaderFor whose live reads go through resolvingPageLoader.

Implementation

PageLoader cachingResolvingPageLoader(
  ClientResolver resolve,
  Map<String, Map<String, dynamic>> cache, {
  Map<String, dynamic> Function(Map<String, dynamic>)? transform,
}) {
  final base = resolvingPageLoader(resolve, transform: transform);
  return (String uri) async {
    final cached = cache[uri];
    if (cached != null) {
      _logger.debug('Loading page from cache', {'uri': uri});
      // The cache holds the entry page as it came off the wire, so it needs
      // the same transform the live path gets.
      return transform == null ? cached : transform(cached);
    }
    return base(uri);
  };
}