Files
grafana/pkg/plugins/pluginassets/pluginassets.go
Will Browne f6ed9e6ff0 Plugins: Introduce plugin asset provider (#108063)
* introduce plugin asset provider

* simply with PR feedback

* fix linter
2025-07-17 16:20:35 +01:00

29 lines
691 B
Go

package pluginassets
import (
"path"
"path/filepath"
"github.com/grafana/grafana/pkg/plugins"
)
var _ Provider = (*LocalProvider)(nil)
type LocalProvider struct{}
func ProvideService() *LocalProvider {
return &LocalProvider{}
}
func (s *LocalProvider) Module(plugin PluginInfo) (string, error) {
if plugin.Class == plugins.ClassCore && filepath.Base(plugin.FS.Base()) != "dist" {
return path.Join("core:plugin", filepath.Base(plugin.FS.Base())), nil
}
return s.AssetPath(plugin, "module.js")
}
func (s *LocalProvider) AssetPath(plugin PluginInfo, assetPath ...string) (string, error) {
return path.Join("public/plugins", plugin.JsonData.ID, path.Join(assetPath...)), nil
}