0.1.0 • Published 7 years ago

@touched/json-stringify-dense-pretty v0.1.0

Weekly downloads
-
License
GPL-3.0
Repository
-
Last release
7 years ago

json-stringify-dense-pretty

Introduction

The built-in JSON.stringify function, when configured to pretty print, does not produce very compact output which makes certain structures, like long numeric arrays, very difficult to read.

For example,

JSON.stringify([0, 0, 0, 0], null, 2);

produces

[
  0,
  0,
  0,
  0
]

This can be very annoying for long arrays. This alternative function packs as many array elements on one line before creating a new line

import jsonStringify from '@touched/json-stringify-dense-pretty';

jsonStringify([0, 0, 0, 0]);

produces

[0, 0, 0, 0]

However,

// Stringify array of 50 zeroes
jsonStringify([...Array(50)].map(() => 0));

results in

[
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
]

which is much easier for a human to scan.

Usage

ES6 imports:

import jsonStringify from '@touched/json-stringify-dense-pretty';

Common.js:

const jsonStringify = require('@touched/json-stringify-dense-pretty').default;

Usage

jsonStringify(obj: mixed, options: Options);

Options:

  • fieldSeparator: The string that appears between fields. ", " by default.
  • keySeparator: The string that separates key-value pairs. ": " by default.
  • lineLength: A guide for how long to make lines. Default is 80.
  • spaces: The amount of spaces to indent with. Default is 2.

CLI

This library comes with a formatter utility that reads JSON from stdin and prints formatted JSON (using the default options above) on stdout.

Usage: cat data.json | json-format-dense-pretty

License

GPLv3

0.1.0

7 years ago