CacheItem<T>.fromJson constructor

CacheItem<T>.fromJson(
  1. Map<String, dynamic> json
)

Creates a cache item from a JSON map.

Implementation

factory CacheItem.fromJson(Map<String, dynamic> json) {
  Set<String>? tags;
  if (json['tags'] != null) {
    final tagsList = json['tags'] as List<dynamic>;
    tags = tagsList.map((tag) => tag as String).toSet();
  }

  return CacheItem<T>(
    value: json['value'] as T,
    expiry: json['expiry'] != null ? DateTime.parse(json['expiry']) : null,
    slidingExpiry: json['slidingExpiry'] != null
        ? Duration(seconds: json['slidingExpiry'])
        : null,
    priority: json['priority'] != null
        ? CachePriority.values[json['priority']]
        : CachePriority.normal,
    createdAt:
        json['createdAt'] != null ? DateTime.parse(json['createdAt']) : null,
    lastAccessedAt: json['lastAccessedAt'] != null
        ? DateTime.parse(json['lastAccessedAt'])
        : null,
    accessCount: json['accessCount'] as int? ?? 0,
    isCompressed: json['isCompressed'] as bool? ?? false,
    originalSize: json['originalSize'] as int?,
    compressionRatio: json['compressionRatio'] as double?,
    tags: tags,
  );
}