maskSensitiveData function

Map<String, dynamic> maskSensitiveData(
  1. Map<String, dynamic> data,
  2. List<String>? keysToMask
)

Implementation

Map<String, dynamic> maskSensitiveData(
    Map<String, dynamic> data, List<String>? keysToMask) {
  if (keysToMask == null || keysToMask.isEmpty) {
    return data;
  }
  return data.map((key, value) {
    if (keysToMask.contains(key)) {
      return MapEntry(key, '***');
    }
    if (value is Map<String, dynamic>) {
      return MapEntry(key, maskSensitiveData(value, keysToMask));
    }
    if (value is List) {
      return MapEntry(
          key,
          value.map((e) {
            if (e is Map<String, dynamic>) {
              return maskSensitiveData(e, keysToMask);
            }
            return e;
          }).toList());
    }
    return MapEntry(key, value);
  });
}