Uh oh!
There was an error while loading. Please reload this page.
util: add inspect.defaultOptions - #8013
Conversation
There was a problem hiding this comment.
Perhaps a defaultOptions setter/getter would be better here? Something like...
util.inspect.defaultOptions=options;// or even...util.inspect.defaultOptions.maxArrayLength=1000;There was a problem hiding this comment.
Hmm, I think it might be possible to make them plain properties. Would save some time having to compute the getter/setter names at least.
jasnell
commented
Aug 8, 2016
I'm generally +1 on having this, but prefer making it a getter/setter rather than a method. |
There was a problem hiding this comment.
Right, null is an issue. How about a strict object check instead?
if(Object.prototype.toString.call(options)==='[object Object]'){There was a problem hiding this comment.
In other places in core, I believe we've just been doing options === null || typeof options !== 'object'
silverwind
commented
Aug 8, 2016
Thanks for review. What's the general consensus on |
cjihrig
commented
Aug 8, 2016
Last I heard, we were still preferring |
jbergstroem
commented
Aug 8, 2016
Windows fail looks unrelated (Jenkins -- connection aborted) |
Also, not sure what's up with the linter on CI:
|
silverwind
commented
Aug 8, 2016
Nevermind, there's some lint errors. Fixing them. |
Updated to use the
|
jasnell
commented
Aug 8, 2016
Using a getter/setter would help protect against things like I'm not convinced that sealing the object is necessary but it's likely harmless. |
silverwind
commented
Aug 8, 2016
@jasnell Sealing for example prevents Supporting both |
@jasnell I've switched to accessors now. The solution turned out shorter than I thought and should satisfy all cases. I'd like to keep the properties sealed to prevent some misuse like deleting, and so I can |
silverwind
commented
Aug 8, 2016
jasnell
commented
Aug 8, 2016
LGTM with a nit if CI is green. |
There was a problem hiding this comment.
Tiny nit, but could you capitalize "set" here and in the comment below.
cjihrig
commented
Aug 8, 2016
LGTM pending CI. |
silverwind
commented
Aug 8, 2016
CI is green except a hanging Windows box. Giving this PR a bit of time for others to weight in. |
There was a problem hiding this comment.
Since this is a property and not a function, it doesn't really "return" anything, right? It just is a value. I'd be inclined to delete the line entirely. I don't think it actually adds any information. (I also think it's misleading. If you don't set it, it's undefined and not an object.)
There was a problem hiding this comment.
(Whoops, the parenthetical is wrong, ignore it. Also, uh, yeah, looks like I'm commenting on an out-of-date diff. SMH. Sorry.)
evanlucas
commented
Aug 9, 2016
LGTM with Trott's nit fixed |
silverwind
commented
Aug 9, 2016
Nit addressed. One more CI: https://ci.nodejs.org/job/node-test-pull-request/3589/ |
jasnell
commented
Aug 9, 2016
still LGTM :-) |
Noticed a bug where the REPL module called to util.inspect(obj,undefined,undefined,true)The One last CI:
|
jasnell
commented
Aug 9, 2016
oh, good catch @silverwind |
Adds util.inspect.defaultOptions which allows customization of the default util.inspect options, which is useful for functions like console.log or util.format which implicitly call into util.inspect. PR-URL: nodejs#8013Fixes: nodejs#7566 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Evan Lucas <evanlucas@me.com>
Adds util.inspect.defaultOptions which allows customization of the default util.inspect options, which is useful for functions like console.log or util.format which implicitly call into util.inspect. PR-URL: #8013Fixes: #7566 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Evan Lucas <evanlucas@me.com>
Adds util.inspect.defaultOptions which allows customization of the default util.inspect options, which is useful for functions like console.log or util.format which implicitly call into util.inspect. PR-URL: #8013Fixes: #7566 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Evan Lucas <evanlucas@me.com>
silverwind
commented
Aug 9, 2016
There was a silly typo in the error message. I |
Adds util.inspect.defaultOptions which allows customization of the default util.inspect options, which is useful for functions like console.log or util.format which implicitly call into util.inspect. PR-URL: #8013Fixes: #7566 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Evan Lucas <evanlucas@me.com>
Notable changes: * build: zlib symbols and additional OpenSSL symbols are now exposed on Windows platforms. (Alex Hultman) #7983 and #7576 * child_process, cluster: Forked child processes and cluster workers now support stdio configuration. (Colin Ihrig) #7811 and #7838 * fs: fs.ReadStream now exposes the number of bytes it has read so far. (Linus Unnebäck) #7942 * repl: The REPL now supports editor mode. (Prince J Wesley) #7275 * util: inspect() can now be configured globally using util.inspect.defaultOptions. (Roman Reiss) #8013 Refs: #8020 PR-URL: #8070
Notable changes: * build: zlib symbols and additional OpenSSL symbols are now exposed on Windows platforms. (Alex Hultman) #7983 and #7576 * child_process, cluster: Forked child processes and cluster workers now support stdio configuration. (Colin Ihrig) #7811 and #7838 * child_process: argv[0] can now be set to arbitrary values in spawned processes. (Pat Pannuto) #7696 * fs: fs.ReadStream now exposes the number of bytes it has read so far. (Linus Unnebäck) #7942 * repl: The REPL now supports editor mode. (Prince J Wesley) #7275 * util: inspect() can now be configured globally using util.inspect.defaultOptions. (Roman Reiss) #8013 Refs: #8020 PR-URL: #8070
Notable changes: * build: zlib symbols and additional OpenSSL symbols are now exposed on Windows platforms. (Alex Hultman) #7983 and #7576 * child_process, cluster: Forked child processes and cluster workers now support stdio configuration. (Colin Ihrig) #7811 and #7838 * child_process: argv[0] can now be set to arbitrary values in spawned processes. (Pat Pannuto) #7696 * fs: fs.ReadStream now exposes the number of bytes it has read so far. (Linus Unnebäck) #7942 * repl: The REPL now supports editor mode. (Prince J Wesley) #7275 * util: inspect() can now be configured globally using util.inspect.defaultOptions. (Roman Reiss) #8013 Refs: #8020 PR-URL: #8070
Notable changes: * build: zlib symbols and additional OpenSSL symbols are now exposed on Windows platforms. (Alex Hultman) nodejs#7983 and nodejs#7576 * child_process, cluster: Forked child processes and cluster workers now support stdio configuration. (Colin Ihrig) nodejs#7811 and nodejs#7838 * child_process: argv[0] can now be set to arbitrary values in spawned processes. (Pat Pannuto) nodejs#7696 * fs: fs.ReadStream now exposes the number of bytes it has read so far. (Linus Unnebäck) nodejs#7942 * repl: The REPL now supports editor mode. (Prince J Wesley) nodejs#7275 * util: inspect() can now be configured globally using util.inspect.defaultOptions. (Roman Reiss) nodejs#8013 Refs: nodejs#8020 PR-URL: nodejs#8070
Checklist
make -j4 test(UNIX), orvcbuild test nosign(Windows) passesAffected core subsystem(s)
util
Description of change
Adds the
util.inspect.config()method to allow customization of inspect options in cases whereutil.inspect()is implicitly called by core like inconsoleorutil.format.Fixes: #7566