A simple and minimalist wrapper library to deal with JavaScript object to JSON transformations that supports removing transient fields.
Install via npm
npm install json-transients
or yarn
yarn add json-transients
Let's take a very simple JSON object as example ...
const json = {
$_transient: '',
isUndefined: undefined,
str: "string",
number: 1,
bool: true,
fn: () => { }
}
... and transform it to remove transient fiels (properties prefixed with $_
in this example)
const JsonTransients = require('json-transients')
const jst = new JsonTransients()
const result = jst.transform(json)
This will remove all transient fields and return a valid JSON object:
{
isUndefined: null,
str: "string",
number: 1,
bool: true
}
Each instance of JsonTransients
takes a configuration object with following properties:
Property | Required | Default | Description |
---|---|---|---|
prefix |
no | $_ |
Prefix for transients fields that are being removed |
transformUndefined |
no | true |
Sets all undefined properties to null . If set to false all undefined properties will be removed. You can also define a custom handler. |
transformDate |
no | toISOString() |
Define a custom handler to transfrom Date objects. Sets all date properties to ISO string by default. |
const jst = new JsonTransients({
// use a custom prefix
prefix: 'CUSTOM_`,
// transform all undefined properties to "not_defined" string
transformUndefined: () => {
return 'not_defined'
},
// transform all dates to timestamp
transformDate: (value) => {
return value.getTime()
}
})
This project is licensed under the MIT license, Copyright (c) 2020 David Pichsenmeister | pichsenmeister.com. For more information see LICENSE.