Scout/internal/registry/list.go
2026-08-30 21:50:03 +08:00

23 lines
586 B
Go

package registry
import "sort"
func (r *Registry) List() []Package {
r.mu.RLock()
defer r.mu.RUnlock()
result := make([]Package, 0, len(r.packages))
for _, versions := range r.packages {
if len(versions) == 0 {
continue
}
keys := make([]string, 0, len(versions))
for version := range versions {
keys = append(keys, version)
}
sort.Slice(keys, func(i, j int) bool { return CompareVersions(keys[i], keys[j]) > 0 })
result = append(result, versions[keys[0]])
}
sort.Slice(result, func(i, j int) bool { return result[i].Name < result[j].Name })
return result
}