mirror of
https://github.com/grafana/grafana.git
synced 2025-02-13 09:05:45 -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
33 lines
858 B
TypeScript
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]);
|
|
};
|