mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
33 lines
715 B
TypeScript
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;
|
|
});
|
|
}
|