library with function that redacts specified fields inside json object
The library exposes a class Redacter
that has functions redact
and simpleRedact
that takes 2 arguments: the object to redact and an array describing which are the fields to redact and how.
The constructor of the class takes as parameter the preferred method to redact. There are two possible methods:
- "mask": mask the field with
*
of the same length. E.g. 'pippo' ->*****
- "redact" (the default way): substitute the field with the following string '[REDACT]'
const Redacter = require('simple-redact')
const redacter = new Redacter()
const toRedact = { a: 'bar', b: 'foo', c: { d: 'pluto'} }
const config = [ 'a', 'c.d' ]
const redacted = redacter.simpleRedact(toRedact, config)
console.log(redacted) // { a: '[REDACT]', b: 'foo', c: { d: '[REDACT]' } }
const Redacter = require('simple-redact')
const redacter = new Redacter()
const toRedact = { a: 'bar', b: 'foo', c: { d: 'pluto'} }
const config = [
{ field: 'a' },
{ field: 'c', data: [ { field: 'd' } ] },
]
const redacted = redacter.redact(toRedact, config)
console.log(redacted) // { a: '[REDACT]', b: 'foo', c: { d: '[REDACT]' } }
- Make easier to describe the fields to redact
- Support simple types
- Make better documentation with better examples
- Support multiple ways to redact the values (e.g. masking)
The first 'working' version of the lib is v0.1.3