in pkg/sorter/sorter.go [129:158]
func newSorter(instanceTypes []*instancetypes.Details, sortField string, sortDirection string) (*sorter, error) {
var isDescending bool
switch sortDirection {
case SortDescending, SortDesc:
isDescending = true
case SortAscending, SortAsc:
isDescending = false
default:
return nil, fmt.Errorf("invalid sort direction: %s (valid options: %s, %s, %s, %s)", sortDirection, SortAscending, SortAsc, SortDescending, SortDesc)
}
sortField = formatSortField(sortField)
// Create sorterNode objects for each instance type
sorters := []*sorterNode{}
for _, instanceType := range instanceTypes {
newSorter, err := newSorterNode(instanceType, sortField)
if err != nil {
return nil, fmt.Errorf("error creating sorting node: %v", err)
}
sorters = append(sorters, newSorter)
}
return &sorter{
sorters: sorters,
sortField: sortField,
isDescending: isDescending,
}, nil
}