Files
grafana/public/app/features/explore/utils/queries.ts
2023-06-06 15:31:39 +01:00

33 lines
715 B
TypeScript

import { DataQuery } from '@grafana/schema';
import { getNextRefIdChar } from 'app/core/utils/query';
/**
* Makes sure all the queries have unique (and valid) refIds
*/
export function withUniqueRefIds(queries: DataQuery[]): DataQuery[] {
const refIds = new Set<string>(queries.map((query) => query.refId).filter(Boolean));
if (refIds.size === queries.length) {
return queries;
}
refIds.clear();
return queries.map((query) => {
if (query.refId && !refIds.has(query.refId)) {
refIds.add(query.refId);
return query;
}
const refId = getNextRefIdChar(queries);
refIds.add(refId);
const newQuery = {
...query,
refId,
};
return newQuery;
});
}