(value: string, fields: ReadonlySet<string>, transform: ((body: string) => string) | undefined)
| 94 | } |
| 95 | |
| 96 | const redactBody = (value: string, fields: ReadonlySet<string>, transform: ((body: string) => string) | undefined) => { |
| 97 | const redacted = Option.match(decodeJson(value), { |
| 98 | onNone: () => value, |
| 99 | onSome: (parsed) => JSON.stringify(redactJsonFields(parsed, fields)), |
| 100 | }) |
| 101 | return transform?.(redacted) ?? redacted |
| 102 | } |
| 103 | |
| 104 | export const make = (options: RedactOptions = {}): Redactor => { |
| 105 | const fields = new Set([...DEFAULT_REDACT_JSON_FIELDS, ...(options.jsonFields ?? [])].map(normalizeField)) |
no test coverage detected