diff --git a/packages/custom-functions-metadata/src/parseTree.ts b/packages/custom-functions-metadata/src/parseTree.ts index 5ef3c35e7..5161ecacf 100644 --- a/packages/custom-functions-metadata/src/parseTree.ts +++ b/packages/custom-functions-metadata/src/parseTree.ts @@ -35,6 +35,7 @@ export interface IFunctionParameter { name: string; description?: string; type: string; + cellValueType?: string; dimensionality?: string; optional?: boolean; repeating?: boolean; @@ -161,6 +162,19 @@ const CELLVALUETYPE_MAPPINGS = { "Excel.ValueTypeNotAvailableCellValue": "unsupported", }; +const CELLVALUETYPE_TO_BASICTYPE_MAPPINGS = { + "cellvalue": "any", + "booleancellvalue": "boolean", + "doublecellvalue": "number", + "entitycellvalue": "any", + "errorcellvalue": "any", + "formattednumbercellvalue": "number", + "linkedentitycellvalue": "any", + "localimagecellvalue": "any", + "stringcellvalue": "string", + "webimagecellvalue": "any", +}; + type CustomFunctionsSchemaDimensionality = "invalid" | "scalar" | "matrix"; /** @@ -708,6 +722,13 @@ function getParameters(parameterItem: IGetParametersArguments): IFunctionParamet type: ptype, }; + // for backward compatibility, we put cell value type in cellValueType instead of type. + if (Object.values(CELLVALUETYPE_MAPPINGS).includes(ptype)) { + // @ts-ignore + pMetadataItem.type = CELLVALUETYPE_TO_BASICTYPE_MAPPINGS[ptype]; + pMetadataItem.cellValueType = ptype + } + // Only return dimensionality = matrix. Default assumed scalar if (pMetadataItem.dimensionality === "scalar") { delete pMetadataItem.dimensionality; diff --git a/packages/custom-functions-metadata/test/cases/input-parameter-types-cellvalue/expected.json b/packages/custom-functions-metadata/test/cases/input-parameter-types-cellvalue/expected.json index 40c3a334f..f496bfcf0 100644 --- a/packages/custom-functions-metadata/test/cases/input-parameter-types-cellvalue/expected.json +++ b/packages/custom-functions-metadata/test/cases/input-parameter-types-cellvalue/expected.json @@ -8,7 +8,8 @@ "parameters": [ { "name": "x", - "type": "cellvalue" + "type": "any", + "cellValueType": "cellvalue" } ], "result": {} @@ -20,7 +21,8 @@ "parameters": [ { "name": "x", - "type": "booleancellvalue" + "type": "boolean", + "cellValueType": "booleancellvalue" } ], "result": {} @@ -32,7 +34,8 @@ "parameters": [ { "name": "x", - "type": "doublecellvalue" + "type": "number", + "cellValueType": "doublecellvalue" } ], "result": {} @@ -44,7 +47,8 @@ "parameters": [ { "name": "x", - "type": "entitycellvalue" + "type": "any", + "cellValueType": "entitycellvalue" } ], "result": {} @@ -56,7 +60,8 @@ "parameters": [ { "name": "x", - "type": "errorcellvalue" + "type": "any", + "cellValueType": "errorcellvalue" } ], "result": {} @@ -68,7 +73,8 @@ "parameters": [ { "name": "x", - "type": "formattednumbercellvalue" + "type": "number", + "cellValueType": "formattednumbercellvalue" } ], "result": {} @@ -80,7 +86,8 @@ "parameters": [ { "name": "x", - "type": "linkedentitycellvalue" + "type": "any", + "cellValueType": "linkedentitycellvalue" } ], "result": {} @@ -92,7 +99,8 @@ "parameters": [ { "name": "x", - "type": "localimagecellvalue" + "type": "any", + "cellValueType": "localimagecellvalue" } ], "result": {} @@ -104,7 +112,8 @@ "parameters": [ { "name": "x", - "type": "stringcellvalue" + "type": "string", + "cellValueType": "stringcellvalue" } ], "result": {} @@ -116,7 +125,8 @@ "parameters": [ { "name": "x", - "type": "webimagecellvalue" + "type": "any", + "cellValueType": "webimagecellvalue" } ], "result": {} @@ -129,7 +139,8 @@ { "name": "x", "repeating": true, - "type": "booleancellvalue" + "type": "boolean", + "cellValueType": "booleancellvalue" } ], "result": {} @@ -142,7 +153,8 @@ { "dimensionality": "matrix", "name": "x", - "type": "booleancellvalue" + "type": "boolean", + "cellValueType": "booleancellvalue" } ], "result": {} @@ -156,7 +168,8 @@ "dimensionality": "matrix", "name": "x", "repeating": true, - "type": "booleancellvalue" + "type": "boolean", + "cellValueType": "booleancellvalue" } ], "result": {} @@ -169,7 +182,8 @@ { "name": "x", "repeating": true, - "type": "booleancellvalue" + "type": "boolean", + "cellValueType": "booleancellvalue" } ], "result": {} @@ -182,7 +196,8 @@ { "dimensionality": "matrix", "name": "x", - "type": "booleancellvalue" + "type": "boolean", + "cellValueType": "booleancellvalue" } ], "result": {} @@ -196,7 +211,8 @@ "dimensionality": "matrix", "name": "x", "repeating": true, - "type": "booleancellvalue" + "type": "boolean", + "cellValueType": "booleancellvalue" } ], "result": {}