prune method

  1. @override
Future<void> prune({
  1. required List<String> keysToKeep,
})
override

Delete all records except keysToKeep.

Implementation

@override
Future<void> prune({required List<String> keysToKeep}) async {
  final saved = <String, String>{};

  for (final key in keysToKeep) {
    final value = _box.get(key);
    if (value != null) saved[key] = value;
  }

  final _ = await _box.clear();

  for (final key in keysToKeep) {
    await _box.put(key, saved[key]!);
  }

  await flush();
}