@glenjamin/inspect-x
v1.0.0
Published
An implementation of node's ES6 inspect module. (ES5 compat fork)
Downloads
3
Maintainers
Readme
@glenjamin/inspect-x
An implementation of node's ES6 inspect module.
This is a friendly fork which adds ES5 support without requiring ES6 shims. If you do not require ES5 support, you should use the original.
Return a string representation of object, which is useful for debugging. An optional options object may be passed that alters certain aspects of the fmtted string:
- showHidden - if true then the object's non-enumerable and symbol properties will be shown too. Defaults to false.
- depth - tells inspect how many times to recurse while fmtting the object. This is useful for inspecting large complicated objects. Defaults to 2. To make it recurse indefinitely pass null.
- colors - if true, then the out will be styled with ANSI color codes. Defaults to false. Colors are customizable, see below.
- customInspect - if false, then custom inspect(depth, opts) functions defined on the objects being inspected won't be called. Defaults to true.
The inspect.styles
is a map assigning each style a color
from inspect.colors
. Highlighted styles and their default values are:
- number (yellow)
- boolean (yellow)
- string (green)
- date (magenta)
- regexp (red)
- null (bold)
- undefined (grey)
- special - only function at this time (cyan)
- name (intentionally no styling)
Predefined color codes are:
- white
- grey
- black
- blue
- cyan
- green
- magenta
- red
- yellow.
There are also:
- bold
- italic
- underline
- inverse
You may also return another Object entirely, and the returned String will be fmtted according to the returned Object. This is similar to how JSON.stringify() works.
es5-sham.js
monkey-patches other ES5 methods as closely as possible.
For these methods, as closely as possible to ES5 is not very close.
Many of these shams are intended only to allow code to be written to ES5
without causing run-time errors in older engines. In many cases,
this means that these shams cause many ES5 methods to silently fail.
Decide carefully whether this is what you want. Note: es5-sham.js requires
es5-shim.js to be able to work properly.
json3.js
monkey-patches the EcmaScript 5 JSON implimentation faithfully.
es6.shim.js
provides compatibility shims so that legacy JavaScript engines
behave as closely as possible to ECMAScript 6 (Harmony).
See: https://nodejs.org/api/util.html#util_util_inspect_object_options
Version: 1.0.0
Author: Xotic750 [email protected]
License: MIT
Copyright: Xotic750
Example
var util = require('@glenjamin/inspect-x5');
var obj = { name: 'nate' };
obj.inspect = function(depth) {
return '{' + this.name + '}';
};
inspect(obj);
// "{nate}"
var obj = { foo: 'this will not show up in the inspect() out' };
obj.inspect = function(depth) {
return { bar: 'baz' };
};
inspect(obj);
// "{ bar: 'baz' }"
module.exports
⇒ string ⏏
Echos the value of a value. Trys to print the value out
in the best way possible given the different types.
Values may supply their own custom inspect(depth, opts)
functions,
when called they receive the current depth in the recursive inspection,
as well as the options object passed to inspect
.
Kind: Exported member
Returns: string - The string representation.
| Param | Type | Description | | --- | --- | --- | | obj | Object | The object to print out. | | [opts] | Object | Options object that alters the out. |
Example
var inspect = require('inspect-x');
console.log(inspect(inspect, { showHidden: true, depth: null }));
//{ [Function: inspect]
// [length]: 2,
// [name]: 'inspect',
// [prototype]: inspect { [constructor]: [Circular] },
// [colors]:
// { [bold]: [ 1, 22, [length]: 2 ],
// [italic]: [ 3, 23, [length]: 2 ],
// [underline]: [ 4, 24, [length]: 2 ],
// [inverse]: [ 7, 27, [length]: 2 ],
// [white]: [ 37, 39, [length]: 2 ],
// [grey]: [ 90, 39, [length]: 2 ],
// [black]: [ 30, 39, [length]: 2 ],
// [blue]: [ 34, 39, [length]: 2 ],
// [cyan]: [ 36, 39, [length]: 2 ],
// [green]: [ 32, 39, [length]: 2 ],
// [magenta]: [ 35, 39, [length]: 2 ],
// [red]: [ 31, 39, [length]: 2 ],
// [yellow]: [ 33, 39, [length]: 2 ] },
// [styles]:
// { [special]: 'cyan',
// [number]: 'yellow',
// [boolean]: 'yellow',
// [undefined]: 'grey',
// [null]: 'bold',
// [string]: 'green',
// [symbol]: 'green',
// [date]: 'magenta',
// [regexp]: 'red' } }