New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

exjson

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

exjson

repetitive object compression by templating

latest
npmnpm
Version
1.3.0
Version published
Maintainers
1
Created
Source

exJSON

exJSON is a way to preformat and reduce redundancy in JSON by extracting repeated values. It's build on top of JSON, and is a lightweight library which can implemented in applications which send back and forth a lot of repetitive data. It also supports translating parsed data back into classes.

Usage

    const exJSON = require('exjson');
    
    /*
    @param toStringify Object/Array/Primitive thing to be stringified
    @param options Object
        @property identifierString String String to identify templates. Must be set or will cause parsing error later.
        @default "I:"
        @property convertToJSON boolean Whether to convert to string in end or not
        @default true
        @property storeRepeated boolean Whether to store values in a separate array and reference that array elsewhere
        @default true
        @property compress function compression function to be called at the end, convenience wrapper
        @default i=>i
    */
    let test = {
        x: 1,
        y: 2,
        children: [
            {x:4, y:3},
            {x:6, y:9}
        ]
    };
    let str = exJSON.stringify(test);
    /*
    {"templates":["x,y","x,y,children"],
    "repeated":[1,2,4,3,6,9],
    "values":[0,1,[[2,3,"I:0"],[4,5,"I:0"]],"I:1"],
    "options":{"sr":true,"id":"I:"}}
    */
    
    /*
        @param toParse String string that will be parsed into an object.
        @param options Object
            @property templates Array of templates that can be overwritten. Generally best not to set.
            @default toParse.templates || []
            @property repeated Array of repeated values that can be overwritten. Best to leave alone.
            @default toParse.repeated || []
            @property constructors Array of constructors which will replace templates upon the parsed object being reconstructed
            @default []
    */
    let result = exJSON.parse(str);
    /*
    {
        x: 1,
        y: 2,
        children: [
            {x:4, y:3},
            {x:6, y:9}
        ]
    }
    */

Keywords

string

FAQs

Package last updated on 28 Feb 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts