GitRoot

Craft your forge, Build your project, Grow your community freely

Can call cache

In apex_mermaid I was doing:

 1p := &Plugin{
 2    server: server,
 3    canCallCodePlugin: server.CanCallFunc(PLUGIN_CODE, PLUGIN_CODE_FUNC, map[string]string{"code": "", "lang": ""}),
 4    canCallMermaidPlugin: server.CanCallFunc(PLUGIN_MERMAID, PLUGIN_MERMAID_FUNC, map[string]string{"code": ""}),
 5}
 6server.ExportFunc("renderMd", func(args map[string]string) (map[string]string, error) {
 7    if p.canCallMermaidPlugin {
 8        ...
 9    }
10}

But when loading module for conf, there is no right related to project. So server return false. And after that plugin never refresh authorization cache.

To fix quickly I do:

1p := &Plugin{
2    server: server,
3}
4server.ExportFunc("renderMd", func(args map[string]string) (map[string]string, error) {
5    p.canCallCodePlugin = server.CanCallFunc(PLUGIN_CODE, PLUGIN_CODE_FUNC, map[string]string{"code": "", "lang": ""})
6    p.canCallMermaidPlugin = server.CanCallFunc(PLUGIN_MERMAID, PLUGIN_MERMAID_FUNC, map[string]string{"code": ""})
7}

But need to find a proper fix, and a way to explain to future dev that.