getVersions method
- @Route.get('/api/packages/<name>')
Future<Response>
getVersions(
- Request req,
- String name
)
Implementation
@Route.get('/api/packages/<name>')
Future<shelf.Response> getVersions(shelf.Request req, String name) async {
var package = await metaStore.queryPackage(name);
if (package == null) {
return shelf.Response.found(
Uri.parse(upstream).resolve('/api/packages/$name').toString());
}
package.versions.sort((a, b) {
return semver.Version.prioritize(
semver.Version.parse(a.version), semver.Version.parse(b.version));
});
var versionMaps =
package.versions.map((item) => _versionToJson(item, req)).toList();
return _okWithJson({
'name': name,
'latest': versionMaps.last, // TODO: Exclude pre release
'versions': versionMaps,
});
}