From 04a7c9dbf72227a11a0782384e0344358b18e3e0 Mon Sep 17 00:00:00 2001 From: Steve Walsh Date: Mon, 13 Nov 2023 10:25:50 +0000 Subject: [PATCH] undefined fix, plus extra cater for error now --- nodes/core/core/80-function.js | 38 +++++++++++++++++++++------------- package-lock.json | 2 +- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/nodes/core/core/80-function.js b/nodes/core/core/80-function.js index d74d0ef9f..3e16172e5 100644 --- a/nodes/core/core/80-function.js +++ b/nodes/core/core/80-function.js @@ -233,7 +233,7 @@ module.exports = function (RED) { const result = vm2Instance.run(functionText); const afterVm2 = process.hrtime(beforeVm2); payloadValidator.verify(result); - sendResults(this, msg._msgid, result); + sendResults(this, msg._msgid, msg); const logger = clone(msg.logger); let lambdaRequestId; let { @@ -252,28 +252,26 @@ module.exports = function (RED) { } = RED; if (codefile) { + workerId = workerId.split(":::")[0]; + const nodeId = this.id.split(`${organization}-${workerId}-`)[1]; try { const messageToSend = clone(msg); delete messageToSend.logger; const beforeCodefile = process.hrtime(); const { - result: { - Result: { msg: responseMessage }, + payload: { + result, + error }, - } = await codefile.run({ srcCode: this.func, context: { msg } }); + requestId + } = await codefile.run({ srcCode: this.func, context: { msg } }); + const afterCodefile = process.hrtime(beforeCodefile); - responseMessage.logger = logger; - payloadValidator.verify(responseMessage); - // to make function node return result from code file uncomment this line, and comment out the sendResults above - // sendResults(this,msg._msgid, responseMessage); - - workerId = workerId.split(":::")[0]; - const nodeId = this.id.split(`${organization}-${workerId}-`)[1]; - lambdaRequestId = responseMessage.lambdaRequestId; const metrics = { lambdaRequestId: requestId, + action:'codefile-success', organization, workerId: workerId, nodeId: nodeId, @@ -287,12 +285,24 @@ module.exports = function (RED) { ) / 100 }ms`, }; + if(result){ + // not required right now since we dont go via this path + // const responseMessage = result.msg + // responseMessage.logger = logger; + // payloadValidator.verify(responseMessage); + // sendResults(this,msg._msgid, responseMessage); + } + else{ + metrics.error = error; + metrics.action = 'codefile-error'; + } logger.info(JSON.stringify(metrics, null, 2)); } catch (e) { + logger.error(e) logger.error({ message: "Error running codefile", - error: e, - lambdaRequestId, + action:'codefile-error', + error: e.message, organization, workerId: workerId, nodeId: nodeId, diff --git a/package-lock.json b/package-lock.json index d30a928d8..8a828aab7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@servisbot/node-red", - "version": "0.18.7-patch-11", + "version": "0.18.7-patch-12", "lockfileVersion": 1, "requires": true, "dependencies": {