clearByPattern method

Future<int> clearByPattern(
  1. RegExp pattern
)

按正则模式清理缓存

Implementation

Future<int> clearByPattern(RegExp pattern) async {
  final db = await _resolveDatabase();
  if (db == null) {
    return 0;
  }

  try {
    final records = await _store.find(db);
    final keysToDelete = records
        .where((record) => pattern.hasMatch(record.key))
        .map((record) => record.key)
        .toList();

    for (final key in keysToDelete) {
      await _store.record(key).delete(db);
    }

    LogUtil.v(
        'RxNetDataBase: Cleared ${keysToDelete.length} records matching pattern');
    return keysToDelete.length;
  } catch (error, stacktrace) {
    LogUtil.v('RxNetDataBase: clearByPattern error: $error\n$stacktrace');
    return 0;
  }
}