grafana/public/app/features/plugins/pluginPreloader.ts
Marcus Andersson e926126d63
Chore: Prevent preloaded plugins from crashing Grafana (#41490)
* if a plugin fails to load, we will not crash grafana.

* preventing the preloaded plugings to crash the whole app on failure.

* updated to unkown.

* fixed issue with angular by moving the preloadPlugin import to the same row as we did import the importPluginModule.
2021-11-10 19:06:55 +01:00

16 lines
532 B
TypeScript

import { PreloadPlugin } from '@grafana/data';
import { importPluginModule } from './plugin_loader';
export async function preloadPlugins(pluginsToPreload: PreloadPlugin[] = []): Promise<void> {
await Promise.all(pluginsToPreload.map(preloadPlugin));
}
async function preloadPlugin(plugin: PreloadPlugin): Promise<void> {
const { path, version } = plugin;
try {
await importPluginModule(path, version);
} catch (error: unknown) {
console.error(`Failed to load plugin: ${path} (version: ${version})`, error);
}
}