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 = ; /* @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; /* {"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; /* { x: 1, y: 2, children: [ {x:4, y:3}, {x:6, y:9} ] } */