From 33539fdddffd7ab9ab914b193079d0251f4efa97 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Wed, 10 May 2023 16:39:42 -0700 Subject: [PATCH] d2oracle get obj order --- d2oracle/get.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/d2oracle/get.go b/d2oracle/get.go index af831acd6..69820e5a7 100644 --- a/d2oracle/get.go +++ b/d2oracle/get.go @@ -52,6 +52,22 @@ func GetEdge(g *d2graph.Graph, absID string) *d2graph.Edge { return nil } +func GetObjOrder(g *d2graph.Graph) []string { + var order []string + + queue := []*d2graph.Object{g.Root} + for len(queue) > 0 { + curr := queue[0] + queue = queue[1:] + order = append(order, curr.AbsID()) + for _, ch := range curr.ChildrenArray { + queue = append(queue, ch) + } + } + + return order +} + func IsLabelKeyID(key, label string) bool { mk, err := d2parser.ParseMapKey(key) if err != nil {