getCacheStats static method
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(),
};
}