feat: Add util to convert snapshotData to PanelData

This commit is contained in:
Johannes Schill
2019-02-07 21:31:05 +01:00
parent c4b2dcefbe
commit 3f64d61fd2

View File

@@ -4,7 +4,8 @@ import store from 'app/core/store';
// Models
import { DashboardModel } from 'app/features/dashboard/state/DashboardModel';
import { PanelModel } from 'app/features/dashboard/state/PanelModel';
import { TimeRange } from '@grafana/ui';
import { PanelData, TimeRange, TimeSeries } from '@grafana/ui';
import { TableData } from '@grafana/ui/src';
// Utils
import { isString as _isString } from 'lodash';
@@ -168,3 +169,19 @@ export function getResolution(panel: PanelModel): number {
return panel.maxDataPoints ? panel.maxDataPoints : Math.ceil(width * (panel.gridPos.w / 24));
}
const isTimeSeries = (data: any): data is TimeSeries => data && data.hasOwnProperty('datapoints');
const isTableData = (data: any): data is TableData => data && data.hasOwnProperty('columns');
export const snapshotDataToPanelData = (panel: PanelModel): PanelData => {
const snapshotData = panel.snapshotData;
if (isTimeSeries(snapshotData[0])) {
return {
timeSeries: snapshotData
} as PanelData;
} else if (isTableData(snapshotData[0])) {
return {
tableData: snapshotData[0]
} as PanelData;
}
throw new Error('snapshotData is invalid:' + snapshotData.toString());
};