in scripts/generate-docs/exported_fields.go [127:163]
func visitFields(namePrefix string, f *fieldDefinition, records []fieldsTableRecord, disabledField *string) ([]fieldsTableRecord, error) {
var name = namePrefix
if namePrefix != "" {
name += "."
}
name += f.Name
if disabledField != nil && *disabledField != "" && strings.HasPrefix(name, *disabledField) {
// skipping the field because a top level field was disabled
return records, nil
}
if f.Enabled != nil && *f.Enabled == false {
// found a new disabled field so use that one from now on
// this works because all the fields are sorted so the top level fields are encountered first
*disabledField = name
return records, nil
}
if len(f.Fields) == 0 && f.Type != "group" {
records = append(records, fieldsTableRecord{
name: name,
description: f.Description,
aType: f.Type,
})
return records, nil
}
var err error
sort.Sort(f.Fields)
for _, fieldEntry := range f.Fields {
records, err = visitFields(name, fieldEntry, records, disabledField)
if err != nil {
return nil, errors.Wrapf(err, "recursive visiting fields failed (namePrefix: %s)", namePrefix)
}
}
return records, nil
}