@@ -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