getPackageVersions method

  1. @Route.get('/packages/<name>.json')
Future<Response> getPackageVersions(
  1. Request req,
  2. String name
)

Implementation

@Route.get('/packages/<name>.json')
Future<shelf.Response> getPackageVersions(
    shelf.Request req, String name) async {
  var package = await metaStore.queryPackage(name);
  if (package == null) {
    return _badRequest('package not exists', status: HttpStatus.notFound);
  }

  var versions = package.versions.map((v) => v.version).toList();
  versions.sort((a, b) {
    return semver.Version.prioritize(
        semver.Version.parse(b), semver.Version.parse(a));
  });

  return _okWithJson({
    'name': name,
    'versions': versions,
  });
}