display-value

Converts values to a readable display string

Usage no npm install needed!

<script type="module">
  import displayValue from 'https://cdn.skypack.dev/display-value';
</script>

README

Display Value

Converts values to a readable display string

npm build deps size vulnerabilities license


displayValue(value, [settings]) ⇒ string

Designed for use in test messages, displayValue takes a javascript value and returns a human readable string representation of that value.

Notes:

  • finite numbers are passed through number.toLocaleString()
    • -0 is rendered as -0
    • 1300 is rendered as 1,300 (depending on locale)
  • strings are wrapped in double quotes
  • Arrays and Objects are passed through a function similar to JSON.stringify, but values are individually run through displayValue
  • Array-like values such as arguments are handled like Arrays
  • Object-like values such as ClientRect and DOMRect are handled like Objects
  • Constructors will return the constructor's name
  • Instances of non-native constructors:
    • will return the result of .toString() if other than '[object Object]'
    • otherwise returns '[object Name]' where Name is the constructor's name
Param Type Default Description
value *
[settings] Object
[settings.beautify] Boolean false If true and value is an Array or Object then the output is rendered in multiple lines with indentation

Example

import displayValue from 'display-value';

displayValue(-0); // '-0'
displayValue(1300000); // '1,300,000'
displayValue('foo'); // '"foo"'
displayValue({x: 1}); // '{"x": 1}'

displayValue(() => {}); // '() => {…}'
displayValue(function(param) {}); // 'ƒ (param) {…}'
displayValue(function name() {}); // 'ƒ name() {…}'

displayValue(Symbol()); // 'Symbol()'
displayValue(Symbol('name')); // 'Symbol(name)'

displayValue(new CustomClass()); // '[object CustomClass]'

displayValue([{x: 1}, {x: 2000}], {beautify: true});
// '[
//     {
//         "x": 1
//     }, {
//         "x": 2,000
//     }
// ]'