Fixed: throws non-intuitive error on color.red(null) but not on colors.red(undefined) (#261)

This commit is contained in:
Josh Weinstein 2019-09-22 16:10:31 -07:00 committed by David Hyde
parent aa012aab59
commit 5d9eb90263
4 changed files with 11 additions and 4 deletions

View File

@ -105,8 +105,8 @@ function applyStyle() {
var args = Array.prototype.slice.call(arguments);
var str = args.map(function(arg) {
// Use weak equality check so we can colorize null in safe mode
if (arg != undefined && arg.constructor === String) {
// Use weak equality check so we can colorize null/undefined in safe mode
if (arg != null && arg.constructor === String) {
return arg;
} else {
return util.inspect(arg);

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "colors",
"version": "1.3.3",
"version": "1.3.4",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@ -1,7 +1,7 @@
{
"name": "colors",
"description": "get colors in your node.js console",
"version": "1.3.3",
"version": "1.3.4",
"author": "Marak Squires",
"contributors": [
{

View File

@ -66,3 +66,10 @@ colors.setTheme({custom: ['red', 'italic', 'inverse']});
assert.equal(colors.custom(s),
'\x1b[7m' + '\x1b[3m' + '\x1b[31m' + s +
'\x1b[39m' + '\x1b[23m' + '\x1b[27m' );
// should not throw error on null or undefined values
var undef;
assert.equal(colors.yellow(undef), '\x1b[33mundefined\x1b[39m');
// was failing:
assert.equal(colors.red(null), '\x1b[31mnull\x1b[39m');