PluginSettingsCache.ts 653 B

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