util.inspect
with additional type information
const {inspect} = require('util');
const inspectWithKind = require('inspect-with-kind');
inspect([1, 2, 3]); //=> '[ 1, 2, 3 ]'
inspectWithKind([1, 2, 3]); //=> '[ 1, 2, 3 ] (array)'
npm install inspect-with-kind
const inspectWithKind = require('inspect-with-kind');
value: any type
options: Object
(util.inspect
options)
Return: string
Almost the same as util.inspect
, but:
- It appends a type information to the string if the first argument is one of
boolean
,string
,number
,bigint
,Array
,RegExp
,Date
,arguments
or a plainObject
. - Error stack trace is omitted.
breakLength
option defaults toInfinity
.maxArrayLength
option defaults to10
.
const util = require('util');
const inspectWithKind = require('inspect-with-kind');
// appends type info
util.inspect(1); //=> '1'
inspectWithKind(1); //=> '1 (number)'
util.inspect('1'); //=> '\'1\''
inspectWithKind('1'); //=> '\'1\' (string)'
// doesn't appends type info, because <Buffer ...> clearly expresses what it is
util.inspect(Buffer.from('1')); //=> '<Buffer 31>'
inspectWithKind(Buffer.from('1')); //=> '<Buffer 31>'
// omits stack trace
util.inspect(new Error('error!')); //=> 'Error: error!\n at repl:1:14\n at ContextifyScript ...'
inspectWithKind(new Error('error!')); //=> 'Error: error!'
This module is useful for making TypeError
error messages in your Node.js library.
const inspectWithKind = require('inspect-with-kind');
module.exports = function reverse(v) {
if (typeof v !== 'boolean') {
throw new TypeError(`Expected a Boolean value, but got ${inspectWithKind(v)}.`);
}
return !v;
};
const reverse = require('./reverse.js');
reverse(/true/); // TypeError: Expected a Boolean value, but got /true/ (regexp).
ISC License © 2017 Shinnosuke Watanabe