grafana/public/app/features/plugins/pluginSettings.ts
Josh Hunt 3c6e0e8ef8
Chore: ESlint import order (#44959)
* 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
2022-04-22 14:33:13 +01:00

33 lines
858 B
TypeScript

import { PluginMeta } from '@grafana/data';
import { getBackendSrv } from '@grafana/runtime';
type PluginCache = {
[key: string]: PluginMeta;
};
const pluginInfoCache: PluginCache = {};
export function getPluginSettings(pluginId: string): Promise<PluginMeta> {
const v = pluginInfoCache[pluginId];
if (v) {
return Promise.resolve(v);
}
return getBackendSrv()
.get(`/api/plugins/${pluginId}/settings`)
.then((settings: any) => {
pluginInfoCache[pluginId] = settings;
return settings;
})
.catch((err: any) => {
return Promise.reject(new Error('Unknown Plugin'));
});
}
export const clearPluginSettingsCache = (pluginId?: string) => {
if (pluginId) {
return delete pluginInfoCache[pluginId];
}
// clear all
return Object.keys(pluginInfoCache).forEach((key) => delete pluginInfoCache[key]);
};