Chore: improve some types (#62363)

* improve some types

* more tidy up

* better error message handling + update tests

* undo store changes
This commit is contained in:
Ashley Harrison
2023-02-01 10:50:34 +00:00
committed by GitHub
parent 414bcd0a78
commit b6aedaa57d
15 changed files with 44 additions and 180 deletions

View File

@@ -1,3 +1,4 @@
import { FetchError } from '@grafana/runtime';
import { getMessageFromError } from 'app/core/utils/errors';
describe('errors functions', () => {
@@ -15,7 +16,7 @@ describe('errors functions', () => {
describe('when getMessageFromError gets an error object with message field', () => {
beforeEach(() => {
message = getMessageFromError({ message: 'error string' } as Error);
message = getMessageFromError(new Error('error string'));
});
it('should return the message text', () => {
@@ -25,7 +26,7 @@ describe('errors functions', () => {
describe('when getMessageFromError gets an error object with data.message field', () => {
beforeEach(() => {
message = getMessageFromError({ data: { message: 'error string' } } as any);
message = getMessageFromError({ data: { message: 'error string' }, status: 500 } as FetchError);
});
it('should return the message text', () => {
@@ -35,7 +36,7 @@ describe('errors functions', () => {
describe('when getMessageFromError gets an error object with statusText field', () => {
beforeEach(() => {
message = getMessageFromError({ statusText: 'error string' } as any);
message = getMessageFromError({ data: 'foo', statusText: 'error string', status: 500 } as FetchError);
});
it('should return the statusText text', () => {

View File

@@ -1,17 +1,18 @@
import { isString } from 'lodash';
import { isFetchError } from '@grafana/runtime';
export function getMessageFromError(err: string | (Error & { data?: any; statusText?: string })): string {
if (err && !isString(err)) {
if (err.message) {
export function getMessageFromError(err: unknown): string {
if (err) {
if (typeof err === 'string') {
return err;
} else if (err instanceof Error) {
return err.message;
} else if (err.data && err.data.message) {
return err.data.message;
} else if (err.statusText) {
return err.statusText;
} else {
return JSON.stringify(err);
} else if (isFetchError(err)) {
if (err.data && err.data.message) {
return err.data.message;
} else if (err.statusText) {
return err.statusText;
}
}
}
return err;
return JSON.stringify(err);
}

View File

@@ -13,8 +13,8 @@ const datasourceSrv = new DatasourceSrvMock(defaultDS, {
A: new MockObservableDataSourceApi('DSA', [{ data: ['AAAA'] }]),
B: new MockObservableDataSourceApi('DSB', [{ data: ['BBBB'] }]),
C: new MockObservableDataSourceApi('DSC', [{ data: ['CCCC'] }]),
D: new MockObservableDataSourceApi('DSD', [{ data: [] }], {}, 'syntax error near FROM'),
E: new MockObservableDataSourceApi('DSE', [{ data: [] }], {}, 'syntax error near WHERE'),
D: new MockObservableDataSourceApi('DSD', [{ data: [] }], undefined, 'syntax error near FROM'),
E: new MockObservableDataSourceApi('DSE', [{ data: [] }], undefined, 'syntax error near WHERE'),
Loki: new MockObservableDataSourceApi('Loki', [
{ data: ['A'], key: 'A' },
{ data: ['B'], key: 'B' },

View File

@@ -24,13 +24,6 @@ export interface ScatterHoverEvent {
export type ScatterHoverCallback = (evt?: ScatterHoverEvent) => void;
export interface LegendInfo {
color: CanvasRenderingContext2D['strokeStyle'];
text: string;
symbol: string;
openEditor?: (evt: any) => void;
}
export interface ScatterFieldConfig extends GeneratedScatterFieldConfig {
pointSymbol?: DimensionSupplier<string>;
}

View File

@@ -84,7 +84,7 @@ export enum DashboardInitPhase {
export interface DashboardInitError {
message: string;
error: any;
error: unknown;
}
export enum KioskMode {

View File

@@ -9,7 +9,6 @@ import {
HistoryItem,
LogsModel,
PanelData,
QueryHint,
RawTimeRange,
TimeRange,
EventBusExtended,
@@ -231,11 +230,8 @@ export interface QueryOptions {
export interface QueryTransaction {
id: string;
done: boolean;
error?: string | JSX.Element;
hints?: QueryHint[];
request: DataQueryRequest;
queries: DataQuery[];
result?: any; // Table model / Timeseries[] / Logs
scanning?: boolean;
}

View File

@@ -1,5 +1,4 @@
import { PanelPlugin, PluginError, PluginMeta } from '@grafana/data';
import { TemplateSrv } from '@grafana/runtime';
export interface PluginDashboard {
dashboardId: number;
@@ -31,13 +30,3 @@ export interface PluginsState {
isLoadingPluginDashboards: boolean;
panels: PanelPluginsIndex;
}
/**
* @deprecated use VariableQueryEditorProps instead
*/
export interface VariableQueryProps {
query: any;
onChange: (query: any, definition: string) => void;
datasource: any;
templateSrv: TemplateSrv;
}