Fix: Javascript node error logs (#14)

In some cases the error is a string, and when logging it will write "undefined" into the console instead of providing a useful error message.
This commit is contained in:
Eric Tuvesson
2024-05-09 14:09:37 +02:00
committed by Richard Osborne
parent 908ad18451
commit 62d545d4f9
3 changed files with 27 additions and 10 deletions

View File

@@ -1,4 +1,5 @@
const JavascriptNodeParser = require('../../javascriptnodeparser');
const { logJavaScriptNodeError } = require('../../utils');
const SimpleJavascriptNode = {
name: 'JavaScriptFunction',
@@ -139,11 +140,8 @@ const SimpleJavascriptNode = {
JavascriptNodeParser.getComponentScopeForNode(this)
]);
} catch (e) {
console.log(
'Error in JS node run code.',
Object.getPrototypeOf(e).constructor.name + ': ' + e.message,
e.stack
);
logJavaScriptNodeError(e);
if (this.context.editorConnection && this.context.isWarningTypeEnabled('javascriptExecution')) {
this.context.editorConnection.sendWarning(
this.nodeScope.componentOwner.name,

View File

@@ -12,6 +12,24 @@ function getAbsoluteUrl(_url) {
return (Noodl.baseUrl || '/') + url;
}
/**
* Log an error thrown by the JavaScript nodes.
*
* @param {any} error
*/
function logJavaScriptNodeError(error) {
if (typeof error === 'string') {
console.log('Error in JS node run code.', error);
} else {
console.log(
'Error in JS node run code.',
Object.getPrototypeOf(error).constructor.name + ': ' + error.message,
error.stack
);
}
}
module.exports = {
getAbsoluteUrl
getAbsoluteUrl,
logJavaScriptNodeError
};