Skip to content

RickyLi79/rich-json

Repository files navigation

@rickyli79/rich-json

serialize and deserialize rich javascript data types, suport reference data.

install

npm install @rickyli79/rich-json

usage

supported runtime

  • NodeJS
  • Browser

stringify

import RichJson from '@rickyli79/rich-json'
// const RichJson = require('@rickyli79/rich-json');
const complexObj_origin = { key: 'any supported data types' };
const rJson:string = RichJson.stringify(complexObj_origin);
// todo: save rJson to file;

parse

import RichJson from '@rickyli79/rich-json'
const rJson:string = getRichJsonText();
const complexObj = RichJson.parse<TComplaxObj>(rJson);

clone

import RichJson from '@rickyli79/rich-json'
const complexObj_origin = { key: 'any supported data types' };
const complexObj = RichJson.clone(complexObj_origin);

assert.notStrictEqual(complexObj, complexObj_origin);

supported data types

  • primitive
    • null
    • undefined
    • bigint
    • number
      • normal
      • NaN
      • -0
      • Number.EPSILON
      • Number.MAX_SAFE_INTEGER
      • Number.MIN_SAFE_INTEGER
      • Number.NEGATIVE_INFINITY
      • Number.POSITIVE_INFINITY
  • function
    • function
    • async function
    • arrow function
    • async arrow function
  • object
    • URL
    • Date
    • RegExp
    • Set
    • Map
    • Error ( with message only, without stack )
    • Buffer like
      • Buffer in NodeJs
      • Int8Arrany, Uint16Array, Uint32Array ...and more
      • NOT support Blob
    • WrapRunner class
    • customer serializers
  • reference
    • reference to same object
    • circular reference

    including reference in Set and Map, and WrapRunner class or customer serializers

unittest

About

serialize and deserialize rich javascript data types, suport reference data.

Topics

Resources

License

Stars

Watchers

Forks

Contributors