collapsible

1.0.1 • Public • Published

collapsible

Pretty print JSON while auto-collapsing short JSON objects

Options

Collapsible is configurable:

  • maxLength (default: 200) collapses any JSON segments smaller than this length
  • doubleSpaceDepth (default: 1) double spaces array and object elements at or below this depth
  • spaceBeforeColon (default: false) inserts a space before colons in an object
  • spaceAfterColon (default: true) inserts a space after colons in an object
  • spaceAfterComma (default: true) inserts a space after commas in an object or array
  • spaceInsideBraces (default: true) inserts space after an openening and before a closing brace for an object
  • spaceInsideBrackets (default: true) inserts space after an openening and before a closing bracket for an array
  • sameLineBraces (default: false) insets a newline between an array of objects
  • sameLineBrackets (default: false) inserts a newline between an array of arrays
  • typeOrder (defult: { boolean: 1, number: 2, string: 3, default: 99 }) sets the ordering of keys in an object

Examples

Collapsible's Output:

var collapsible = require('collapsible');
 
var obj = {"id":"3901","type":"donut","name":"Cake","ppu":0.55,"batters":{"batter":[{"id":"1001","type":"Regular"},{"id":"1002","type":"Chocolate"},{"id":"1003","type":"Blueberry"}]},"topping":[{"id":"5001","type":"None"},{"id":"5002","type":"Glazed"},{"id":"5005","type":"Sugar"},{"id":"5007","type":"Powdered Sugar"}],"aisle":12};
 
var options = {
  maxLength: 100
};
 
collapsible.stringify(obj, options);
 
// Output
{
    "aisle": 12,
 
    "ppu": 0.55,
 
    "id": "3901",
 
    "name": "Cake",
 
    "type": "donut",
 
    "batters": {
        "batter": [
            { "id": "1001", "type": "Regular" },
            { "id": "1002", "type": "Chocolate" },
            { "id": "1003", "type": "Blueberry" }
        ]
    },
 
    "topping": [
        { "id": "5001", "type": "None" },
        { "id": "5002", "type": "Glazed" },
        { "id": "5005", "type": "Sugar" },
        { "id": "5007", "type": "Powdered Sugar" }
    ]
}

Note the collapsed "batter" and "topping" sections; double spaced root elements; spaces around braces; and the numerical, string, and object values are clustered together.

Basic pretty print:

JSON.stringify(obj, null, '\t');
 
// output
{
    "id": "3901",
    "type": "donut",
    "name": "Cake",
    "ppu": 0.55,
    "batters": {
        "batter": [
            {
                "id": "1001",
                "type": "Regular"
            },
            {
                "id": "1002",
                "type": "Chocolate"
            },
            {
                "id": "1003",
                "type": "Blueberry"
            }
        ]
    },
    "topping": [
        {
            "id": "5001",
            "type": "None"
        },
        {
            "id": "5002",
            "type": "Glazed"
        },
        {
            "id": "5005",
            "type": "Sugar"
        },
        {
            "id": "5007",
            "type": "Powdered Sugar"
        }
    ],
    "aisle": 12
}

Note how standard pretty printing has longer total length (58% longer) and non-grouping of similar types.

Readme

Keywords

Package Sidebar

Install

npm i collapsible

Weekly Downloads

248

Version

1.0.1

License

see LICENSE

Last publish

Collaborators

  • justinormont