grafana/public/app/plugins/datasource/mssql/response_parser.ts

29 lines
892 B
TypeScript
Raw Normal View History

import { uniqBy } from 'lodash';
import { DataFrame, MetricFindValue } from '@grafana/data';
import { ResponseParser } from 'app/features/plugins/sql/types';
export class MSSqlResponseParser implements ResponseParser {
transformMetricFindResponse(frame: DataFrame): MetricFindValue[] {
const values: MetricFindValue[] = [];
const textField = frame.fields.find((f) => f.name === '__text');
const valueField = frame.fields.find((f) => f.name === '__value');
2017-12-02 05:40:12 -06:00
if (textField && valueField) {
for (let i = 0; i < textField.values.length; i++) {
values.push({ text: '' + textField.values.get(i), value: '' + valueField.values.get(i) });
}
} else {
values.push(
...frame.fields
.flatMap((f) => f.values.toArray())
.map((v) => ({
text: v,
}))
);
2017-12-02 05:40:12 -06:00
}
return uniqBy(values, 'text');
2017-12-02 05:40:12 -06:00
}
}