hydrate method
void
hydrate(})
Restores entries into this scope only.
Implementation
void hydrate(
Map<String, dynamic> dehydratedState, {
dynamic Function(dynamic json, List<dynamic> key)? deserialize,
}) {
_assertAlive();
final queriesRaw = dehydratedState['queries'];
if (queriesRaw is! List) return;
for (final item in queriesRaw) {
if (item is! Map) continue;
final itemMap = Map<String, dynamic>.from(item);
final key = itemMap['key'] as List<dynamic>?;
if (key == null) continue;
final rawData = itemMap['data'];
final data = deserialize != null ? deserialize(rawData, key) : rawData;
final updatedAtStr = itemMap['updatedAt'] as String?;
final updatedAt = updatedAtStr != null
? DateTime.tryParse(updatedAtStr) ?? DateTime.now()
: DateTime.now();
final staleTimeMs = itemMap['staleTimeMs'] as int? ??
itemMap['staleTime'] as int? ??
300000;
final cacheTimeMs = itemMap['cacheTimeMs'] as int? ??
itemMap['cacheTime'] as int? ??
1800000;
final isStale = itemMap['isStale'] as bool? ?? false;
final entry = QueryCacheEntry<dynamic>(
key: key,
data: data,
updatedAt: updatedAt,
staleTime: Duration(milliseconds: staleTimeMs),
cacheTime: Duration(milliseconds: cacheTimeMs),
isStale: isStale,
);
putEntry(entry);
}
}