mirror of
https://github.com/nodejs/node.git
synced 2025-08-15 13:48:44 +02:00
console: allow options
object as constructor arg
PR-URL: https://github.com/nodejs/node/pull/19372 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
65765989d3
commit
ce58df58d0
2 changed files with 32 additions and 12 deletions
|
@ -51,16 +51,28 @@ const {
|
|||
// Track amount of indentation required via `console.group()`.
|
||||
const kGroupIndent = Symbol('groupIndent');
|
||||
|
||||
function Console(stdout, stderr, ignoreErrors = true) {
|
||||
function Console(options /* or: stdout, stderr, ignoreErrors = true */) {
|
||||
if (!(this instanceof Console)) {
|
||||
return new Console(stdout, stderr, ignoreErrors);
|
||||
return new Console(...arguments);
|
||||
}
|
||||
|
||||
let stdout, stderr, ignoreErrors;
|
||||
if (options && typeof options.write !== 'function') {
|
||||
({
|
||||
stdout,
|
||||
stderr = stdout,
|
||||
ignoreErrors = true
|
||||
} = options);
|
||||
} else {
|
||||
stdout = options;
|
||||
stderr = arguments[1];
|
||||
ignoreErrors = arguments[2] === undefined ? true : arguments[2];
|
||||
}
|
||||
|
||||
if (!stdout || typeof stdout.write !== 'function') {
|
||||
throw new ERR_CONSOLE_WRITABLE_STREAM('stdout');
|
||||
}
|
||||
if (!stderr) {
|
||||
stderr = stdout;
|
||||
} else if (typeof stderr.write !== 'function') {
|
||||
if (!stderr || typeof stderr.write !== 'function') {
|
||||
throw new ERR_CONSOLE_WRITABLE_STREAM('stderr');
|
||||
}
|
||||
|
||||
|
@ -369,7 +381,10 @@ Console.prototype.table = function(tabularData, properties) {
|
|||
return final(keys, values);
|
||||
};
|
||||
|
||||
module.exports = new Console(process.stdout, process.stderr);
|
||||
module.exports = new Console({
|
||||
stdout: process.stdout,
|
||||
stderr: process.stderr
|
||||
});
|
||||
module.exports.Console = Console;
|
||||
|
||||
function noop() {}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue