From dda7addf7e1aff1f5575a090503375aa00903622 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Thu, 20 Jul 2023 15:25:45 -0700 Subject: [PATCH] cache --- d2cli/main.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/d2cli/main.go b/d2cli/main.go index 629ec831ad..0f0e8167bd 100644 --- a/d2cli/main.go +++ b/d2cli/main.go @@ -341,7 +341,12 @@ func Run(ctx context.Context, ms *xmain.State) (err error) { } func LayoutResolver(ctx context.Context, ms *xmain.State, plugins []d2plugin.Plugin) func(engine string) (d2graph.LayoutGraph, error) { + cached := make(map[string]d2graph.LayoutGraph) return func(engine string) (d2graph.LayoutGraph, error) { + if c, ok := cached[engine]; ok { + return c, nil + } + plugin, err := d2plugin.FindPlugin(ctx, plugins, engine) if err != nil { if errors.Is(err, exec.ErrNotFound) { @@ -355,6 +360,7 @@ func LayoutResolver(ctx context.Context, ms *xmain.State, plugins []d2plugin.Plu return nil, err } + cached[engine] = plugin.Layout return plugin.Layout, nil } }