readVersioned function

KvRead<Map<String, Object?>> readVersioned(
  1. KvStore kv,
  2. String key
)

Implementation

KvRead<Map<String, Object?>> readVersioned(KvStore kv, String key) {
  final raw = kv.get(key);
  if (raw == null) return KvMissing();
  Object? value;
  try {
    value = jsonDecode(raw);
  } catch (_) {
    return KvInvalid();
  }
  if (value is! Map || value['v'] is! int) return KvInvalid();
  final v = value['v'] as int;
  if (v > kvFormatVersion) return KvNewer(v);
  return KvOk(value.cast<String, Object?>());
}