From 46ea73953b87469001ceea0b1d9b16dda107a8e9 Mon Sep 17 00:00:00 2001 From: Jesse Yang Date: Tue, 25 Aug 2020 22:43:52 -0700 Subject: [PATCH] chore: clean up a couple of TypeScript warnings (#754) --- .../src/components/MetricOption.tsx | 15 +++------------ .../superset-ui-chart-controls/src/index.ts | 2 +- .../src/shared-controls/index.tsx | 3 ++- .../superset-ui-chart-controls/src/types.ts | 12 ++++++++++++ .../src/utils/mainMetric.ts | 8 ++------ .../superset-ui-translation/src/Translator.ts | 1 - .../src/TimeTable.tsx | 18 ++++++++---------- .../src/transformProps.ts | 15 +++++++-------- .../superset-ui/yarn.lock | 2 +- 9 files changed, 36 insertions(+), 40 deletions(-) diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/components/MetricOption.tsx b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/components/MetricOption.tsx index 1843e742b963d..add97523e300f 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/components/MetricOption.tsx +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/components/MetricOption.tsx @@ -22,6 +22,7 @@ import styled from '@superset-ui/style'; import InfoTooltipWithTrigger from './InfoTooltipWithTrigger'; import { ColumnTypeLabel } from './ColumnTypeLabel'; import CertifiedIconWithTooltip from './CertifiedIconWithTooltip'; +import { Metric } from '../types'; const FlexRowContainer = styled.div` align-items: center; @@ -33,21 +34,11 @@ const FlexRowContainer = styled.div` `; export interface MetricOptionProps { - metric: { - verbose_name?: string; - metric_name: string; - label?: string; - description: string; - warning_text: string; - expression: string; - is_certified?: boolean; - certified_by?: string | null; - certification_details?: string | null; - }; + metric: Metric; openInNewWindow?: boolean; showFormula?: boolean; showType?: boolean; - url?: string; + url: string; } export function MetricOption({ diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/index.ts b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/index.ts index 5f19931d4af06..869d86289fe1e 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/index.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/index.ts @@ -11,7 +11,7 @@ export const internalSharedControls = sharedControlsModule; export const sections = sectionModules; export { D3_FORMAT_DOCS, D3_FORMAT_OPTIONS, D3_TIME_FORMAT_OPTIONS } from './utils/D3Formatting'; export { formatSelectOptions, formatSelectOptionsForRange } from './utils/selectOptions'; -export * from './utils/mainMetric'; +export { default as mainMetric } from './utils/mainMetric'; export * from './utils/expandControlConfig'; export * from './components/InfoTooltipWithTrigger'; diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/shared-controls/index.tsx b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/shared-controls/index.tsx index a669c7fe0627c..8205e3f3cacb0 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/shared-controls/index.tsx +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/shared-controls/index.tsx @@ -43,9 +43,10 @@ import { import { legacyValidateInteger, validateNonEmpty } from '@superset-ui/validator'; import { formatSelectOptions } from '../utils/selectOptions'; -import { mainMetric, Metric } from '../utils/mainMetric'; +import mainMetric from '../utils/mainMetric'; import { TIME_FILTER_LABELS } from '../constants'; import { + Metric, SharedControlConfig, ColumnMeta, DatasourceMeta, diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/types.ts b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/types.ts index ff0e5c65a2093..0c35240b4d71f 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/types.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/types.ts @@ -22,6 +22,18 @@ import { QueryFormData } from '@superset-ui/query'; import sharedControls from './shared-controls'; import sharedControlComponents from './shared-controls/components'; +export type Metric = { + metric_name: string; + verbose_name?: string; + label?: string; + description?: string; + warning_text?: string; + expression?: string; + is_certified?: boolean; + certified_by?: string | null; + certification_details?: string | null; +}; + // eslint-disable-next-line @typescript-eslint/no-explicit-any type AnyDict = Record; interface Action { diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/utils/mainMetric.ts b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/utils/mainMetric.ts index cafa12e6683e4..a06ed31a541e2 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/utils/mainMetric.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/utils/mainMetric.ts @@ -16,13 +16,9 @@ * specific language governing permissions and limitations * under the License. */ -/* eslint-disable camelcase */ +import { Metric } from '../types'; -export type Metric = { - metric_name: string; -}; - -export function mainMetric(savedMetrics?: Metric[] | null) { +export default function mainMetric(savedMetrics?: Metric[] | null) { // Using 'count' as default metric if it exists, otherwise using whatever one shows up first let metric; if (savedMetrics && savedMetrics.length > 0) { diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-translation/src/Translator.ts b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-translation/src/Translator.ts index ad35b92e20a39..c0a47eee6de42 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-translation/src/Translator.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-translation/src/Translator.ts @@ -40,7 +40,6 @@ export default class Translator { constructor(config: TranslatorConfig = {}) { const { languagePack = DEFAULT_LANGUAGE_PACK } = config; - // eslint-disable-next-line @typescript-eslint/no-unsafe-call this.i18n = new UntypedJed(languagePack) as Jed; this.locale = this.i18n.options.locale_data.superset[''].lang as Locale; } diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/legacy-plugin-chart-time-table/src/TimeTable.tsx b/superset-frontend/temporary_superset_ui/superset-ui/plugins/legacy-plugin-chart-time-table/src/TimeTable.tsx index 92c4bcb25e6a2..1e48df920d654 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/plugins/legacy-plugin-chart-time-table/src/TimeTable.tsx +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/legacy-plugin-chart-time-table/src/TimeTable.tsx @@ -24,7 +24,7 @@ import { formatNumber } from '@superset-ui/number-format'; import { formatTime } from '@superset-ui/time-format'; import styled from '@superset-ui/style'; import moment from 'moment'; -import { InfoTooltipWithTrigger, MetricOption } from '@superset-ui/chart-controls'; +import { InfoTooltipWithTrigger, MetricOption, Metric } from '@superset-ui/chart-controls'; import FormattedNumber from './FormattedNumber'; import SparklineCell from './SparklineCell'; @@ -51,11 +51,12 @@ function colorFromBounds( // @ts-ignore return colorScale(value); - // eslint-disable-next-line no-else-return - } else if (min !== null) { + } + if (min !== null) { // @ts-ignore return value >= min ? maxColor : minColor; - } else if (max !== null) { + } + if (max !== null) { // @ts-ignore return value < max ? maxColor : minColor; } @@ -104,7 +105,6 @@ class TimeTable extends React.PureComponent { renderLeftCell(row: RowData) { const { rowType, url } = this.props; const context = { metric: row }; - // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access const fullUrl = url ? Mustache.render(url, context) : null; if (rowType === 'column') { @@ -119,10 +119,9 @@ class TimeTable extends React.PureComponent { return column.label; } - const metric = row; - - // @ts-ignore - return ; + return ( + + ); } // eslint-disable-next-line class-methods-use-this @@ -141,7 +140,6 @@ class TimeTable extends React.PureComponent { } } } else { - // eslint-disable-next-line @typescript-eslint/no-unsafe-return sparkData = entries.map(d => d[valueField]); } diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/legacy-plugin-chart-time-table/src/transformProps.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/legacy-plugin-chart-time-table/src/transformProps.ts index edcef87354ba1..1f216c44be46f 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/plugins/legacy-plugin-chart-time-table/src/transformProps.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/legacy-plugin-chart-time-table/src/transformProps.ts @@ -17,6 +17,7 @@ * under the License. */ import { ChartProps, DataRecord } from '@superset-ui/chart'; +import { QueryObjectMetric } from '@superset-ui/query'; interface FormData { groupby: string[]; @@ -38,7 +39,7 @@ export type TableChartProps = ChartProps & { }; interface ColumnData { - timeLag?: string; + timeLag?: string | number; } export default function transformProps(chartProps: TableChartProps) { const { height, datasource, formData, queryData } = chartProps; @@ -56,20 +57,18 @@ export default function transformProps(chartProps: TableChartProps) { } else { const metricMap = datasource.metrics.reduce((acc, current) => { const map = acc; - // @ts-ignore - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - map[current.metric_name] = current; + if (current.metric_name) { + map[current.metric_name] = current; + } return map; - }, {}); + }, {} as Record); rows = metrics.map(metric => (typeof metric === 'object' ? metric : metricMap[metric])); } // TODO: Better parse this from controls instead of mutative value here. columnCollection.forEach(column => { const c: ColumnData = column; - if (c.timeLag !== undefined && c.timeLag !== null && c.timeLag !== '') { - // @ts-ignore - // eslint-disable-next-line @typescript-eslint/no-unsafe-call + if (typeof c.timeLag === 'string' && c.timeLag) { c.timeLag = parseInt(c.timeLag, 10); } }); diff --git a/superset-frontend/temporary_superset_ui/superset-ui/yarn.lock b/superset-frontend/temporary_superset_ui/superset-ui/yarn.lock index 049147e2a2e9d..fc17fe5825f28 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/yarn.lock +++ b/superset-frontend/temporary_superset_ui/superset-ui/yarn.lock @@ -13359,7 +13359,7 @@ murmurhash-js@^1.0.0: resolved "https://registry.yarnpkg.com/murmurhash-js/-/murmurhash-js-1.0.0.tgz#b06278e21fc6c37fa5313732b0412bcb6ae15f51" integrity sha1-sGJ44h/Gw3+lMTcysEEry2rhX1E= -mustache@^4.0.0, mustache@^4.0.1: +mustache@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.0.1.tgz#d99beb031701ad433338e7ea65e0489416c854a2" integrity sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA==