2022-05-26 19:08:17 -05:00
|
|
|
import { config } from '@grafana/runtime';
|
|
|
|
|
2022-05-11 10:32:13 -05:00
|
|
|
import { BlugeSearcher } from './bluge';
|
2022-09-20 19:24:29 -05:00
|
|
|
import { FrontendSearcher } from './frontend';
|
2022-05-26 19:08:17 -05:00
|
|
|
import { SQLSearcher } from './sql';
|
2022-03-17 19:36:32 -05:00
|
|
|
import { GrafanaSearcher } from './types';
|
|
|
|
|
|
|
|
let searcher: GrafanaSearcher | undefined = undefined;
|
|
|
|
|
|
|
|
export function getGrafanaSearcher(): GrafanaSearcher {
|
|
|
|
if (!searcher) {
|
2022-09-20 19:24:29 -05:00
|
|
|
const sqlSearcher = new SQLSearcher();
|
2022-06-09 04:42:38 -05:00
|
|
|
const useBluge = config.featureToggles.panelTitleSearch;
|
2022-08-26 03:36:41 -05:00
|
|
|
searcher = useBluge ? new BlugeSearcher(sqlSearcher) : sqlSearcher;
|
2022-09-20 19:24:29 -05:00
|
|
|
|
2022-09-22 04:34:09 -05:00
|
|
|
if (useBluge && location.search.includes('do-frontend-query')) {
|
2022-09-20 19:24:29 -05:00
|
|
|
searcher = new FrontendSearcher(searcher);
|
|
|
|
}
|
2022-03-17 19:36:32 -05:00
|
|
|
}
|
|
|
|
return searcher!;
|
|
|
|
}
|