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) {
if (v is Map<String, dynamic>) {
return v.map((k, val) => MapEntry(k, walk(val)));
} else if (v is List) {
return v.map(walk).toList();
} else if (v is String) {
var s = v;
for (final entry in rules.entries) {
s = s.replaceAll(entry.key, entry.value);
}
return s;
}
return v ?? '';
}
return walk(data) as Map<String, dynamic>;
}