Export any value to valid and equivalent JavaScript code
npm install pretty-var-export


Export any value to valid and equivalent JavaScript code. Uses syntax coloring
for debugging from the cli.
``bash`
npm install pretty-var-export
`ts
import pretty from 'pretty-var-export';
// return string suitable for logging
console.log(pretty(myValue));
// OR prettify and log
pretty.log(myValue1, myValue2);
`
_Note that coloring can be disabled with pretty.colors.disable()._
- Add handler
- Remove handler
- Custom indent
- Custom colors
- Custom display options
- Custom labels
Add custom handlers for formatting.
For example, to show NaN as a different color than numbers:
`ts
import pretty from 'pretty-var-export';
// each handler must have a test and format method
pretty.handlers.add('nan', {
test: isNaN,
format: () => pretty.colors.palette.cyan('NaN'),
});
// if you want to reset to default list
pretty.handlers.reset();
`
You can remove handlers by name.
`ts
import pretty from 'pretty-var-export';
// see below for list of names
pretty.handlers.remove('nan');
// or you can reset all handlers
pretty.handlers.reset();
`
Default handler names:
- arguments
- Array
- BigInt
- Boolean
- Date
- Error
- Entries
- Function
- Map
- null
- Number
- Object
- Promise
- RegExp
- Set
- String
- Symbol
- TypedArray
- undefined
- URL
- URLSearchParams
- WeakMap
- WeakSet
By default, indentation is 2 spaces.
`ts
import pretty from 'pretty-var-export';
pretty.options.indent = 4; // 4 spaces
pretty.options.indent = ' '; // 4 spaces
pretty.options.indent = '\t'; // tab
`
Colors come from the ansi-colors npm module.
Formats include the following:
- boolean for true and false (default yellow)comment
- for comments (default gray)constructor
- for instantiation (default blue)escape
- for string escapes (default yellowBright)null
- for null (default yellow)number
- for numbers, NaN, Infinity (default red)property
- for object property names (default cyan)regexp
- for bodies of regular expressions (default blue)string
- for strings (default green)symbol
- for quotes, braces, parens, commas, colons (default white)undefined
- for undefined (default yellow)
`ts
import pretty from 'pretty-var-export';
// existing color functions from the ansi-colors npm package
pretty.colors.symbol = pretty.colors.palette.blueBright;
// use any other function
pretty.colors.string = chalk.green;
// disable all coloring
pretty.colors.disable();
// reset to default colors and re-enable coloring
pretty.colors.reset();
`
There are a few options that can change display. Below are defaults.
`ts
import pretty from 'pretty-var-export';
// if true, show function bodies
pretty.options.showFunctionBody = false;
// the max length for strings
pretty.options.maxStringLength = 1024 * 4;
// max number of items to list
pretty.options.maxListItems = 100;
// output multi-line strings with backticks
pretty.options.preferBackticks = true;
// quote style for default strings (single, double or backtick)
pretty.options.quoteStyle = 'double';
// reset to defaults
pretty.options.reset();
`
Labels can be changed or translated.
`ts
import pretty from 'pretty-var-export';
// defaults
pretty.labels.circularReference = 'Circular Reference';
pretty.labels.codeOmitted = 'Code Omitted';
pretty.labels.itemsUnknown = 'Items Unknown';
// reset to defaults
pretty.labels.reset();
``
See CHANGELOG.md
Please open a ticket or PR on GitHub.