fetchCacheData<T> method

Future<T?> fetchCacheData<T>(
  1. String key,
  2. SerializerFunc serializerFunc,
  3. Storage storage, {
  4. bool keepExpiredCache = false,
  5. int ttlValue = defaultTTLValue,
})

Implementation

Future<T?> fetchCacheData<T>(
    String key, SerializerFunc serializerFunc, Storage storage,
    {bool keepExpiredCache = false, int ttlValue = defaultTTLValue}) async {
  final value = await storage.read(key);
  if (value != null) {
    final cacheWrapper = CacheWrapper.fromJson(jsonDecode(value));
    if (_isValid(cacheWrapper, keepExpiredCache, ttlValue)) {
      if (kDebugMode) {
        print("Fetch cache data for key $key: ${cacheWrapper.data}");
      }
      return serializerFunc(cacheWrapper.data);
    }
  }
  return null;
}