mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
util: deprecate obj.inspect for custom inspection
The existence of `obj.inspect()` for custom inspection can cause people to unintentionally break `console.log()` and friends. This is a documentation-only deprecation that can hopefully land in 8.x. PR-URL: https://github.com/nodejs/node/pull/15631 Refs: https://github.com/nodejs/node/issues/15549 Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
committed by
Ruben Bridgewater
parent
7f0183e6c3
commit
c09c04fc5c
@@ -700,6 +700,16 @@ Type: Runtime
|
||||
|
||||
`REPLServer.turnOffEditorMode()` was removed from userland visibility.
|
||||
|
||||
<a id="DEP0079"></a>
|
||||
### DEP0079: Custom inspection function on Objects via .inspect()
|
||||
|
||||
Type: Documentation-only
|
||||
|
||||
Using a property named `inspect` on an object to specify a custom inspection
|
||||
function for [`util.inspect()`][] is deprecated. Use [`util.inspect.custom`][]
|
||||
instead. For backwards compatibility with Node.js prior to version 6.4.0, both
|
||||
may be specified.
|
||||
|
||||
[`Buffer.allocUnsafeSlow(size)`]: buffer.html#buffer_class_method_buffer_allocunsafeslow_size
|
||||
[`Buffer.from(array)`]: buffer.html#buffer_class_method_buffer_from_array
|
||||
[`Buffer.from(buffer)`]: buffer.html#buffer_class_method_buffer_from_buffer
|
||||
@@ -738,6 +748,8 @@ Type: Runtime
|
||||
[`util._extend()`]: util.html#util_util_extend_target_source
|
||||
[`util.debug()`]: util.html#util_util_debug_string
|
||||
[`util.error()`]: util.html#util_util_error_strings
|
||||
[`util.inspect()`]: util.html#util_util_inspect_object_options
|
||||
[`util.inspect.custom`]: util.html#util_util_inspect_custom
|
||||
[`util.isArray()`]: util.html#util_util_isarray_object
|
||||
[`util.isBoolean()`]: util.html#util_util_isboolean_object
|
||||
[`util.isBuffer()`]: util.html#util_util_isbuffer_object
|
||||
|
||||
@@ -377,8 +377,8 @@ terminals.
|
||||
<!-- type=misc -->
|
||||
|
||||
Objects may also define their own `[util.inspect.custom](depth, opts)`
|
||||
(or, equivalently `inspect(depth, opts)`) function that `util.inspect()` will
|
||||
invoke and use the result of when inspecting the object:
|
||||
(or the equivalent but deprecated `inspect(depth, opts)`) function that
|
||||
`util.inspect()` will invoke and use the result of when inspecting the object:
|
||||
|
||||
```js
|
||||
const util = require('util');
|
||||
@@ -388,7 +388,7 @@ class Box {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
inspect(depth, options) {
|
||||
[util.inspect.custom](depth, options) {
|
||||
if (depth < 0) {
|
||||
return options.stylize('[Box]', 'special');
|
||||
}
|
||||
@@ -427,21 +427,6 @@ util.inspect(obj);
|
||||
// Returns: "{ bar: 'baz' }"
|
||||
```
|
||||
|
||||
A custom inspection method can alternatively be provided by exposing
|
||||
an `inspect(depth, opts)` method on the object:
|
||||
|
||||
```js
|
||||
const util = require('util');
|
||||
|
||||
const obj = { foo: 'this will not show up in the inspect() output' };
|
||||
obj.inspect = function(depth) {
|
||||
return { bar: 'baz' };
|
||||
};
|
||||
|
||||
util.inspect(obj);
|
||||
// Returns: "{ bar: 'baz' }"
|
||||
```
|
||||
|
||||
### util.inspect.custom
|
||||
<!-- YAML
|
||||
added: v6.6.0
|
||||
|
||||
Reference in New Issue
Block a user