clear method

Future<void> clear(
  1. List<String> paths
)

Implementation

Future<void> clear(List<String> paths) {
  return _syncLock.run(() async {
    Set<DualDataStore> dataStores = {};
    Map<String, List<DualDataStore>> pathDataStores = {};

    for (final path in paths) {
      final stores = pathDataStores[path] = _resolveDataStores(path);
      dataStores.addAll(stores);
    }

    if (dataStores.isEmpty) {
      return;
    }

    await Future.wait(dataStores.map((dataStore) => dataStore.hydrate()));

    for (final path in paths) {
      for (final dataStore in pathDataStores[path]!) {
        dataStore.recursiveDelete(path);
      }

      resolver.deletePath(path);
    }

    _scheduleSync();
  });
}