From f61328af2dfb43886d0be2009598b27726f6881f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=A4ggmark?= Date: Wed, 12 May 2021 08:28:24 +0200 Subject: [PATCH] Variables: Filters out builtin variables from unknown list (#33933) --- public/app/features/variables/inspect/utils.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/public/app/features/variables/inspect/utils.ts b/public/app/features/variables/inspect/utils.ts index 7f081187a05..c25a3f547cd 100644 --- a/public/app/features/variables/inspect/utils.ts +++ b/public/app/features/variables/inspect/utils.ts @@ -3,7 +3,7 @@ import { DashboardModel } from '../../dashboard/state'; import { isAdHoc } from '../guard'; import { safeStringifyValue } from '../../../core/utils/explore'; import { VariableModel } from '../types'; -import { containsVariable, variableRegex } from '../utils'; +import { containsVariable, variableRegex, variableRegexExec } from '../utils'; export interface GraphNode { id: string; @@ -50,8 +50,7 @@ export const createDependencyEdges = (variables: VariableModel[]): GraphEdge[] = }; function getVariableName(expression: string) { - variableRegex.lastIndex = 0; - const match = variableRegex.exec(expression); + const match = variableRegexExec(expression); if (!match) { return null; } @@ -60,6 +59,7 @@ function getVariableName(expression: string) { } export const getUnknownVariableStrings = (variables: VariableModel[], model: any) => { + variableRegex.lastIndex = 0; const unknownVariableNames: string[] = []; const modelAsString = safeStringifyValue(model, 2); const matches = modelAsString.match(variableRegex); @@ -78,6 +78,11 @@ export const getUnknownVariableStrings = (variables: VariableModel[], model: any continue; } + if (match.indexOf('${__') !== -1) { + // ignore builtin variables + continue; + } + if (match.indexOf('$hashKey') !== -1) { // ignore Angular props continue;