[DEBUG] More descriptive event reporting
This patch improves DEBUG reporting so that circular event arguments are shown with some information.
This commit is contained in:
parent
0f3a0dcbfc
commit
adf35952fc
@ -158,19 +158,24 @@ class Helper {
|
|||||||
* @return {string}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
function stringifyArgument(arg) {
|
function stringifyArgument(arg) {
|
||||||
if (typeof arg !== 'function') {
|
if (Helper.isString(arg) || Helper.isNumber(arg) || !arg)
|
||||||
try {
|
|
||||||
return JSON.stringify(arg);
|
return JSON.stringify(arg);
|
||||||
} catch (e) {
|
if (typeof arg === 'function') {
|
||||||
// The object was recursive
|
|
||||||
return arg.toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let text = arg.toString().split('\n').map(line => line.trim()).join('');
|
let text = arg.toString().split('\n').map(line => line.trim()).join('');
|
||||||
if (text.length > 20)
|
if (text.length > 20)
|
||||||
text = text.substring(0, 20) + '…';
|
text = text.substring(0, 20) + '…';
|
||||||
return `"${text}"`;
|
return `"${text}"`;
|
||||||
}
|
}
|
||||||
|
const state = {};
|
||||||
|
const keys = Object.keys(arg);
|
||||||
|
for (let key of keys) {
|
||||||
|
const value = arg[key];
|
||||||
|
if (Helper.isString(value) || Helper.isNumber(value))
|
||||||
|
state[key] = JSON.stringify(value);
|
||||||
|
}
|
||||||
|
const name = arg.constructor.name === 'Object' ? '' : arg.constructor.name;
|
||||||
|
return name + JSON.stringify(state);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user