sanitize method
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>;
}