Skip to content

Commit 009703b

Browse files
committed
1 parent a239c60 commit 009703b

1 file changed

Lines changed: 18 additions & 13 deletions

File tree

src/vs/platform/extensionManagement/common/extensionGalleryService.ts

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -605,7 +605,7 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
605605
return Promise.resolve('');
606606
}
607607

608-
getAllVersions(extension: IGalleryExtension, compatible: boolean): Promise<IGalleryExtensionVersion[]> {
608+
async getAllVersions(extension: IGalleryExtension, compatible: boolean): Promise<IGalleryExtensionVersion[]> {
609609
let query = new Query()
610610
.withFlags(Flags.IncludeVersions, Flags.IncludeFiles, Flags.IncludeVersionProperties)
611611
.withPage(1, 1)
@@ -617,19 +617,24 @@ export class ExtensionGalleryService implements IExtensionGalleryService {
617617
query = query.withFilter(FilterType.ExtensionName, extension.identifier.id);
618618
}
619619

620-
return this.queryGallery(query, CancellationToken.None).then(({ galleryExtensions }) => {
621-
if (galleryExtensions.length) {
622-
if (compatible) {
623-
return Promise.all(galleryExtensions[0].versions.map(v => this.getEngine(v).then(engine => isEngineValid(engine, this.productService.version) ? v : null)))
624-
.then(versions => versions
625-
.filter(v => !!v)
626-
.map(v => ({ version: v!.version, date: v!.lastUpdated })));
627-
} else {
628-
return galleryExtensions[0].versions.map(v => ({ version: v.version, date: v.lastUpdated }));
629-
}
620+
const result: IGalleryExtensionVersion[] = [];
621+
const { galleryExtensions } = await this.queryGallery(query, CancellationToken.None);
622+
if (galleryExtensions.length) {
623+
if (compatible) {
624+
await Promise.all(galleryExtensions[0].versions.map(async v => {
625+
let engine: string | undefined;
626+
try {
627+
engine = await this.getEngine(v);
628+
} catch (error) { /* Ignore error and skip version */ }
629+
if (engine && isEngineValid(engine, this.productService.version)) {
630+
result.push({ version: v!.version, date: v!.lastUpdated });
631+
}
632+
}));
633+
} else {
634+
result.push(...galleryExtensions[0].versions.map(v => ({ version: v.version, date: v.lastUpdated })));
630635
}
631-
return [];
632-
});
636+
}
637+
return result;
633638
}
634639

635640
private getAsset(asset: IGalleryExtensionAsset, options: IRequestOptions = {}, token: CancellationToken = CancellationToken.None): Promise<IRequestContext> {

0 commit comments

Comments
 (0)