/usr/share/grafana/public/app/features/plugins
import { PluginMeta } from '@grafana/data'; import { BackendSrvRequest, getBackendSrv } from '@grafana/runtime'; type PluginCache = { [key: string]: PluginMeta; }; const pluginInfoCache: PluginCache = {}; export function getPluginSettings(pluginId: string, options?: Partial<BackendSrvRequest>): Promise<PluginMeta> { const v = pluginInfoCache[pluginId]; if (v) { return Promise.resolve(v); } return getBackendSrv() .get(`/api/plugins/${pluginId}/settings`, undefined, undefined, { ...options, validatePath: true }) .then((settings) => { pluginInfoCache[pluginId] = settings; return settings; }) .catch((e) => { // User does not have access to plugin if (typeof e === 'object' && e !== null && 'status' in e && (e.status === 403 || e.status === 401)) { e.isHandled = true; return Promise.reject(e); } 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]); };
.
Edit
..
Edit
admin
Edit
built_in_plugins.ts
Edit
cdn
Edit
components
Edit
datasource_srv.test.ts
Edit
datasource_srv.ts
Edit
extensions
Edit
importPanelPlugin.ts
Edit
importer
Edit
loader
Edit
pluginPreloader.test.ts
Edit
pluginPreloader.ts
Edit
pluginSettings.test.ts
Edit
pluginSettings.ts
Edit
routes.tsx
Edit
sandbox
Edit
utils.test.ts
Edit
utils.ts
Edit