Awesome
fmt-obj
:lipstick: Prettifies any javascript object in your console. Make it look awesome!
Screenshot
<p align="center"> <img src="./intro.png" /> </p><sub><a href='./example.js'>View Example</a></sub>
Also check out the
CLI version
made by @Kikobeats
Features
- Circular reference support :sparkles:
- 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
,null
orundefined
- 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-format
by @thejameskyle for additional ES6 type support (WeakMap, WeakSet, Symbol etc.) and more consistent output.
Author
fmt-obj © Fabian Eichenberger, Released under the MIT License.<br> Authored and maintained by Fabian Eichenberger with help from contributors (list).