redactFields function

Map<String, Object?> redactFields({
  1. required Map<String, Object?> data,
  2. required List<String> fieldPaths,
  3. required RedactMaskFn mask,
})

Redacts data by applying mask to values at keys in fieldPaths. mask e.g. (value) => '***'.

Implementation

Map<String, Object?> redactFields({
  required Map<String, Object?> data,
  required List<String> fieldPaths,
  required RedactMaskFn mask,
}) {
  final Map<String, Object?> out = Map<String, Object?>.from(data);
  for (final String path in fieldPaths) {
    if (out.containsKey(path)) out[path] = mask(out[path]);
  }
  return out;
}