packageVersions method

Future<Response> packageVersions(
  1. Request req,
  2. String package
)

Implementation

Future<shelf.Response> packageVersions(
    shelf.Request req, String package) async {
  logger!.info('[packageVersions] $package');
  var pkg = await metaRepo.query(package);
  if (pkg == null) {
    logger!.warning('$package not found in unpuber, get from pub.dev.');
    return _pubDevPkg(package);
  }
  pkg.versions.sort((a, b) {
    return semver.Version.prioritize(
        semver.Version.parse(a.version), semver.Version.parse(b.version));
  });
  var versionMaps =
      pkg.versions.map((it) => _versionToJson(it, req)).toList();
  return _ok(
      {'name': package, 'latest': versionMaps.last, 'versions': versionMaps});
}