From ae858fcdd2b671a1220746bc7ceb655b85d9c0cb Mon Sep 17 00:00:00 2001 From: Esteban Beltran Date: Wed, 6 Sep 2023 15:46:31 +0200 Subject: [PATCH] Sandbox: Fix sandbox not loading SystemJs.module objects correctly inside plugins (#74445) --- public/app/features/plugins/sandbox/plugin_dependencies.ts | 2 +- .../app/features/plugins/sandbox/sandbox_plugin_loader.ts | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/public/app/features/plugins/sandbox/plugin_dependencies.ts b/public/app/features/plugins/sandbox/plugin_dependencies.ts index eab8cd0418d..90503ae2b41 100644 --- a/public/app/features/plugins/sandbox/plugin_dependencies.ts +++ b/public/app/features/plugins/sandbox/plugin_dependencies.ts @@ -2,4 +2,4 @@ * Map with all dependencies that are exposed to plugins sandbox * e.g.: @grafana/ui, @grafana/data, etc... */ -export const sandboxPluginDependencies = new Map([]); +export const sandboxPluginDependencies = new Map([]); diff --git a/public/app/features/plugins/sandbox/sandbox_plugin_loader.ts b/public/app/features/plugins/sandbox/sandbox_plugin_loader.ts index df2db7d9962..c62919862bf 100644 --- a/public/app/features/plugins/sandbox/sandbox_plugin_loader.ts +++ b/public/app/features/plugins/sandbox/sandbox_plugin_loader.ts @@ -189,7 +189,11 @@ function resolvePluginDependencies(deps: string[]) { // resolve dependencies const resolvedDeps: CompartmentDependencyModule[] = []; for (const dep of deps) { - const resolvedDep = sandboxPluginDependencies.get(dep); + let resolvedDep = sandboxPluginDependencies.get(dep); + if (resolvedDep?.__useDefault) { + resolvedDep = resolvedDep.default; + } + if (!resolvedDep) { throw new Error(`[sandbox] Could not resolve dependency ${dep}`); }