Variables: Filters out builtin variables from unknown list (#33933)

This commit is contained in:
Hugo Häggmark
2021-05-12 08:28:24 +02:00
committed by GitHub
parent 8fe7da5183
commit f61328af2d

View File

@@ -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;