getCacheStats static method

Future<Map<String, dynamic>> getCacheStats()

Get cache statistics

Implementation

static Future<Map<String, dynamic>> getCacheStats() async {
  _ensureInitialized();

  final keys = _prefs!.getKeys();
  int totalEntries = keys.length;
  int expiredEntries = 0;
  int validEntries = 0;
  final now = DateTime.now().millisecondsSinceEpoch;

  for (final key in keys) {
    try {
      final cachedString = _prefs!.getString(key);
      if (cachedString != null) {
        final cacheItem = jsonDecode(cachedString);
        final timestamp = cacheItem['timestamp'] as int;
        final ttl = cacheItem['ttl'] as int?;

        if (ttl != null && now - timestamp > ttl) {
          expiredEntries++;
        } else {
          validEntries++;
        }
      }
    } catch (e) {
      expiredEntries++;
    }
  }

  return {
    'totalEntries': totalEntries,
    'validEntries': validEntries,
    'expiredEntries': expiredEntries,
    'cacheSize': await getCacheSizeFormatted(),
  };
}