mirror of
https://github.com/arduino/arduino-ide.git
synced 2025-07-13 22:36:32 +00:00
invert uninstalled pkg comparator + cleanup (#1131)
This commit is contained in:
parent
a13a8771d1
commit
953859831c
@ -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) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user