load method

  1. @override
Future<T?> load()
override

Implementation

@override
Future<T?> load() async {
  try {
    final stored = await storage.load();
    if (stored == null) return null;

    final version = stored['__version__'] as int? ?? 1;
    final data = stored['__data__'] as Map<String, dynamic>;

    if (version < currentVersion && migrate != null) {
      final migrated = migrate!(data, version, currentVersion);
      await save(migrated); // Save migrated version
      return migrated;
    }

    return fromData(data, version);
  } catch (e) {
    if (kDebugMode) print('VersionedPersistence load error: $e');
    return null;
  }
}