From decd81d30819f64bc392ee573c814ce068932b08 Mon Sep 17 00:00:00 2001 From: Pranav C Date: Fri, 22 Dec 2023 08:10:03 +0000 Subject: [PATCH] fix: validation error message missing field name and type --- packages/nocodb-sdk/src/lib/formulaHelpers.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/nocodb-sdk/src/lib/formulaHelpers.ts b/packages/nocodb-sdk/src/lib/formulaHelpers.ts index c426c7d643..01b7e369ef 100644 --- a/packages/nocodb-sdk/src/lib/formulaHelpers.ts +++ b/packages/nocodb-sdk/src/lib/formulaHelpers.ts @@ -1427,7 +1427,10 @@ export async function validateFormulaAndExtractTreeWithType({ if (parsedTree.type === JSEPNode.CALL_EXP) { const calleeName = parsedTree.callee.name.toUpperCase(); // validate function name - if (!formulas[calleeName] || sqlUI?.getUnsupportedFnList().includes(calleeName)) { + if ( + !formulas[calleeName] || + sqlUI?.getUnsupportedFnList().includes(calleeName) + ) { throw new FormulaError( FormulaErrorType.INVALID_FUNCTION_NAME, {}, @@ -1504,15 +1507,20 @@ export async function validateFormulaAndExtractTreeWithType({ argPt.dataType !== FormulaDataTypes.UNKNOWN ) { if (argPt.type === JSEPNode.IDENTIFIER) { + const name = + columns?.find( + (c) => c.id === argPt.name || c.title === argPt.name + )?.title || argPt.name; + throw new FormulaError( FormulaErrorType.INVALID_ARG, { key: 'msg.formula.columnWithTypeFoundButExpected', - columnName: parsedTree.name, - columnType: parsedTree.dataType, + columnName: name, + columnType: argPt.dataType, expectedType: expectedArgType, }, - `Field ${parsedTree.name} with ${parsedTree.dataType} type is found but ${expectedArgType} type is expected` + `Field ${name} with ${argPt.dataType} type is found but ${expectedArgType} type is expected` ); } else { let key = '',