JSPM

pretty-format

20.1.0-alpha.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 97236140
  • Score
    100M100P100Q245685F
  • License BSD-3-Clause

Stringify any JavaScript value.

Package Exports

  • pretty-format

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (pretty-format) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

pretty-format

Stringify any JavaScript value.

Installation

$ yarn add pretty-format

Usage

const prettyFormat = require('pretty-format');

const obj = {property: {}};
obj.circularReference = obj;
obj[Symbol('foo')] = 'foo';
obj.map = new Map();
obj.map.set('prop', 'value');
obj.array = [1, NaN, Infinity];

console.log(prettyFormat(obj));

Result:

Object {
  "property": Object {},
  "circularReference": [Circular],
  "map": Map {
    "prop" => "value"
  },
  "array": Array [
    1,
    NaN,
    Infinity
  ],
  Symbol(foo): "foo"
}

Type Support

Object, Array, ArrayBuffer, DataView, Float32Array, Float64Array, Int8Array, Int16Array, Int32Array, Uint8Array, Uint8ClampedArray, Uint16Array, Uint32Array, arguments, Boolean, Date, Error, Function, Infinity, Map, NaN, null, Number, RegExp, Set, String, Symbol, undefined, WeakMap, WeakSet

API

console.log(prettyFormat(object));
console.log(prettyFormat(object, options));

Options:

  • callToJSON
    Type: boolean, default: true
    Call toJSON() on passed object.
  • indent
    Type: number, default: 2
    Number of spaces for indentation.
  • maxDepth
    Type: number, default: Infinity
    Print only this number of levels.
  • min
    Type: boolean, default: false
    Print without whitespace.
  • plugins
    Type: array, default: []
    Plugins (see the next section).
  • printFunctionName
    Type: boolean, default: true
    Print function names or just [Function].
  • escapeRegex
    Type: boolean, default: false
    Escape special characters in regular expressions.
  • highlight
    Type: boolean, default: false
    Highlight syntax for terminal (works only with ReactTestComponent and ReactElement plugins.
  • theme
    Type: object, default: {tag: 'cyan', content: 'reset'...}
    Syntax highlight theme.
    Uses ansi-styles colors + reset for no color.
    Available types: tag, content, prop and value.

Plugins

Pretty format also supports adding plugins:

const fooPlugin = {
  test(val) {
    return val && val.hasOwnProperty('foo');
  },
  print(val, print, indent) {
    return 'Foo: ' + print(val.foo);
  },
};

const obj = {foo: {bar: {}}};

prettyFormat(obj, {
  plugins: [fooPlugin],
});
// Foo: Object {
//   "bar": Object {}
// }

ReactTestComponent and ReactElement plugins

const prettyFormat = require('pretty-format');
const reactTestPlugin = require('pretty-format').plugins.ReactTestComponent;
const reactElementPlugin = require('pretty-format').plugins.ReactElement;

const React = require('react');
const renderer = require('react-test-renderer');

const element = React.createElement('h1', null, 'Hello World');

prettyFormat(renderer.create(element).toJSON(), {
  plugins: [reactTestPlugin, reactElementPlugin],
});
// <h1>
//   Hello World
// </h1>