From 879cdcd0c79fd69d550b1e70d0fc9af811a96660 Mon Sep 17 00:00:00 2001 From: Josh Hunt Date: Fri, 26 Nov 2021 10:53:08 +0000 Subject: [PATCH] Chore: Refactor isSharedDashboardQuery to narrow type natrually (#42312) --- .../datasource/dashboard/runSharedRequest.test.ts | 4 ++-- .../datasource/dashboard/runSharedRequest.ts | 13 +++++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/public/app/plugins/datasource/dashboard/runSharedRequest.test.ts b/public/app/plugins/datasource/dashboard/runSharedRequest.test.ts index 51c273a436e..fc33dea44e8 100644 --- a/public/app/plugins/datasource/dashboard/runSharedRequest.test.ts +++ b/public/app/plugins/datasource/dashboard/runSharedRequest.test.ts @@ -6,8 +6,8 @@ describe('SharedQueryRunner', () => { expect(isSharedDashboardQuery('-- Dashboard --')).toBe(true); expect(isSharedDashboardQuery('')).toBe(false); - expect(isSharedDashboardQuery((undefined as unknown) as string | DataSourceApi)).toBe(false); - expect(isSharedDashboardQuery((null as unknown) as string | DataSourceApi)).toBe(false); + expect(isSharedDashboardQuery((undefined as unknown) as null)).toBe(false); + expect(isSharedDashboardQuery(null)).toBe(false); const ds = { meta: { diff --git a/public/app/plugins/datasource/dashboard/runSharedRequest.ts b/public/app/plugins/datasource/dashboard/runSharedRequest.ts index 4a853dac45a..6ec3412ac17 100644 --- a/public/app/plugins/datasource/dashboard/runSharedRequest.ts +++ b/public/app/plugins/datasource/dashboard/runSharedRequest.ts @@ -17,11 +17,16 @@ export function isSharedDashboardQuery(datasource: string | DataSourceRef | Data // default datasource return false; } - if (datasource === SHARED_DASHBOARD_QUERY || (datasource as any)?.uid === SHARED_DASHBOARD_QUERY) { - return true; + + if (typeof datasource === 'string') { + return datasource === SHARED_DASHBOARD_QUERY; } - const ds = datasource as DataSourceApi; - return ds.meta && ds.meta.name === SHARED_DASHBOARD_QUERY; + + if ('meta' in datasource) { + return datasource.meta.name === SHARED_DASHBOARD_QUERY || datasource.uid === SHARED_DASHBOARD_QUERY; + } + + return datasource.uid === SHARED_DASHBOARD_QUERY; } export function runSharedRequest(options: QueryRunnerOptions): Observable {