@@ -468,24 +468,23 @@ actor class Main() = this {
468468 };
469469
470470 public query func getNewPackages() : async [PackageSummary ] {
471- let packagesFirstPub = TrieMap . TrieMap < PackageName , Time . Time > (Text . equal, Text . hash);
471+ let packagesFirstPub = TrieMap . TrieMap < PackageName , ( Time . Time , PackageVersion ) > (Text . equal, Text . hash);
472472 for ((packageId, publication) in packagePublications. entries()) {
473- let (packageName, _ ) = PackageUtils . parsePackageId(packageId);
474- let firstPubTime = Option . get(packagesFirstPub. get(packageName), Time . now()) ;
473+ let (packageName, packageVersion ) = PackageUtils . parsePackageId(packageId);
474+ let firstPubTime = Option . get(packagesFirstPub. get(packageName), ( Time . now(), packageVersion)) . 0 ;
475475 if (publication. time < firstPubTime) {
476- packagesFirstPub. put(packageName, publication. time);
476+ packagesFirstPub. put(packageName, ( publication. time, packageVersion) );
477477 };
478478 };
479479
480- let packagesFirstPubSorted = Array . sort(Iter . toArray(packagesFirstPub. entries()), func (a : (PackageName , Time . Time ) , b : (PackageName , Time . Time )) : Order . Order {
481- Int . compare(b. 1 , a. 1 );
480+ let packagesFirstPubSorted = Array . sort(Iter . toArray(packagesFirstPub. entries()), func (a : (PackageName , ( Time . Time , PackageVersion )) , b : (PackageName , ( Time . Time , PackageVersion ) )) : Order . Order {
481+ Int . compare(b. 1 . 0 , a. 1 . 0 );
482482 });
483483
484484 packagesFirstPubSorted
485485 |> Array . take(_, 5 )
486- |> Array . map< (PackageName , Time . Time ), PackageSummary > (_, func ((packageName, pubTime)) {
487- let ?version = registry. getHighestVersion(packageName) else Debug . trap("Package '" # packageName # "' not found" );
488- let ?summary = _getPackageSummary(packageName, version) else Debug . trap("Package '" # PackageUtils . getPackageId(packageName, version) # "' not found" );
486+ |> Array . map< (PackageName , (Time . Time , PackageVersion )), PackageSummary > (_, func ((packageName, (pubTime, packageVersion))) {
487+ let ?summary = _getPackageSummary(packageName, packageVersion) else Debug . trap("Package '" # PackageUtils . getPackageId(packageName, packageVersion) # "' not found" );
489488 summary;
490489 });
491490 };
0 commit comments