0.0.3 • Published 4 years ago

json-transients v0.0.3

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

json-transients

A simple and minimalist wrapper library to deal with JavaScript object to JSON transformations that supports removing transient fields.

Installation

Install via npm

npm install json-transients

or yarn

yarn add json-transients

Getting started

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
}

Config

Each instance of JsonTransients takes a configuration object with following properties:

PropertyRequiredDefaultDescription
prefixno$_Prefix for transients fields that are being removed
transformUndefinednotrueSets all undefined properties to null. If set to false all undefined properties will be removed. You can also define a custom handler.
transformDatenotoISOString()Define a custom handler to transfrom Date objects. Sets all date properties to ISO string by default.

Example

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()
    }
})

License

This project is licensed under the MIT license, Copyright (c) 2020 David Pichsenmeister | pichsenmeister.com. For more information see LICENSE.