get method

  1. @override
Future get(
  1. String key
)
override

Implementation

@override
Future<dynamic> get(String key) async {
  final file = await _recordFile(key);
  if (await file.exists()) {
    return codec
        .decode(
          await file.readAsString(),
          expectedKey: key,
          allowLegacy: false,
        )
        .value;
  }

  final legacy = _legacyFile(key);
  if (legacy == null || !await legacy.exists()) return null;
  final decoded = codec.decode(
    await legacy.readAsString(),
    expectedKey: key,
    allowLegacy: true,
    legacyFallbackKey: key,
  );
  await _writeAtomically(file, codec.encode(key, decoded.value));
  await legacy.delete();
  notifyListeners(key);
  return decoded.value;
}