From ce1be302ee1bbcb130133ad166c9352e9885fd49 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Fri, 25 Aug 2023 10:37:28 +0200 Subject: [PATCH] Expose Key node on Low schema proxy --- datamodel/low/base/schema_proxy.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/datamodel/low/base/schema_proxy.go b/datamodel/low/base/schema_proxy.go index 5b1792e..3e4c727 100644 --- a/datamodel/low/base/schema_proxy.go +++ b/datamodel/low/base/schema_proxy.go @@ -54,10 +54,12 @@ type SchemaProxy struct { } // Build will prepare the SchemaProxy for rendering, it does not build the Schema, only sets up internal state. -func (sp *SchemaProxy) Build(root *yaml.Node, idx *index.SpecIndex) error { - sp.vn = root +// Key maybe nil if absent. +func (sp *SchemaProxy) Build(key, value *yaml.Node, idx *index.SpecIndex) error { + sp.kn = key + sp.vn = value sp.idx = idx - if rf, _, r := utils.IsNodeRefValue(root); rf { + if rf, _, r := utils.IsNodeRefValue(value); rf { sp.isReference = true sp.referenceLookup = r } @@ -127,6 +129,11 @@ func (sp *SchemaProxy) GetSchemaReference() string { return sp.referenceLookup } +// GetKeyNode will return the yaml.Node pointer that is a key for value node. +func (sp *SchemaProxy) GetKeyNode() *yaml.Node { + return sp.kn +} + // GetValueNode will return the yaml.Node pointer used by the proxy to generate the Schema. func (sp *SchemaProxy) GetValueNode() *yaml.Node { return sp.vn