Print short []s and {}s for empty arrays/maps
This commit is contained in:
parent
aeefc27a08
commit
d05cbfa4ec
|
@ -463,19 +463,29 @@ func printPropertyValue(b *bytes.Buffer, v resource.PropertyValue, planning bool
|
||||||
} else if v.IsString() {
|
} else if v.IsString() {
|
||||||
b.WriteString(fmt.Sprintf("%q", v.StringValue()))
|
b.WriteString(fmt.Sprintf("%q", v.StringValue()))
|
||||||
} else if v.IsArray() {
|
} else if v.IsArray() {
|
||||||
b.WriteString(fmt.Sprintf("[\n"))
|
arr := v.ArrayValue()
|
||||||
for i, elem := range v.ArrayValue() {
|
if len(arr) == 0 {
|
||||||
newIndent := printArrayElemHeader(b, i, indent)
|
b.WriteString("[]")
|
||||||
printPropertyValue(b, elem, planning, newIndent)
|
} else {
|
||||||
|
b.WriteString(fmt.Sprintf("[\n"))
|
||||||
|
for i, elem := range arr {
|
||||||
|
newIndent := printArrayElemHeader(b, i, indent)
|
||||||
|
printPropertyValue(b, elem, planning, newIndent)
|
||||||
|
}
|
||||||
|
b.WriteString(fmt.Sprintf("%s]", indent))
|
||||||
}
|
}
|
||||||
b.WriteString(fmt.Sprintf("%s]", indent))
|
|
||||||
} else if v.IsComputed() || v.IsOutput() {
|
} else if v.IsComputed() || v.IsOutput() {
|
||||||
b.WriteString(v.TypeString())
|
b.WriteString(v.TypeString())
|
||||||
} else {
|
} else {
|
||||||
contract.Assert(v.IsObject())
|
contract.Assert(v.IsObject())
|
||||||
b.WriteString("{\n")
|
obj := v.ObjectValue()
|
||||||
printObject(b, v.ObjectValue(), planning, indent+" ")
|
if len(obj) == 0 {
|
||||||
b.WriteString(fmt.Sprintf("%s}", indent))
|
b.WriteString("{}")
|
||||||
|
} else {
|
||||||
|
b.WriteString("{\n")
|
||||||
|
printObject(b, obj, planning, indent+" ")
|
||||||
|
b.WriteString(fmt.Sprintf("%s}", indent))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
b.WriteString("\n")
|
b.WriteString("\n")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue