clear method

  1. @override
Future<void> clear()
override

Implementation

@override
Future<void> clear() async {
  final database = await _database;
  final keysTransaction = database.transaction(_recordStore, idbModeReadOnly);
  final recordIds = await keysTransaction
      .objectStore(_recordStore)
      .getAllKeys();
  await keysTransaction.completed;
  final matchingIds = recordIds
      .where((id) => id.toString().startsWith(_namespacePrefix))
      .toList();
  final transaction = database.transaction(_recordStore, idbModeReadWrite);
  for (final id in matchingIds) {
    await transaction.objectStore(_recordStore).delete(id);
  }
  await transaction.completed;
  notifyListeners('*');
}