formatRedisReply function

String formatRedisReply(
  1. Object? reply, [
  2. String indent = ''
])

A reply as redis-cli prints it.

Implementation

String formatRedisReply(Object? reply, [String indent = '']) => switch (reply) {
  null => '(nil)',
  final int number => '(integer) $number',
  final double number => '(double) $number',
  final bool flag => '(boolean) $flag',
  final RedisCommandException error => '(error) ${error.message}',
  final String text => jsonEncode(text),
  final List<Object?> items when items.isEmpty => '(empty array)',
  final List<Object?> items => [
    for (var i = 0; i < items.length; i++)
      '${i == 0 ? '' : indent}${i + 1}) '
          '${formatRedisReply(items[i], '$indent${' ' * '${i + 1}) '.length}')}',
  ].join('\n'),
  final Map<Object?, Object?> map => formatRedisReply([
    for (final MapEntry(:key, :value) in map.entries) ...[key, value],
  ], indent),
  _ => '$reply',
};