💄 Prettifies any javascript object in your console. Make it look awesome!
Screenshot
Also check out the
CLI versionmade by @Kikobeats
Features
- Circular reference support ✨
- Allows for custom formatting
- Supports any arbitrary javascript token (functions, strings, numbers, arrays, you name it!)
Installation
npm install --save fmt-obj
Or even better
yarn add fmt-obj
Import and Usage Example
const format = require('fmt-obj') console.log(format({ message: 'hello world', dev: true, awesomeness: 9.99, body: { these: null, are: 'string', some: 12, props: false } }))
API
format(obj, depth = Infinity)
Prettifies obj with optional depth.
obj
Any arbitrary javascript object.
depth (optional)
Colapses all properties deeper than specified by depth.
createFormatter({ offset = 2, formatter = identityFormatter })
Create a custom format function if you need more control of how you want to format the tokens.
opts.formatter (optional)
fmt-obj uses chalk for it's default format function. A formatter is mostly used for colors but can be used to manipulate anything.
Example with rounding numbers
const format = createFormatter({ number: Math.round }) format({ num: 12.49 }) // -> num: 12
The following tokens are available:
- punctuation - The characters sorrounding your data:
:and" - literal - Either
true,false,nullorundefined - annotation - Type annotation for errors, functions and circular references like
[Function {name}] - property
- string
- number
Example with a custom color map
const { createFormatter } = require('fmt-obj') const format = createFormatter({ offset: 4, formatter: { punctuation: chalk.cyan, annotation: chalk.red, property: chalk.yellow, literal: chalk.blue, number: chalk.green, string: chalk.bold } })
opts.offset (optional)
The amount of left whitespace between the property key and all of it's sub-properties.
Similar packages
(Because package discovery is hard)
pretty-formatby @thejameskyle for additional ES6 type support (WeakMap, WeakSet, Symbol etc.) and more consistent output.
Author
fmt-obj © Fabian Eichenberger, Released under the MIT License.
Authored and maintained by Fabian Eichenberger with help from contributors (list).
