decodeRuntimeCacheEntry function

MiniProgramCacheEntry? decodeRuntimeCacheEntry(
  1. Map<String, Object?> json
)

Implementation

MiniProgramCacheEntry? decodeRuntimeCacheEntry(Map<String, Object?> json) {
  if (json['schemaVersion'] != runtimeCachePersistenceSchemaVersion) {
    return null;
  }
  final appId = json['appId'];
  final bucketName = json['bucket'];
  final key = json['key'];
  final createdAt = json['createdAt'];
  final updatedAt = json['updatedAt'];
  final lastAccessedAt = json['lastAccessedAt'];
  final expiresAt = json['expiresAt'];
  final sizeBytes = json['sizeBytes'];
  final priorityName = json['priority'];
  if (appId is! String ||
      bucketName is! String ||
      key is! String ||
      createdAt is! String ||
      updatedAt is! String ||
      lastAccessedAt is! String ||
      expiresAt is! String ||
      sizeBytes is! int ||
      priorityName is! String) {
    return null;
  }
  final bucket = _bucketFromName(bucketName);
  final priority = _priorityFromName(priorityName);
  if (bucket == null || priority == null || sizeBytes < 0) {
    return null;
  }
  return MiniProgramCacheEntry(
    appId: appId,
    bucket: bucket,
    key: key,
    value: json['value'],
    createdAt: DateTime.parse(createdAt),
    updatedAt: DateTime.parse(updatedAt),
    lastAccessedAt: DateTime.parse(lastAccessedAt),
    expiresAt: DateTime.parse(expiresAt),
    sizeBytes: sizeBytes,
    priority: priority,
  );
}