1import { getBackendSrv } from '@grafana/runtime';
2import { PluginMeta } from '@grafana/data';
3
4type PluginCache = {
5  [key: string]: PluginMeta;
6};
7
8const pluginInfoCache: PluginCache = {};
9
10export function getPluginSettings(pluginId: string): Promise<PluginMeta> {
11  const v = pluginInfoCache[pluginId];
12  if (v) {
13    return Promise.resolve(v);
14  }
15  return getBackendSrv()
16    .get(`/api/plugins/${pluginId}/settings`)
17    .then((settings: any) => {
18      pluginInfoCache[pluginId] = settings;
19      return settings;
20    })
21    .catch((err: any) => {
22      return Promise.reject(new Error('Unknown Plugin'));
23    });
24}
25