-
Notifications
You must be signed in to change notification settings - Fork 59
/
Copy pathdatasource.ts
33 lines (29 loc) · 986 Bytes
/
datasource.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import { CoreApp, DataSourceInstanceSettings } from '@grafana/data';
import { MyQuery, MyDataSourceOptions, MyQueryDeprecated } from './types';
import { DataSourceWithBackend } from '@grafana/runtime';
import { omit } from 'lodash';
export class DataSource extends DataSourceWithBackend<MyQuery, MyDataSourceOptions> {
constructor(instanceSettings: DataSourceInstanceSettings<MyDataSourceOptions>) {
super(instanceSettings);
}
getDefaultQuery(_: CoreApp): Partial<MyQuery> {
return { multiply: 1 };
}
migrateQuery(query: MyQuery | MyQueryDeprecated): MyQuery {
if (query.datasource?.apiVersion !== 'v0alpha1') {
// Unkown version
return query as MyQuery;
}
if ('multiply' in query) {
return query;
}
if ('multiplier' in query) {
const migrated: MyQuery = {
...query,
multiply: query.multiplier,
};
return omit(migrated, 'multiplier');
}
throw new Error('Unknown query format');
}
}