mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Chore: Remove CancelablePromise (#89564)
* Remove CancelablePromise.ts as it wasn't used in anywhere * Move cancelable-promise to the place where it is used
This commit is contained in:
parent
177747ecda
commit
ddea4ba8b2
@ -9,15 +9,11 @@ import { clearButtonStyles, Icon, Themeable2, withTheme2 } from '@grafana/ui';
|
|||||||
|
|
||||||
import { PrometheusDatasource } from '../datasource';
|
import { PrometheusDatasource } from '../datasource';
|
||||||
import { LocalStorageValueProvider } from '../gcopypaste/app/core/components/LocalStorageValueProvider';
|
import { LocalStorageValueProvider } from '../gcopypaste/app/core/components/LocalStorageValueProvider';
|
||||||
import {
|
|
||||||
CancelablePromise,
|
|
||||||
isCancelablePromiseRejection,
|
|
||||||
makePromiseCancelable,
|
|
||||||
} from '../gcopypaste/app/core/utils/CancelablePromise';
|
|
||||||
import { roundMsToMin } from '../language_utils';
|
import { roundMsToMin } from '../language_utils';
|
||||||
import { PromOptions, PromQuery } from '../types';
|
import { PromOptions, PromQuery } from '../types';
|
||||||
|
|
||||||
import { PrometheusMetricsBrowser } from './PrometheusMetricsBrowser';
|
import { PrometheusMetricsBrowser } from './PrometheusMetricsBrowser';
|
||||||
|
import { CancelablePromise, isCancelablePromiseRejection, makePromiseCancelable } from './cancelable-promise';
|
||||||
import { MonacoQueryFieldWrapper } from './monaco-query-field/MonacoQueryFieldWrapper';
|
import { MonacoQueryFieldWrapper } from './monaco-query-field/MonacoQueryFieldWrapper';
|
||||||
|
|
||||||
const LAST_USED_LABELS_KEY = 'grafana.datasources.prometheus.browser.labels';
|
const LAST_USED_LABELS_KEY = 'grafana.datasources.prometheus.browser.labels';
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
// https://github.com/facebook/react/issues/5465
|
|
||||||
|
|
||||||
export interface CancelablePromise<T> {
|
|
||||||
promise: Promise<T>;
|
|
||||||
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 = <T>(promise: Promise<T>): CancelablePromise<T> => {
|
|
||||||
let hasCanceled_ = false;
|
|
||||||
|
|
||||||
const wrappedPromise = new Promise<T>((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;
|
|
||||||
},
|
|
||||||
};
|
|
||||||
};
|
|
Loading…
Reference in New Issue
Block a user