mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Debug message formatting mangling brackets
This commit is contained in:
parent
1d10eba0cc
commit
b61a250d58
@ -156,7 +156,9 @@
|
||||
msg:msg
|
||||
});
|
||||
}
|
||||
|
||||
function sanitize(m) {
|
||||
return m.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");
|
||||
}
|
||||
this.handleDebugMessage = function(t,o) {
|
||||
var msg = document.createElement("div");
|
||||
msg.onmouseover = function() {
|
||||
@ -184,15 +186,17 @@
|
||||
}
|
||||
|
||||
};
|
||||
var name = (o.name?o.name:o.id).toString().replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");
|
||||
var topic = (o.topic||"").toString().replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");
|
||||
var property = (o.property?o.property:'').replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");
|
||||
var payload = (o.msg||"()").toString().replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");
|
||||
var typ = payload.substring(0,payload.indexOf(')')+1);
|
||||
payload = payload.substring(payload.indexOf(')')+1);
|
||||
console.log(o);
|
||||
var name = sanitize(((o.name?o.name:o.id)||"").toString());
|
||||
var topic = sanitize((o.topic||"").toString());
|
||||
var property = sanitize(o.property?o.property:'');
|
||||
var payload = sanitize((o.msg||"").toString());
|
||||
var format = sanitize((o.format||"").toString());
|
||||
|
||||
msg.className = 'debug-message'+(o.level?(' debug-message-level-'+o.level):'');
|
||||
msg.innerHTML = '<span class="debug-message-date">'+
|
||||
getTimestamp()+'</span><span class="debug-message-name">['+name+']'+
|
||||
getTimestamp()+'</span>'+
|
||||
(name?'<span class="debug-message-name">['+name+']':'')+
|
||||
'</span>';
|
||||
// NOTE: relying on function error to have a "type" that all other msgs don't
|
||||
if (o.hasOwnProperty("type") && (o.type === "function")) {
|
||||
@ -205,8 +209,11 @@
|
||||
msg.className = 'debug-message debug-message-level-' + errorLvl;
|
||||
msg.innerHTML += '<span class="debug-message-topic">[function] : (' + errorLvlType + ')</span>';
|
||||
} else {
|
||||
msg.innerHTML += '<span class="debug-message-topic">'+(o.topic?topic+' : ':'')+
|
||||
(o.property?'[msg.'+property+']':'[msg]')+" : "+typ+'</span>';
|
||||
msg.innerHTML += '<span class="debug-message-topic">'+
|
||||
(o.topic?topic+' : ':'')+
|
||||
(o.property?'[msg.'+property+']':'[msg]')+" : "+format+
|
||||
|
||||
'</span>';
|
||||
}
|
||||
msg.innerHTML += '<span class="debug-message-payload">'+ payload+ '</span>';
|
||||
var atBottom = (sbc.scrollHeight-messages.offsetHeight-sbc.scrollTop) < 5;
|
||||
|
@ -82,14 +82,18 @@ module.exports = function(RED) {
|
||||
|
||||
function sendDebug(msg) {
|
||||
if (msg.msg instanceof Error) {
|
||||
msg.format = "error";
|
||||
msg.msg = msg.msg.toString();
|
||||
} else if (msg.msg instanceof Buffer) {
|
||||
msg.msg = "(Buffer) "+msg.msg.toString('hex');
|
||||
msg.format = "buffer";
|
||||
msg.msg = msg.msg.toString('hex');
|
||||
} else if (typeof msg.msg === 'object') {
|
||||
var seen = [];
|
||||
var ty = "(Object) ";
|
||||
if (util.isArray(msg.msg)) { ty = "(Array) "; }
|
||||
msg.msg = ty + JSON.stringify(msg.msg, function(key, value) {
|
||||
msg.format = "object";
|
||||
if (util.isArray(msg.msg)) {
|
||||
msg.format = "array";
|
||||
}
|
||||
msg.msg = JSON.stringify(msg.msg, function(key, value) {
|
||||
if (typeof value === 'object' && value !== null) {
|
||||
if (seen.indexOf(value) !== -1) { return "[circular]"; }
|
||||
seen.push(value);
|
||||
@ -98,14 +102,21 @@ module.exports = function(RED) {
|
||||
}," ");
|
||||
seen = null;
|
||||
} else if (typeof msg.msg === "boolean") {
|
||||
msg.msg = "(boolean) "+msg.msg.toString();
|
||||
msg.format = "boolean";
|
||||
msg.msg = msg.msg.toString();
|
||||
} else if (typeof msg.msg === "number") {
|
||||
msg.msg = "(number) "+msg.msg.toString();
|
||||
msg.format = "number";
|
||||
msg.msg = msg.msg.toString();
|
||||
} else if (msg.msg === 0) {
|
||||
msg.format = "number";
|
||||
msg.msg = "0";
|
||||
} else if (msg.msg === null || typeof msg.msg === "undefined") {
|
||||
msg.format = (msg.msg === null)?"null":"undefined";
|
||||
msg.msg = "(undefined)";
|
||||
} else { msg.msg = "(string) "+msg.msg; }
|
||||
} else {
|
||||
msg.format = "string";
|
||||
msg.msg = msg.msg;
|
||||
}
|
||||
|
||||
if (msg.msg.length > debuglength) {
|
||||
msg.msg = msg.msg.substr(0,debuglength) +" ....";
|
||||
|
@ -97,7 +97,7 @@ RED.sidebar.info = (function() {
|
||||
var val = node[n]||"";
|
||||
var type = typeof val;
|
||||
if (type === "string") {
|
||||
if (val.length == 0) {
|
||||
if (val.length === 0) {
|
||||
val += '<span style="font-style: italic; color: #ccc;">blank</span>';
|
||||
} else {
|
||||
if (val.length > 30) {
|
||||
|
@ -21,7 +21,7 @@ var typeRegistry = require("./registry");
|
||||
var credentials = require("./credentials");
|
||||
var redUtil = require("../util");
|
||||
var events = require("../events");
|
||||
var log = require("../log");
|
||||
var Log = require("../log");
|
||||
|
||||
function getID() {
|
||||
return (1+Math.random()*4294967295).toString(16);
|
||||
@ -35,10 +35,15 @@ function createNode(type,config) {
|
||||
nn = new nt(clone(config));
|
||||
}
|
||||
catch (err) {
|
||||
log.warn(type+" : "+err);
|
||||
Log.log({
|
||||
level: Log.ERROR,
|
||||
id:config.id,
|
||||
type: type,
|
||||
msg: err
|
||||
});
|
||||
}
|
||||
} else {
|
||||
log.warn("unknown type: "+type);
|
||||
Log.error("Unknown type: "+type);
|
||||
}
|
||||
return nn;
|
||||
}
|
||||
|
@ -47,8 +47,8 @@ describe('debug node', function() {
|
||||
n1.emit("input", {payload:"test"});
|
||||
}, function(msg) {
|
||||
JSON.parse(msg).should.eql({
|
||||
topic:"debug",data:{id:"n1",name:"Debug",msg:"(string) test",
|
||||
property:"payload"}
|
||||
topic:"debug",data:{id:"n1",name:"Debug",msg:"test",
|
||||
format:"string",property:"payload"}
|
||||
});
|
||||
}, done);
|
||||
});
|
||||
@ -63,7 +63,7 @@ describe('debug node', function() {
|
||||
n1.emit("input", {payload:"test"});
|
||||
}, function(msg) {
|
||||
JSON.parse(msg).should.eql({
|
||||
topic:"debug",data:{id:"n1",msg:"(string) test",property:"payload"}
|
||||
topic:"debug",data:{id:"n1",msg:"test",property:"payload",format:"string"}
|
||||
});
|
||||
count++;
|
||||
}, function() {
|
||||
@ -93,7 +93,7 @@ describe('debug node', function() {
|
||||
}, function(msg) {
|
||||
JSON.parse(msg).should.eql({
|
||||
topic:"debug",
|
||||
data:{id:"n1",msg:'(Object) {\n "payload": "test"\n}'}
|
||||
data:{id:"n1",msg:'{\n "payload": "test"\n}',format:"object"}
|
||||
});
|
||||
}, done);
|
||||
});
|
||||
@ -107,7 +107,7 @@ describe('debug node', function() {
|
||||
n1.emit("input", {payload:"test", foo:"bar"});
|
||||
}, function(msg) {
|
||||
JSON.parse(msg).should.eql({
|
||||
topic:"debug",data:{id:"n1",msg:"(string) bar",property:"foo"}
|
||||
topic:"debug",data:{id:"n1",msg:"bar",property:"foo",format:"string"}
|
||||
});
|
||||
}, done);
|
||||
});
|
||||
@ -121,7 +121,7 @@ describe('debug node', function() {
|
||||
n1.emit("input", {payload:"test", foo: {bar: "bar"}});
|
||||
}, function(msg) {
|
||||
JSON.parse(msg).should.eql({
|
||||
topic:"debug",data:{id:"n1",msg:"(string) bar",property:"foo.bar"}
|
||||
topic:"debug",data:{id:"n1",msg:"bar",property:"foo.bar",format:"string"}
|
||||
});
|
||||
}, done);
|
||||
});
|
||||
@ -135,7 +135,7 @@ describe('debug node', function() {
|
||||
n1.emit("input", {payload: new Error("oops")});
|
||||
}, function(msg) {
|
||||
JSON.parse(msg).should.eql({
|
||||
topic:"debug",data:{id:"n1",msg:"Error: oops",property:"payload"}
|
||||
topic:"debug",data:{id:"n1",msg:"Error: oops",property:"payload",format:"error"}
|
||||
});
|
||||
}, done);
|
||||
});
|
||||
@ -149,7 +149,7 @@ describe('debug node', function() {
|
||||
n1.emit("input", {payload: true});
|
||||
}, function(msg) {
|
||||
JSON.parse(msg).should.eql({
|
||||
topic:"debug",data:{id:"n1",msg: '(boolean) true',property:"payload"}
|
||||
topic:"debug",data:{id:"n1",msg: 'true',property:"payload",format:"boolean"}
|
||||
});
|
||||
}, done);
|
||||
});
|
||||
@ -163,7 +163,7 @@ describe('debug node', function() {
|
||||
n1.emit("input", {});
|
||||
}, function(msg) {
|
||||
JSON.parse(msg).should.eql({
|
||||
topic:"debug",data:{id:"n1",msg: '(undefined)',property:"payload"}
|
||||
topic:"debug",data:{id:"n1",msg: '(undefined)',property:"payload",format:"undefined"}
|
||||
});
|
||||
}, done);
|
||||
});
|
||||
@ -178,7 +178,7 @@ describe('debug node', function() {
|
||||
}, function(msg) {
|
||||
JSON.parse(msg).should.eql({
|
||||
topic:"debug",
|
||||
data:{id:"n1",msg:'(Object) {\n "type": "foo"\n}',property:"payload"}
|
||||
data:{id:"n1",msg:'{\n "type": "foo"\n}',property:"payload",format:"object"}
|
||||
});
|
||||
}, done);
|
||||
});
|
||||
@ -193,7 +193,7 @@ describe('debug node', function() {
|
||||
}, function(msg) {
|
||||
JSON.parse(msg).should.eql({
|
||||
topic:"debug",
|
||||
data:{id:"n1",msg: '(Array) [\n 0,\n 1,\n 2,\n 3\n]',
|
||||
data:{id:"n1",msg: '[\n 0,\n 1,\n 2,\n 3\n]',format:"array",
|
||||
property:"payload"}
|
||||
});
|
||||
}, done);
|
||||
@ -213,8 +213,8 @@ describe('debug node', function() {
|
||||
topic:"debug",
|
||||
data:{
|
||||
id:"n1",
|
||||
msg:'(Object) {\n "name": "bar",\n "o": "[circular]"\n}',
|
||||
property:"payload"
|
||||
msg:'{\n "name": "bar",\n "o": "[circular]"\n}',
|
||||
property:"payload",format:"object"
|
||||
}
|
||||
});
|
||||
}, done);
|
||||
@ -228,12 +228,14 @@ describe('debug node', function() {
|
||||
websocket_test(function() {
|
||||
n1.emit("input", {payload: Array(1002).join("X")});
|
||||
}, function(msg) {
|
||||
JSON.parse(msg).should.eql({
|
||||
var a = JSON.parse(msg);
|
||||
a.should.eql({
|
||||
topic:"debug",
|
||||
data:{
|
||||
id:"n1",
|
||||
msg: "(string) "+Array(992).join("X")+' ....',
|
||||
property:"payload"
|
||||
msg: Array(1001).join("X")+' ....',
|
||||
property:"payload",
|
||||
format:"string"
|
||||
}
|
||||
});
|
||||
}, done);
|
||||
@ -251,8 +253,9 @@ describe('debug node', function() {
|
||||
topic:"debug",
|
||||
data:{
|
||||
id:"n1",
|
||||
msg: '(Buffer) 48454c4c4f',
|
||||
property:"payload"
|
||||
msg: '48454c4c4f',
|
||||
property:"payload",
|
||||
format: "buffer"
|
||||
}
|
||||
});
|
||||
}, done);
|
||||
@ -273,7 +276,7 @@ describe('debug node', function() {
|
||||
});
|
||||
}, function(msg) {
|
||||
JSON.parse(msg).should.eql({
|
||||
topic:"debug",data:{id:"n1",msg:"(string) message 2",property:"payload"}
|
||||
topic:"debug",data:{id:"n1",msg:"message 2",property:"payload",format:"string"}
|
||||
});
|
||||
}, done);
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user