remove method

  1. @override
Future<int?> remove(
  1. String key, {
  2. bool skipCommit = false,
})
override

Removes the mapping for key if present.

Returns the commit-log sequence number assigned to this deletion, or null if no sequence number was produced.

Throws a DataStoreException if the underlying store fails.

Implementation

@override
Future<int?> remove(key, {bool skipCommit = false}) async {
  for (final hook in preRemoveHooks) {
    await hook(key, skipCommit: skipCommit);
  }
  final wasPresent = await exists(key);
  await _getBox().delete(key);
  _expiryIndex.remove(key);

  for (final hook in postRemoveHooks) {
    await hook(key, skipCommit: skipCommit);
  }
  if (wasPresent) {
    _changesController.add(KeyRemoved(key));
  }
  return null;
}