in scripts/dashboard-importer/src/dashboards/converter/template_variables/templating.ts [60:83]
export function interpolateExpression(
expr: string,
templateVariableMap: Map<string, string>,
): Result<string> {
let interpolatedExpr = expr;
// Interpolate global variables and unsupported properties
for (const [key, value] of GLOBAL_VARIABLE_MAP) {
interpolatedExpr = interpolatedExpr.replaceAll(key, value);
}
// Interpolate template variables
for (const [key, value] of templateVariableMap) {
interpolatedExpr = interpolatedExpr.replaceAll(key, value);
}
// Post Processing
// Handle edge case of interval variables being used to denote resolution
interpolatedExpr = interpolatedExpr.replaceAll(
`[$\{__interval}:$\{__interval}]`,
`[$\{__interval}]`,
);
return success(interpolatedExpr);
}