From 33b22a4f0682c842ca23c1baa3c07238f8b80f88 Mon Sep 17 00:00:00 2001 From: Eshaan Aggarwal <96648934+EshaanAgg@users.noreply.github.com> Date: Sun, 24 Dec 2023 22:31:57 +0530 Subject: [PATCH] fix: Fix some linting warnings (#2064) ## Which problem is this PR solving? Fixes part of #1608 ## Description of the changes - Added the minimal types needed to fix the linting warnings - Replaced `{}` with the `object` type ## How was this change tested? - Ran `yarn lint` locally ## Checklist - [X] I have read https://github.com/jaegertracing/jaeger/blob/master/CONTRIBUTING_GUIDELINES.md - [X] I have signed all commits - [X] I have added unit tests for the new functionality - [X] I have run lint and test steps successfully - for `jaeger`: `make lint test` - for `jaeger-ui`: `yarn lint` and `yarn test` --------- Signed-off-by: Eshaan Aggarwal <96648934+EshaanAgg@users.noreply.github.com> --- .../SearchTracePage/SearchForm.track.tsx | 2 +- .../SearchResults/ResultItem.tsx | 3 ++- .../SearchTracePage/SearchResults/index.tsx | 2 +- .../components/TracePage/ScrollManager.tsx | 6 +++--- .../TraceGraph/calculateTraceDagEV.tsx | 3 ++- .../TracePageHeader/KeyboardShortcutsHelp.tsx | 10 ++++++++-- .../SpanDetail/AccordianText.tsx | 5 ++++- .../src/model/trace-dag/TraceDag.tsx | 2 +- packages/jaeger-ui/src/reducers/metrics.tsx | 19 +++++++++---------- packages/jaeger-ui/src/types/api-error.tsx | 2 +- packages/jaeger-ui/src/types/metrics.tsx | 2 +- packages/jaeger-ui/src/types/trace.tsx | 5 ++--- .../demo/DraggableManagerDemo.tsx | 10 +++++----- 13 files changed, 40 insertions(+), 31 deletions(-) diff --git a/packages/jaeger-ui/src/components/SearchTracePage/SearchForm.track.tsx b/packages/jaeger-ui/src/components/SearchTracePage/SearchForm.track.tsx index 781a1a11b6..a841da987b 100644 --- a/packages/jaeger-ui/src/components/SearchTracePage/SearchForm.track.tsx +++ b/packages/jaeger-ui/src/components/SearchTracePage/SearchForm.track.tsx @@ -34,7 +34,7 @@ export const CATEGORY_SERVICE = `${FORM_CATEGORY_BASE}/serviceName`; export function trackFormInput( resultsLimit: number, operation: string, - tags: any, + tags: string, minDuration: number, maxDuration: number, lookback: string, diff --git a/packages/jaeger-ui/src/components/SearchTracePage/SearchResults/ResultItem.tsx b/packages/jaeger-ui/src/components/SearchTracePage/SearchResults/ResultItem.tsx index 547f2f8105..bf1c595fcb 100644 --- a/packages/jaeger-ui/src/components/SearchTracePage/SearchResults/ResultItem.tsx +++ b/packages/jaeger-ui/src/components/SearchTracePage/SearchResults/ResultItem.tsx @@ -52,7 +52,8 @@ type State = { fromNow: string | boolean; }; -const isErrorTag = ({ key, value }: KeyValuePair) => key === 'error' && (value === true || value === 'true'); +const isErrorTag = ({ key, value }: KeyValuePair) => + key === 'error' && (value === true || value === 'true'); const trackTraceConversions = () => trackConversions(EAltViewActions.Traces); export default class ResultItem extends React.PureComponent { diff --git a/packages/jaeger-ui/src/components/SearchTracePage/SearchResults/index.tsx b/packages/jaeger-ui/src/components/SearchTracePage/SearchResults/index.tsx index 7fa3d5b8ca..185db53aa5 100644 --- a/packages/jaeger-ui/src/components/SearchTracePage/SearchResults/index.tsx +++ b/packages/jaeger-ui/src/components/SearchTracePage/SearchResults/index.tsx @@ -179,7 +179,7 @@ export class UnconnectedSearchResults extends React.PureComponent datum.id)); const searchUrl = queryOfResults ? getUrl(stripEmbeddedState(queryOfResults)) : getUrl(); - const isErrorTag = ({ key, value }: KeyValuePair) => + const isErrorTag = ({ key, value }: KeyValuePair) => key === 'error' && (value === true || value === 'true'); return (
diff --git a/packages/jaeger-ui/src/components/TracePage/ScrollManager.tsx b/packages/jaeger-ui/src/components/TracePage/ScrollManager.tsx index 82f0bf5679..4486b933e8 100644 --- a/packages/jaeger-ui/src/components/TracePage/ScrollManager.tsx +++ b/packages/jaeger-ui/src/components/TracePage/ScrollManager.tsx @@ -87,7 +87,7 @@ function isSpanHidden(span: Span, childrenAreHidden: Set, spansMap: Map< */ export default class ScrollManager { _trace: Trace | TNil; - _scroller: IScroller; + _scroller: IScroller | TNil; _accessors: Accessors | TNil; constructor(trace: Trace | TNil, scroller: IScroller) { @@ -117,7 +117,7 @@ export default class ScrollManager { y -= vh; } y += direction * 0.5 * vh; - this._scroller.scrollTo(y); + this._scroller?.scrollTo(y); } _scrollToVisibleSpan(direction: 1 | -1, startRow?: number) { @@ -268,7 +268,7 @@ export default class ScrollManager { destroy() { this._trace = undefined; - this._scroller = undefined as any; + this._scroller = undefined; this._accessors = undefined; } } diff --git a/packages/jaeger-ui/src/components/TracePage/TraceGraph/calculateTraceDagEV.tsx b/packages/jaeger-ui/src/components/TracePage/TraceGraph/calculateTraceDagEV.tsx index 2921fd3c83..8a4333b8ef 100644 --- a/packages/jaeger-ui/src/components/TracePage/TraceGraph/calculateTraceDagEV.tsx +++ b/packages/jaeger-ui/src/components/TracePage/TraceGraph/calculateTraceDagEV.tsx @@ -31,6 +31,7 @@ export function isError(tags: Array) { return errorTag.value; } } + return false; } @@ -82,7 +83,7 @@ export function calculateTraceDag(trace: Trace): TraceDag { const ntime = node.members.reduce((p, m) => p + m.span.duration, 0); - const numErrors = node.members.reduce((p, m) => (p + isError(m.span.tags) ? 1 : 0), 0); + const numErrors = node.members.reduce((p, m) => p + (isError(m.span.tags) ? 1 : 0), 0); const childDurationsDRange = node.members.reduce((p, m) => { // Using DRange to handle overlapping spans (fork-join) const cdr = new DRange(m.span.startTime, m.span.startTime + m.span.duration).intersect( diff --git a/packages/jaeger-ui/src/components/TracePage/TracePageHeader/KeyboardShortcutsHelp.tsx b/packages/jaeger-ui/src/components/TracePage/TracePageHeader/KeyboardShortcutsHelp.tsx index ef182b1e05..4abd4969e0 100644 --- a/packages/jaeger-ui/src/components/TracePage/TracePageHeader/KeyboardShortcutsHelp.tsx +++ b/packages/jaeger-ui/src/components/TracePage/TracePageHeader/KeyboardShortcutsHelp.tsx @@ -28,6 +28,12 @@ type State = { visible: boolean; }; +type DataRecord = { + key: string; + kbds: React.JSX.Element; + description: string; +}; + const { Column } = Table; const SYMBOL_CONV: Record = { @@ -47,7 +53,7 @@ function convertKeys(keyConfig: string | string[]): string[][] { const padLeft = (text: string) => {text}; const padRight = (text: string) => {text}; -const getRowClass = (_: any, index: number) => (index % 2 > 0 ? ODD_ROW_CLASS : ''); +const getRowClass = (_: DataRecord, index: number) => (index % 2 > 0 ? ODD_ROW_CLASS : ''); let kbdTable: React.ReactNode | null = null; @@ -55,7 +61,7 @@ function getHelpModal() { if (kbdTable) { return kbdTable; } - const data: { key: string; kbds: any; description: string }[] = []; + const data: DataRecord[] = []; Object.keys(keyboardMappings).forEach(handle => { const { binding, label } = keyboardMappings[handle]; const keyConfigs = convertKeys(binding); diff --git a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/AccordianText.tsx b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/AccordianText.tsx index 0da7337252..ba21141524 100644 --- a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/AccordianText.tsx +++ b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/AccordianText.tsx @@ -35,8 +35,10 @@ export default function AccordianText(props: AccordianTextProps) { const { className, data, headerClassName, highContrast, interactive, isOpen, label, onToggle } = props; const isEmpty = !Array.isArray(data) || !data.length; const iconCls = cx('u-align-icon', { 'AccordianKeyValues--emptyIcon': isEmpty }); + let arrow: React.ReactNode | null = null; - let headerProps: Object | null = null; + let headerProps: object | null = null; + if (interactive) { arrow = isOpen ? : ; headerProps = { @@ -45,6 +47,7 @@ export default function AccordianText(props: AccordianTextProps) { role: 'switch', }; } + return (
{ +export default class TraceDag { static newFromTrace(trace: Trace, idFactory: TIdFactory = ancestralPathParentOrLeaf) { const dag: TraceDag = new TraceDag(); const { denseSpansMap, rootIDs } = new DenseTrace(trace); diff --git a/packages/jaeger-ui/src/reducers/metrics.tsx b/packages/jaeger-ui/src/reducers/metrics.tsx index 7542f0661a..83e7a7f037 100644 --- a/packages/jaeger-ui/src/reducers/metrics.tsx +++ b/packages/jaeger-ui/src/reducers/metrics.tsx @@ -113,28 +113,27 @@ function fetchServiceMetricsDone( } } } else { - if ( - typeof (promiseResult as PromiseRejectedResult).reason === 'object' && - (promiseResult as PromiseRejectedResult).reason.httpStatus === 501 - ) { + const reason = (promiseResult as PromiseRejectedResult).reason; + + if (typeof reason === 'object' && reason.httpStatus === 501) { isATMActivated = false; } switch (i) { case 0: - serviceError.service_latencies_50 = (promiseResult as PromiseRejectedResult).reason; + serviceError.service_latencies_50 = reason; break; case 1: - serviceError.service_latencies_75 = (promiseResult as PromiseRejectedResult).reason; + serviceError.service_latencies_75 = reason; break; case 2: - serviceError.service_latencies_95 = (promiseResult as PromiseRejectedResult).reason; + serviceError.service_latencies_95 = reason; break; case 3: - serviceError.service_call_rate = (promiseResult as PromiseRejectedResult).reason; + serviceError.service_call_rate = reason; break; case 4: - serviceError.service_error_rate = (promiseResult as PromiseRejectedResult).reason; + serviceError.service_error_rate = reason; break; } } @@ -192,7 +191,7 @@ function fetchOpsMetricsDone( service_operation_call_rate: 0, service_operation_error_rate: 0, }; - metricDetails.labels.forEach((label: any) => { + metricDetails.labels.forEach((label: { name: string; value: string }) => { if (label.name === 'operation') { opsName = label.value; } diff --git a/packages/jaeger-ui/src/types/api-error.tsx b/packages/jaeger-ui/src/types/api-error.tsx index 66baf6ce3d..7329aa4ce7 100644 --- a/packages/jaeger-ui/src/types/api-error.tsx +++ b/packages/jaeger-ui/src/types/api-error.tsx @@ -17,7 +17,7 @@ export type ApiError = // eslint-disable-line import/prefer-default-export | string | { message: string; - httpStatus?: any; + httpStatus?: number; httpStatusText?: string; httpUrl?: string; httpQuery?: string; diff --git a/packages/jaeger-ui/src/types/metrics.tsx b/packages/jaeger-ui/src/types/metrics.tsx index bef57b0d58..6553056e73 100644 --- a/packages/jaeger-ui/src/types/metrics.tsx +++ b/packages/jaeger-ui/src/types/metrics.tsx @@ -141,7 +141,7 @@ export type PromiseFulfilledResult = { export type PromiseRejectedResult = { status: PromiseStatus.rejected; - reason: any; + reason: ApiError; }; export type FetchedAllServiceMetricsResponse = [ diff --git a/packages/jaeger-ui/src/types/trace.tsx b/packages/jaeger-ui/src/types/trace.tsx index 0fca1b905f..514c191440 100644 --- a/packages/jaeger-ui/src/types/trace.tsx +++ b/packages/jaeger-ui/src/types/trace.tsx @@ -16,10 +16,9 @@ * All timestamps are in microseconds */ -// TODO: Everett Tech Debt: Fix KeyValuePair types -export type KeyValuePair = { +export type KeyValuePair = { key: string; - value: any; + value: ValueType; }; export type Link = { diff --git a/packages/jaeger-ui/src/utils/DraggableManager/demo/DraggableManagerDemo.tsx b/packages/jaeger-ui/src/utils/DraggableManager/demo/DraggableManagerDemo.tsx index 847044de63..1e0722cf8b 100644 --- a/packages/jaeger-ui/src/utils/DraggableManager/demo/DraggableManagerDemo.tsx +++ b/packages/jaeger-ui/src/utils/DraggableManager/demo/DraggableManagerDemo.tsx @@ -26,10 +26,10 @@ export type DraggableManagerDemoState = { regionDragging: [number, number] | TNil; }; -export default class DraggableManagerDemo extends React.PureComponent<{}, DraggableManagerDemoState> { +export default class DraggableManagerDemo extends React.PureComponent { state: DraggableManagerDemoState; - constructor(props: {}) { + constructor(props: object) { super(props); this.state = { dividerPosition: 0.25, @@ -38,7 +38,7 @@ export default class DraggableManagerDemo extends React.PureComponent<{}, Dragga }; } - _udpateState = (nextState: {}) => { + _updateState = (nextState: object) => { this.setState(nextState); }; @@ -52,7 +52,7 @@ export default class DraggableManagerDemo extends React.PureComponent<{}, Dragga

Click and drag the gray divider in the colored area, below.

Value: {dividerPosition.toFixed(3)}

- +
@@ -63,7 +63,7 @@ export default class DraggableManagerDemo extends React.PureComponent<{}, Dragga