mirror of
https://github.com/grafana/grafana.git
synced 2025-02-13 00:55:47 -06:00
* 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
20 lines
812 B
TypeScript
20 lines
812 B
TypeScript
import { DataSourceInstanceSettings } from '@grafana/data';
|
|
import { PromBasedDataSource } from 'app/types/unified-alerting';
|
|
|
|
import { getDataSourceByName } from '../utils/datasource';
|
|
|
|
import { useUnifiedAlertingSelector } from './useUnifiedAlertingSelector';
|
|
|
|
export function useRulesSourcesWithRuler(): DataSourceInstanceSettings[] {
|
|
const dataSources = useUnifiedAlertingSelector((state) => state.dataSources);
|
|
|
|
const dataSourcesWithRuler = Object.values(dataSources)
|
|
.map((ds) => ds.result)
|
|
.filter((ds): ds is PromBasedDataSource => Boolean(ds?.rulerConfig));
|
|
// try fetching rules for each prometheus to see if it has ruler
|
|
|
|
return dataSourcesWithRuler
|
|
.map((ds) => getDataSourceByName(ds.name))
|
|
.filter((dsConfig): dsConfig is DataSourceInstanceSettings => Boolean(dsConfig));
|
|
}
|