mirror of
https://github.com/grafana/grafana.git
synced 2025-01-16 03:32:37 -06:00
3c6e0e8ef8
* Add and configure eslint-plugin-import * Fix the lint:ts npm command * Autofix + prettier all the files * Manually fix remaining files * Move jquery code in jest-setup to external file to safely reorder imports * Resolve issue caused by circular dependencies within Prometheus * Update .betterer.results * Fix missing // @ts-ignore * ignore iconBundle.ts * Fix missing // @ts-ignore
38 lines
873 B
TypeScript
38 lines
873 B
TypeScript
import { Observer, Subscription } from 'rxjs';
|
|
|
|
import { LoadingState } from '@grafana/data';
|
|
|
|
import { UpdateOptionsResults } from './VariableQueryRunner';
|
|
|
|
export function variableQueryObserver(
|
|
resolve: (value?: any) => void,
|
|
reject: (value?: any) => void,
|
|
subscription: Subscription
|
|
): Observer<UpdateOptionsResults> {
|
|
const observer: Observer<UpdateOptionsResults> = {
|
|
next: (results) => {
|
|
if (results.state === LoadingState.Error) {
|
|
subscription.unsubscribe();
|
|
reject(results.error);
|
|
return;
|
|
}
|
|
|
|
if (results.state === LoadingState.Done) {
|
|
subscription.unsubscribe();
|
|
resolve();
|
|
return;
|
|
}
|
|
},
|
|
error: (err) => {
|
|
subscription.unsubscribe();
|
|
reject(err);
|
|
},
|
|
complete: () => {
|
|
subscription.unsubscribe();
|
|
resolve();
|
|
},
|
|
};
|
|
|
|
return observer;
|
|
}
|