sanitize method

  1. @override
Map<String, dynamic> sanitize(
  1. Map<String, dynamic> data
)
override

Returns a new sanitized map. The input is never mutated.

Implementation

@override
Map<String, dynamic> sanitize(Map<String, dynamic> data) {
  Object walk(Object? v, int depth) {
    if (depth >= maxDepth) return redactionMarker;
    if (v is Map<String, dynamic>) {
      return v.map((k, val) => MapEntry(k, walk(val, depth + 1)));
    } else if (v is List) {
      return v.map((it) => walk(it, depth + 1)).toList();
    }
    return v ?? '';
  }

  return walk(data, 0) as Map<String, dynamic>;
}