diff --git a/packages/server/src/queue/PredictionQueue.ts b/packages/server/src/queue/PredictionQueue.ts index 46092d657..2b5575712 100644 --- a/packages/server/src/queue/PredictionQueue.ts +++ b/packages/server/src/queue/PredictionQueue.ts @@ -77,11 +77,12 @@ export class PredictionQueue extends BaseQueue { } if (Object.prototype.hasOwnProperty.call(data, 'isExecuteCustomFunction')) { + const executeCustomFunctionData = data as any logger.info(`Executing Custom Function...`) return await executeCustomNodeFunction({ appDataSource: this.appDataSource, componentNodes: this.componentNodes, - data + data: executeCustomFunctionData.data }) } diff --git a/packages/server/src/utils/executeCustomNodeFunction.ts b/packages/server/src/utils/executeCustomNodeFunction.ts index 1695cc17c..a22a0291a 100644 --- a/packages/server/src/utils/executeCustomNodeFunction.ts +++ b/packages/server/src/utils/executeCustomNodeFunction.ts @@ -17,9 +17,10 @@ export const executeCustomNodeFunction = async ({ }) => { try { const body = data - const functionInputVariables = Object.fromEntries( - [...(body?.javascriptFunction ?? '').matchAll(/\$([a-zA-Z0-9_]+)/g)].map((g) => [g[1], undefined]) - ) + const jsFunction = typeof body?.javascriptFunction === 'string' ? body.javascriptFunction : '' + const matches = jsFunction.matchAll(/\$([a-zA-Z0-9_]+)/g) + const matchesArray: RegExpMatchArray[] = Array.from(matches) + const functionInputVariables = Object.fromEntries(matchesArray.map((g) => [g[1], undefined])) if (functionInputVariables && Object.keys(functionInputVariables).length) { for (const key in functionInputVariables) { if (key.includes('vars')) {