From 933975b680f4ad9d141d0d3cc4991618e5217191 Mon Sep 17 00:00:00 2001 From: Kristina Durivage Date: Sat, 2 Aug 2025 13:19:52 -0500 Subject: [PATCH] Use context.interpolate function --- .../transformers/calculateField.ts | 40 +++++++------------ 1 file changed, 15 insertions(+), 25 deletions(-) diff --git a/packages/grafana-data/src/transformations/transformers/calculateField.ts b/packages/grafana-data/src/transformations/transformers/calculateField.ts index 908e019ff8a..c4e8b335a70 100644 --- a/packages/grafana-data/src/transformations/transformers/calculateField.ts +++ b/packages/grafana-data/src/transformations/transformers/calculateField.ts @@ -259,28 +259,18 @@ export const calculateFieldTransformer: DataTransformerInfo { - if (options.template?.expression !== undefined) { - let newFieldVals: Array; - if (options.template?.replaceFn !== undefined) { - newFieldVals = Array.from({ length: frame.length }, (_, i) => { - const fieldVars: ScopedVars = {}; - frame.fields.forEach((field) => { - fieldVars[field.name] = { - value: field.values[i], - }; - }); - const outVal = options.template?.replaceFn(options.template.expression, fieldVars); - console.log('replacefn exists', i, outVal); - return outVal; + if (options.template?.expression !== undefined) { + return data.map((frame) => { + const newFieldVals = Array.from({ length: frame.length }, (_, i) => { + const fieldVars: ScopedVars = {}; + frame.fields.forEach((field) => { + fieldVars[field.name] = { + value: field.values[i], + }; }); - } else { - console.log('replacefn not exists'); - newFieldVals = Array.from({ length: frame.length }, () => { - return options.template?.expression; - }); - } - console.log('newFieldVals', newFieldVals); + const replaced = ctx.interpolate(options.template!.expression, fieldVars); + return replaced; + }); const f: Field = { name: options.alias ?? 'Field', type: FieldType.string, @@ -291,10 +281,10 @@ export const calculateFieldTransformer: DataTransformerInfo