cachingResolvingPageLoader method
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);
};
}