func collectFields()

in pkg/genlib/fields/yaml.go [37:65]


func collectFields(fieldsFromYaml yamlFields, namePrefix string) Fields {
	fields := make(Fields, 0, len(fieldsFromYaml))
	for _, fieldFromYaml := range fieldsFromYaml {
		field := Field{
			Type:       fieldFromYaml.Type,
			ObjectType: fieldFromYaml.ObjectType,
			Example:    fieldFromYaml.Example,
			Value:      fieldFromYaml.Value,
		}

		if len(namePrefix) == 0 {
			field.Name = fieldFromYaml.Name
		} else {
			field.Name = namePrefix + "." + fieldFromYaml.Name
		}

		if len(fieldFromYaml.Fields) == 0 {
			// There are examples of fields of type "group" with no subfields; ignore these.
			if field.Type != "group" {
				fields = fields.merge(field)
			}
		} else {
			subFields := collectFields(fieldFromYaml.Fields, field.Name)
			fields = fields.merge(subFields...)
		}
	}

	return fields
}