This package has been deprecated

Author message:

WARNING: This project has been renamed to collapsible. Install collapsible instead.

collapsable

1.0.0 • Public • Published

collapsable

Pretty print JSON while auto-collapsing short JSON objects

Options

Collapsable 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

Collapsable's Output:

var collapsable = require('collapsable');

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
};

collapsable.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 collapsable

Weekly Downloads

3

Version

1.0.0

License

see LICENSE

Last publish

Collaborators

  • justinormont