JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 23
  • Score
    100M100P100Q49937F
  • License MIT

repetitive object compression by templating

Package Exports

  • exjson

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (exjson) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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}
        ]
    }
    */