From febb9e71688cba94e2005d2401efc08f9b0b1ec5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Thu, 17 Jan 2019 17:59:47 +0100 Subject: [PATCH] Moved data source and data query types --- .../grafana-ui/src/types/datasource.ts | 4 ++- packages/grafana-ui/src/types/index.ts | 1 + public/app/core/utils/explore.ts | 11 +++--- .../features/dashboard/dashgrid/DataPanel.tsx | 3 +- .../dashboard/panel_editor/QueriesTab.tsx | 3 +- .../dashboard/panel_editor/QueryEditorRow.tsx | 2 +- public/app/features/dashboard/panel_model.ts | 7 ++-- public/app/features/explore/Explore.tsx | 35 +++++++++++-------- public/app/features/explore/QueryEditor.tsx | 10 ++++-- public/app/features/explore/QueryRow.tsx | 18 ++++++---- public/app/features/explore/QueryRows.tsx | 12 ++++--- .../app/features/explore/state/actionTypes.ts | 5 ++- public/app/features/explore/state/actions.ts | 3 +- public/app/features/explore/state/reducers.ts | 2 +- public/app/features/plugins/datasource_srv.ts | 2 +- .../loki/components/LokiQueryField.tsx | 2 +- .../app/plugins/datasource/loki/datasource.ts | 3 +- .../datasource/loki/language_provider.ts | 2 +- .../prometheus/components/PromQueryField.tsx | 2 +- .../datasource/prometheus/datasource.ts | 2 +- public/app/types/explore.ts | 4 +-- public/app/types/index.ts | 1 - 22 files changed, 78 insertions(+), 56 deletions(-) rename public/app/types/series.ts => packages/grafana-ui/src/types/datasource.ts (87%) diff --git a/public/app/types/series.ts b/packages/grafana-ui/src/types/datasource.ts similarity index 87% rename from public/app/types/series.ts rename to packages/grafana-ui/src/types/datasource.ts index 2958ddbaa20..13a41f94cb5 100644 --- a/public/app/types/series.ts +++ b/packages/grafana-ui/src/types/datasource.ts @@ -1,4 +1,6 @@ -import { TimeSeries, TimeRange, RawTimeRange, PluginExports, PluginMeta } from '@grafana/ui/src/types'; +import { TimeRange, RawTimeRange } from './time'; +import { TimeSeries } from './series'; +import { PluginExports, PluginMeta } from './plugin'; export interface DataQueryResponse { data: TimeSeries[]; diff --git a/packages/grafana-ui/src/types/index.ts b/packages/grafana-ui/src/types/index.ts index 7d8fabeb092..eaa39fb080b 100644 --- a/packages/grafana-ui/src/types/index.ts +++ b/packages/grafana-ui/src/types/index.ts @@ -2,3 +2,4 @@ export * from './series'; export * from './time'; export * from './panel'; export * from './plugin'; +export * from './datasource'; diff --git a/public/app/core/utils/explore.ts b/public/app/core/utils/explore.ts index b05e38a4b33..2d1c0d2ad71 100644 --- a/public/app/core/utils/explore.ts +++ b/public/app/core/utils/explore.ts @@ -1,14 +1,18 @@ +// Libraries import _ from 'lodash'; -import { colors, RawTimeRange, IntervalValues } from '@grafana/ui'; +// Services & Utils import * as dateMath from 'app/core/utils/datemath'; import { renderUrl } from 'app/core/utils/url'; import kbn from 'app/core/utils/kbn'; import store from 'app/core/store'; import { parse as parseDate } from 'app/core/utils/datemath'; - -import TimeSeries from 'app/core/time_series2'; +import { colors } from '@grafana/ui'; import TableModel, { mergeTablesIntoModel } from 'app/core/table_model'; + +// Types +import { RawTimeRange, IntervalValues, DataQuery } from '@grafana/ui/src/types'; +import TimeSeries from 'app/core/time_series2'; import { ExploreUrlState, HistoryItem, @@ -17,7 +21,6 @@ import { QueryIntervals, QueryOptions, } from 'app/types/explore'; -import { DataQuery } from 'app/types/series'; export const DEFAULT_RANGE = { from: 'now-6h', diff --git a/public/app/features/dashboard/dashgrid/DataPanel.tsx b/public/app/features/dashboard/dashgrid/DataPanel.tsx index d71a274ab10..d4f6859f1b6 100644 --- a/public/app/features/dashboard/dashgrid/DataPanel.tsx +++ b/public/app/features/dashboard/dashgrid/DataPanel.tsx @@ -12,8 +12,7 @@ import { getDatasourceSrv, DatasourceSrv } from 'app/features/plugins/datasource import kbn from 'app/core/utils/kbn'; // Types -import { DataQueryOptions, DataQueryResponse } from 'app/types'; -import { TimeRange, TimeSeries, LoadingState } from '@grafana/ui'; +import { TimeRange, TimeSeries, LoadingState, DataQueryResponse, DataQueryOptions } from '@grafana/ui/src/types'; const DEFAULT_PLUGIN_ERROR = 'Error in plugin'; diff --git a/public/app/features/dashboard/panel_editor/QueriesTab.tsx b/public/app/features/dashboard/panel_editor/QueriesTab.tsx index 7d2f77aa338..4579e1c4a7b 100644 --- a/public/app/features/dashboard/panel_editor/QueriesTab.tsx +++ b/public/app/features/dashboard/panel_editor/QueriesTab.tsx @@ -18,7 +18,8 @@ import config from 'app/core/config'; // Types import { PanelModel } from '../panel_model'; import { DashboardModel } from '../dashboard_model'; -import { DataQuery, DataSourceSelectItem } from 'app/types'; +import { DataQuery } from '@grafana/ui'; +import { DataSourceSelectItem } from 'app/types'; import { PluginHelp } from 'app/core/components/PluginHelp/PluginHelp'; interface Props { diff --git a/public/app/features/dashboard/panel_editor/QueryEditorRow.tsx b/public/app/features/dashboard/panel_editor/QueryEditorRow.tsx index 410d0029b15..392890ab9f1 100644 --- a/public/app/features/dashboard/panel_editor/QueryEditorRow.tsx +++ b/public/app/features/dashboard/panel_editor/QueryEditorRow.tsx @@ -10,7 +10,7 @@ import { Emitter } from 'app/core/utils/emitter'; // Types import { PanelModel } from '../panel_model'; -import { DataQuery, DataSourceApi } from 'app/types/series'; +import { DataQuery, DataSourceApi } from '@grafana/ui'; interface Props { panel: PanelModel; diff --git a/public/app/features/dashboard/panel_model.ts b/public/app/features/dashboard/panel_model.ts index 2fec8e379dd..78f399122d7 100644 --- a/public/app/features/dashboard/panel_model.ts +++ b/public/app/features/dashboard/panel_model.ts @@ -1,7 +1,10 @@ -import { Emitter } from 'app/core/utils/emitter'; +// Libraries import _ from 'lodash'; + +// Types +import { Emitter } from 'app/core/utils/emitter'; import { PANEL_OPTIONS_KEY_PREFIX } from 'app/core/constants'; -import { DataQuery } from 'app/types'; +import { DataQuery } from '@grafana/ui/src/types'; export interface GridPos { x: number; diff --git a/public/app/features/explore/Explore.tsx b/public/app/features/explore/Explore.tsx index a8acab50137..60d7428b53b 100644 --- a/public/app/features/explore/Explore.tsx +++ b/public/app/features/explore/Explore.tsx @@ -1,19 +1,25 @@ +// Libraries import React from 'react'; import { hot } from 'react-hot-loader'; import { connect } from 'react-redux'; import _ from 'lodash'; import { AutoSizer } from 'react-virtualized'; -import { RawTimeRange, TimeRange } from '@grafana/ui'; -import { DataSourceSelectItem } from 'app/types/datasources'; -import { ExploreItemState, ExploreUrlState, RangeScanner, ExploreId } from 'app/types/explore'; -import { DataQuery } from 'app/types/series'; -import { StoreState } from 'app/types'; +// Services & Utils import store from 'app/core/store'; -import { LAST_USED_DATASOURCE_KEY, ensureQueries, DEFAULT_RANGE } from 'app/core/utils/explore'; -import { DataSourcePicker } from 'app/core/components/Select/DataSourcePicker'; -import { Emitter } from 'app/core/utils/emitter'; +// Components +import { DataSourceSelectItem } from 'app/types/datasources'; +import { DataSourcePicker } from 'app/core/components/Select/DataSourcePicker'; +import { Alert } from './Error'; +import ErrorBoundary from './ErrorBoundary'; +import GraphContainer from './GraphContainer'; +import LogsContainer from './LogsContainer'; +import QueryRows from './QueryRows'; +import TableContainer from './TableContainer'; +import TimePicker, { parseTime } from './TimePicker'; + +// Actions import { changeDatasource, changeSize, @@ -29,13 +35,12 @@ import { splitOpen, } from './state/actions'; -import { Alert } from './Error'; -import ErrorBoundary from './ErrorBoundary'; -import GraphContainer from './GraphContainer'; -import LogsContainer from './LogsContainer'; -import QueryRows from './QueryRows'; -import TableContainer from './TableContainer'; -import TimePicker, { parseTime } from './TimePicker'; +// Types +import { RawTimeRange, TimeRange, DataQuery } from '@grafana/ui'; +import { ExploreItemState, ExploreUrlState, RangeScanner, ExploreId } from 'app/types/explore'; +import { StoreState } from 'app/types'; +import { LAST_USED_DATASOURCE_KEY, ensureQueries, DEFAULT_RANGE } from 'app/core/utils/explore'; +import { Emitter } from 'app/core/utils/emitter'; interface ExploreProps { StartPage?: any; diff --git a/public/app/features/explore/QueryEditor.tsx b/public/app/features/explore/QueryEditor.tsx index dde674d3fcd..3414d93a8ad 100644 --- a/public/app/features/explore/QueryEditor.tsx +++ b/public/app/features/explore/QueryEditor.tsx @@ -1,10 +1,14 @@ +// Libraries import React, { PureComponent } from 'react'; + +// Services import { getAngularLoader, AngularComponent } from 'app/core/services/AngularLoader'; -import { Emitter } from 'app/core/utils/emitter'; import { getIntervals } from 'app/core/utils/explore'; -import { DataQuery } from 'app/types'; -import { RawTimeRange } from '@grafana/ui'; import { getTimeSrv } from 'app/features/dashboard/time_srv'; + +// Types +import { Emitter } from 'app/core/utils/emitter'; +import { RawTimeRange, DataQuery } from '@grafana/ui'; import 'app/features/plugins/plugin_loader'; interface QueryEditorProps { diff --git a/public/app/features/explore/QueryRow.tsx b/public/app/features/explore/QueryRow.tsx index b5b150b3ba8..2cfda3c8a49 100644 --- a/public/app/features/explore/QueryRow.tsx +++ b/public/app/features/explore/QueryRow.tsx @@ -1,16 +1,14 @@ +// Libraries import React, { PureComponent } from 'react'; +import _ from 'lodash'; import { hot } from 'react-hot-loader'; import { connect } from 'react-redux'; -import { RawTimeRange } from '@grafana/ui'; -import _ from 'lodash'; -import { QueryTransaction, HistoryItem, QueryHint, ExploreItemState, ExploreId } from 'app/types/explore'; -import { Emitter } from 'app/core/utils/emitter'; -import { DataQuery, StoreState } from 'app/types'; - -// import DefaultQueryField from './QueryField'; +// Components import QueryEditor from './QueryEditor'; import QueryTransactionStatus from './QueryTransactionStatus'; + +// Actions import { addQueryRow, changeQuery, @@ -20,6 +18,12 @@ import { runQueries, } from './state/actions'; +// Types +import { RawTimeRange, DataQuery } from '@grafana/ui'; +import { StoreState } from 'app/types'; +import { QueryTransaction, HistoryItem, QueryHint, ExploreItemState, ExploreId } from 'app/types/explore'; +import { Emitter } from 'app/core/utils/emitter'; + function getFirstHintFromTransactions(transactions: QueryTransaction[]): QueryHint { const transaction = transactions.find(qt => qt.hints && qt.hints.length > 0); if (transaction) { diff --git a/public/app/features/explore/QueryRows.tsx b/public/app/features/explore/QueryRows.tsx index 01bd409f444..f8bb6e5ce6b 100644 --- a/public/app/features/explore/QueryRows.tsx +++ b/public/app/features/explore/QueryRows.tsx @@ -1,17 +1,21 @@ +// Libraries import React, { PureComponent } from 'react'; -import { Emitter } from 'app/core/utils/emitter'; -import { DataQuery } from 'app/types'; -import { ExploreId } from 'app/types/explore'; - +// Components import QueryRow from './QueryRow'; +// Types +import { Emitter } from 'app/core/utils/emitter'; +import { DataQuery } from '@grafana/ui/src/types'; +import { ExploreId } from 'app/types/explore'; + interface QueryRowsProps { className?: string; exploreEvents: Emitter; exploreId: ExploreId; initialQueries: DataQuery[]; } + export default class QueryRows extends PureComponent { render() { const { className = '', exploreEvents, exploreId, initialQueries } = this.props; diff --git a/public/app/features/explore/state/actionTypes.ts b/public/app/features/explore/state/actionTypes.ts index b267da4f2c1..df921f9ec29 100644 --- a/public/app/features/explore/state/actionTypes.ts +++ b/public/app/features/explore/state/actionTypes.ts @@ -1,6 +1,6 @@ -import { RawTimeRange, TimeRange } from '@grafana/ui'; - +// Types import { Emitter } from 'app/core/core'; +import { RawTimeRange, TimeRange, DataQuery } from '@grafana/ui'; import { ExploreId, ExploreItemState, @@ -10,7 +10,6 @@ import { QueryTransaction, } from 'app/types/explore'; import { DataSourceSelectItem } from 'app/types/datasources'; -import { DataQuery } from 'app/types'; export enum ActionTypes { AddQueryRow = 'explore/ADD_QUERY_ROW', diff --git a/public/app/features/explore/state/actions.ts b/public/app/features/explore/state/actions.ts index 256053d4c2e..80f28a7fc6b 100644 --- a/public/app/features/explore/state/actions.ts +++ b/public/app/features/explore/state/actions.ts @@ -17,7 +17,8 @@ import { import { updateLocation } from 'app/core/actions'; import store from 'app/core/store'; import { DataSourceSelectItem } from 'app/types/datasources'; -import { DataQuery, StoreState } from 'app/types'; +import { StoreState } from 'app/types'; +import { DataQuery } from '@grafana/ui/src/types'; import { getDatasourceSrv } from 'app/features/plugins/datasource_srv'; import { ExploreId, diff --git a/public/app/features/explore/state/reducers.ts b/public/app/features/explore/state/reducers.ts index b112a5370e3..ba87e8818df 100644 --- a/public/app/features/explore/state/reducers.ts +++ b/public/app/features/explore/state/reducers.ts @@ -5,7 +5,7 @@ import { ensureQueries, } from 'app/core/utils/explore'; import { ExploreItemState, ExploreState, QueryTransaction } from 'app/types/explore'; -import { DataQuery } from 'app/types/series'; +import { DataQuery } from '@grafana/ui/src/types'; import { Action, ActionTypes } from './actionTypes'; diff --git a/public/app/features/plugins/datasource_srv.ts b/public/app/features/plugins/datasource_srv.ts index 0d68cbc71ba..a063ac2ce1c 100644 --- a/public/app/features/plugins/datasource_srv.ts +++ b/public/app/features/plugins/datasource_srv.ts @@ -4,7 +4,7 @@ import coreModule from 'app/core/core_module'; import config from 'app/core/config'; import { importPluginModule } from './plugin_loader'; -import { DataSourceApi } from 'app/types/series'; +import { DataSourceApi } from '@grafana/ui/src/types'; import { DataSource, DataSourceSelectItem } from 'app/types'; export class DatasourceSrv { diff --git a/public/app/plugins/datasource/loki/components/LokiQueryField.tsx b/public/app/plugins/datasource/loki/components/LokiQueryField.tsx index e05d2a998b4..98c8a5f6da9 100644 --- a/public/app/plugins/datasource/loki/components/LokiQueryField.tsx +++ b/public/app/plugins/datasource/loki/components/LokiQueryField.tsx @@ -3,6 +3,7 @@ import Cascader from 'rc-cascader'; import PluginPrism from 'slate-prism'; import Prism from 'prismjs'; +import { DataQuery } from '@grafana/ui/src/types'; import { TypeaheadOutput } from 'app/types/explore'; // dom also includes Element polyfills @@ -10,7 +11,6 @@ import { getNextCharacter, getPreviousCousin } from 'app/features/explore/utils/ import BracesPlugin from 'app/features/explore/slate-plugins/braces'; import RunnerPlugin from 'app/features/explore/slate-plugins/runner'; import QueryField, { TypeaheadInput, QueryFieldState } from 'app/features/explore/QueryField'; -import { DataQuery } from 'app/types'; const PRISM_SYNTAX = 'promql'; diff --git a/public/app/plugins/datasource/loki/datasource.ts b/public/app/plugins/datasource/loki/datasource.ts index d1263d9145f..893ce649613 100644 --- a/public/app/plugins/datasource/loki/datasource.ts +++ b/public/app/plugins/datasource/loki/datasource.ts @@ -2,8 +2,7 @@ import _ from 'lodash'; import * as dateMath from 'app/core/utils/datemath'; import { LogsStream, LogsModel, makeSeriesForLogs } from 'app/core/logs_model'; -import { DataQuery } from 'app/types'; -import { PluginMeta } from '@grafana/ui/src/types'; +import { PluginMeta, DataQuery } from '@grafana/ui/src/types'; import { addLabelToSelector } from 'app/plugins/datasource/prometheus/add_label_to_query'; import LanguageProvider from './language_provider'; diff --git a/public/app/plugins/datasource/loki/language_provider.ts b/public/app/plugins/datasource/loki/language_provider.ts index dd3b4885ea5..3532e81ccd9 100644 --- a/public/app/plugins/datasource/loki/language_provider.ts +++ b/public/app/plugins/datasource/loki/language_provider.ts @@ -11,7 +11,7 @@ import { } from 'app/types/explore'; import { parseSelector, labelRegexp, selectorRegexp } from 'app/plugins/datasource/prometheus/language_utils'; import syntax from './syntax'; -import { DataQuery } from 'app/types'; +import { DataQuery } from '@grafana/ui/src/types'; const DEFAULT_KEYS = ['job', 'namespace']; const EMPTY_SELECTOR = '{}'; diff --git a/public/app/plugins/datasource/prometheus/components/PromQueryField.tsx b/public/app/plugins/datasource/prometheus/components/PromQueryField.tsx index 6171c662127..391d39836ca 100644 --- a/public/app/plugins/datasource/prometheus/components/PromQueryField.tsx +++ b/public/app/plugins/datasource/prometheus/components/PromQueryField.tsx @@ -11,7 +11,7 @@ import { getNextCharacter, getPreviousCousin } from 'app/features/explore/utils/ import BracesPlugin from 'app/features/explore/slate-plugins/braces'; import RunnerPlugin from 'app/features/explore/slate-plugins/runner'; import QueryField, { TypeaheadInput, QueryFieldState } from 'app/features/explore/QueryField'; -import { DataQuery } from 'app/types'; +import { DataQuery } from '@grafana/ui/src/types'; const HISTOGRAM_GROUP = '__histograms__'; const METRIC_MARK = 'metric'; diff --git a/public/app/plugins/datasource/prometheus/datasource.ts b/public/app/plugins/datasource/prometheus/datasource.ts index ceaf88fb477..18ee2be890c 100644 --- a/public/app/plugins/datasource/prometheus/datasource.ts +++ b/public/app/plugins/datasource/prometheus/datasource.ts @@ -11,7 +11,7 @@ import { BackendSrv } from 'app/core/services/backend_srv'; import addLabelToQuery from './add_label_to_query'; import { getQueryHints } from './query_hints'; import { expandRecordingRules } from './language_utils'; -import { DataQuery } from 'app/types'; +import { DataQuery } from '@grafana/ui/src/types'; import { ExploreUrlState } from 'app/types/explore'; export function alignRange(start, end, step) { diff --git a/public/app/types/explore.ts b/public/app/types/explore.ts index 5636bb3acdb..80b6ff922cf 100644 --- a/public/app/types/explore.ts +++ b/public/app/types/explore.ts @@ -1,13 +1,11 @@ import { Value } from 'slate'; -import { RawTimeRange, TimeRange } from '@grafana/ui'; +import { RawTimeRange, TimeRange, DataQuery } from '@grafana/ui'; import { Emitter } from 'app/core/core'; import { LogsModel } from 'app/core/logs_model'; import TableModel from 'app/core/table_model'; import { DataSourceSelectItem } from 'app/types/datasources'; -import { DataQuery } from './series'; - export interface CompletionItem { /** * The label of this completion item. By default diff --git a/public/app/types/index.ts b/public/app/types/index.ts index 5b43d1909e3..f41183de7d4 100644 --- a/public/app/types/index.ts +++ b/public/app/types/index.ts @@ -8,7 +8,6 @@ export * from './acl'; export * from './apiKeys'; export * from './user'; export * from './datasources'; -export * from './series'; export * from './plugins'; export * from './organization'; export * from './appNotifications';