whereKeyStartsWith method

  1. @override
Future<Map<String, dynamic>> whereKeyStartsWith(
  1. String prefix
)

Implementation

@override
Future<Map<String, dynamic>> whereKeyStartsWith(String prefix) async {
  final keys = await _scanKeys(match: '${_escapeGlob(prefix)}*');
  if (keys.isEmpty) return {};

  final List values =
      await Command(_connection).send_object(['MGET', ...keys]);
  final results = await List.generate(values.length, (i) async {
    return {keys[i].toString(): jsonDecode(values[i] as String)};
  }).wait;

  final Map<String, dynamic> r = {};
  for (final result in results) {
    r.addAll(result);
  }

  return r;
}