@touched/json-stringify-dense-pretty

0.1.0 • Public • Published

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

/@touched/json-stringify-dense-pretty/

    Package Sidebar

    Install

    npm i @touched/json-stringify-dense-pretty

    Weekly Downloads

    1

    Version

    0.1.0

    License

    GPL-3.0

    Last publish

    Collaborators

    • touched