tblobaum / rconsole

"syslog.h" bindings for node.js with a revised console module
MIT License
54 stars 10 forks source link

String error property is set, making error in third party module #2

Open zazabe opened 11 years ago

zazabe commented 11 years ago

String object has a strange behavior when rconsole is present:

$ node
> "toto".error
undefined
> require('rconsole')
> "toto".error
'\u001b[31mtoto\u001b[39m'

I'm using a module making a test on parsed error property, this module is broken because of this strange issue...

consider an API (Mailchimp in some cases) with response like that :

var data = JSON.parse(response);
// failed : data.error = "\u001b[31value\u001b[39m"
// successful : data.error = "error message"

if(data.error){...} //always true

I think the problem is to use https://github.com/Marak/colors.js, with String.prototype extension, but i suspect rconsole to do the same by setting error property on objects.

Is it smell not good or I miss something ?

chrisdew commented 11 years ago

+1, I've also been bitten by this. I had a variable which either referred to a string or an object with an 'error' property. I was unable to simply check that thing.error was non-false.