invert uninstalled pkg comparator + cleanup (#1131)

This commit is contained in:
David Simpson 2022-07-04 09:11:58 +02:00 committed by GitHub
parent a13a8771d1
commit 953859831c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -264,7 +264,7 @@ export class BoardsServiceImpl
const supportedUserFieldsResp = const supportedUserFieldsResp =
await new Promise<SupportedUserFieldsResponse>((resolve, reject) => { await new Promise<SupportedUserFieldsResponse>((resolve, reject) => {
client.supportedUserFields(supportedUserFieldsReq, (err, resp) => { client.supportedUserFields(supportedUserFieldsReq, (err, resp) => {
(!!err ? reject : resolve)(!!err ? err : resp); !!err ? reject(err) : resolve(resp);
}); });
}); });
return supportedUserFieldsResp.getUserFieldsList().map((e) => { return supportedUserFieldsResp.getUserFieldsList().map((e) => {
@ -286,10 +286,11 @@ export class BoardsServiceImpl
const installedPlatformsReq = new PlatformListRequest(); const installedPlatformsReq = new PlatformListRequest();
installedPlatformsReq.setInstance(instance); installedPlatformsReq.setInstance(instance);
const installedPlatformsResp = await new Promise<PlatformListResponse>( const installedPlatformsResp = await new Promise<PlatformListResponse>(
(resolve, reject) => (resolve, reject) => {
client.platformList(installedPlatformsReq, (err, resp) => client.platformList(installedPlatformsReq, (err, resp) => {
(!!err ? reject : resolve)(!!err ? err : resp) !!err ? reject(err) : resolve(resp);
) });
}
); );
const installedPlatforms = const installedPlatforms =
installedPlatformsResp.getInstalledPlatformsList(); installedPlatformsResp.getInstalledPlatformsList();
@ -298,10 +299,12 @@ export class BoardsServiceImpl
req.setSearchArgs(options.query || ''); req.setSearchArgs(options.query || '');
req.setAllVersions(true); req.setAllVersions(true);
req.setInstance(instance); req.setInstance(instance);
const resp = await new Promise<PlatformSearchResponse>((resolve, reject) => const resp = await new Promise<PlatformSearchResponse>(
client.platformSearch(req, (err, resp) => (resolve, reject) => {
(!!err ? reject : resolve)(!!err ? err : resp) client.platformSearch(req, (err, resp) => {
) !!err ? reject(err) : resolve(resp);
});
}
); );
const packages = new Map<string, BoardsPackage>(); const packages = new Map<string, BoardsPackage>();
const toPackage = (platform: Platform) => { const toPackage = (platform: Platform) => {
@ -337,8 +340,9 @@ export class BoardsServiceImpl
const groupedById: Map<string, Platform[]> = new Map(); const groupedById: Map<string, Platform[]> = new Map();
for (const platform of resp.getSearchOutputList()) { for (const platform of resp.getSearchOutputList()) {
const id = platform.getId(); const id = platform.getId();
if (groupedById.has(id)) { const idGroup = groupedById.get(id);
groupedById.get(id)!.push(platform); if (idGroup) {
idGroup.push(platform);
} else { } else {
groupedById.set(id, [platform]); groupedById.set(id, [platform]);
} }
@ -363,17 +367,20 @@ export class BoardsServiceImpl
if (!leftInstalled && rightInstalled) { if (!leftInstalled && rightInstalled) {
return 1; return 1;
} }
return Installable.Version.COMPARATOR(
left.getLatest(), const invertedVersionComparator =
right.getLatest() Installable.Version.COMPARATOR(left.getLatest(), right.getLatest()) *
); // Higher version comes first. -1;
// Higher version comes first.
return invertedVersionComparator;
}; };
for (const id of groupedById.keys()) { for (const value of groupedById.values()) {
groupedById.get(id)!.sort(installedAwareVersionComparator); value.sort(installedAwareVersionComparator);
} }
for (const id of groupedById.keys()) { for (const value of groupedById.values()) {
for (const platform of groupedById.get(id)!) { for (const platform of value) {
const id = platform.getId(); const id = platform.getId();
const pkg = packages.get(id); const pkg = packages.get(id);
if (pkg) { if (pkg) {