From ddea4ba8b2540c46da44084430103001a8473e7a Mon Sep 17 00:00:00 2001 From: ismail simsek Date: Thu, 27 Jun 2024 13:33:35 +0200 Subject: [PATCH] Chore: Remove CancelablePromise (#89564) * Remove CancelablePromise.ts as it wasn't used in anywhere * Move cancelable-promise to the place where it is used --- .../src/components/PromQueryField.tsx | 6 +--- .../cancelable-promise.ts} | 0 public/app/core/utils/CancelablePromise.ts | 31 ------------------- 3 files changed, 1 insertion(+), 36 deletions(-) rename packages/grafana-prometheus/src/{gcopypaste/app/core/utils/CancelablePromise.ts => components/cancelable-promise.ts} (100%) delete mode 100644 public/app/core/utils/CancelablePromise.ts diff --git a/packages/grafana-prometheus/src/components/PromQueryField.tsx b/packages/grafana-prometheus/src/components/PromQueryField.tsx index de9ec25c83d..35ff6174ad3 100644 --- a/packages/grafana-prometheus/src/components/PromQueryField.tsx +++ b/packages/grafana-prometheus/src/components/PromQueryField.tsx @@ -9,15 +9,11 @@ import { clearButtonStyles, Icon, Themeable2, withTheme2 } from '@grafana/ui'; import { PrometheusDatasource } from '../datasource'; import { LocalStorageValueProvider } from '../gcopypaste/app/core/components/LocalStorageValueProvider'; -import { - CancelablePromise, - isCancelablePromiseRejection, - makePromiseCancelable, -} from '../gcopypaste/app/core/utils/CancelablePromise'; import { roundMsToMin } from '../language_utils'; import { PromOptions, PromQuery } from '../types'; import { PrometheusMetricsBrowser } from './PrometheusMetricsBrowser'; +import { CancelablePromise, isCancelablePromiseRejection, makePromiseCancelable } from './cancelable-promise'; import { MonacoQueryFieldWrapper } from './monaco-query-field/MonacoQueryFieldWrapper'; const LAST_USED_LABELS_KEY = 'grafana.datasources.prometheus.browser.labels'; diff --git a/packages/grafana-prometheus/src/gcopypaste/app/core/utils/CancelablePromise.ts b/packages/grafana-prometheus/src/components/cancelable-promise.ts similarity index 100% rename from packages/grafana-prometheus/src/gcopypaste/app/core/utils/CancelablePromise.ts rename to packages/grafana-prometheus/src/components/cancelable-promise.ts diff --git a/public/app/core/utils/CancelablePromise.ts b/public/app/core/utils/CancelablePromise.ts deleted file mode 100644 index 221e5ef2bb6..00000000000 --- a/public/app/core/utils/CancelablePromise.ts +++ /dev/null @@ -1,31 +0,0 @@ -// https://github.com/facebook/react/issues/5465 - -export interface CancelablePromise { - promise: Promise; - cancel: () => void; -} - -export interface CancelablePromiseRejection { - isCanceled: boolean; -} - -export function isCancelablePromiseRejection(promise: unknown): promise is CancelablePromiseRejection { - return typeof promise === 'object' && promise !== null && 'isCanceled' in promise; -} - -export const makePromiseCancelable = (promise: Promise): CancelablePromise => { - let hasCanceled_ = false; - - const wrappedPromise = new Promise((resolve, reject) => { - const canceledPromiseRejection: CancelablePromiseRejection = { isCanceled: true }; - promise.then((val) => (hasCanceled_ ? reject(canceledPromiseRejection) : resolve(val))); - promise.catch((error) => (hasCanceled_ ? reject(canceledPromiseRejection) : reject(error))); - }); - - return { - promise: wrappedPromise, - cancel() { - hasCanceled_ = true; - }, - }; -};