func flattenObjects()

in scripts/generate_schema_docs/main.go [157:176]


func flattenObjects(s *schema, props map[string]*property, prefix string, nameIsPattern bool) {
	for name, prop := range props {
		if nameIsPattern {
			prop.Pattern = name
			name = "*pattern*"
		}

		name = prefix + name
		s.Properties[name] = prop
		switch prop.Type {
		case "object":
			flattenObjects(s, prop.Properties, name+".", false)
			flattenObjects(s, prop.PatternProperties, name+".", true)
		case "array":
			prop.Type = fmt.Sprintf("array(%s)", prop.Items.Type)
			flattenObjects(s, prop.Items.Properties, name+".", false)
			flattenObjects(s, prop.Items.PatternProperties, name+".", true)
		}
	}
}