@@ -148,7 +148,11 @@ export class ExtensionManagementService extends AbstractExtensionManagementServi
148
148
149
149
async updateMetadata ( local : ILocalExtension , metadata : IGalleryMetadata ) : Promise < ILocalExtension > {
150
150
this . logService . trace ( 'ExtensionManagementService#updateMetadata' , local . identifier . id ) ;
151
- local = await this . extensionsScanner . saveMetadataForLocalExtension ( local , { ...( ( < ILocalExtensionManifest > local . manifest ) . __metadata || { } ) , ...metadata } ) ;
151
+ const localMetadata : Metadata = { ...( ( < ILocalExtensionManifest > local . manifest ) . __metadata || { } ) , ...metadata } ;
152
+ if ( metadata . isPreReleaseVersion ) {
153
+ localMetadata . preRelease = true ;
154
+ }
155
+ local = await this . extensionsScanner . saveMetadataForLocalExtension ( local , localMetadata ) ;
152
156
this . manifestCache . invalidate ( ) ;
153
157
return local ;
154
158
}
@@ -354,7 +358,7 @@ class InstallVSIXTask extends AbstractInstallExtensionTask {
354
358
const identifierWithVersion = new ExtensionIdentifierWithVersion ( this . identifier , this . manifest . version ) ;
355
359
const installedExtensions = await this . extensionsScanner . scanExtensions ( ExtensionType . User ) ;
356
360
const existing = installedExtensions . find ( i => areSameExtensions ( this . identifier , i . identifier ) ) ;
357
- const metadata = await this . getMetadata ( this . identifier . id , token ) ;
361
+ const metadata = await this . getMetadata ( this . identifier . id , this . manifest . version , token ) ;
358
362
metadata . isMachineScoped = this . options . isMachineScoped || existing ?. isMachineScoped ;
359
363
metadata . isBuiltin = this . options . isBuiltin || existing ?. isBuiltin ;
360
364
@@ -385,11 +389,14 @@ class InstallVSIXTask extends AbstractInstallExtensionTask {
385
389
return this . installExtension ( { zipPath : path . resolve ( this . location . fsPath ) , identifierWithVersion, metadata } , token ) ;
386
390
}
387
391
388
- private async getMetadata ( name : string , token : CancellationToken ) : Promise < Metadata > {
392
+ private async getMetadata ( id : string , version : string , token : CancellationToken ) : Promise < Metadata > {
389
393
try {
390
- const galleryExtension = ( await this . galleryService . query ( { names : [ name ] , pageSize : 1 } , token ) ) . firstPage [ 0 ] ;
394
+ let [ galleryExtension ] = await this . galleryService . getExtensions ( [ { id, version } ] , token ) ;
395
+ if ( ! galleryExtension ) {
396
+ [ galleryExtension ] = await this . galleryService . getExtensions ( [ { id } ] , token ) ;
397
+ }
391
398
if ( galleryExtension ) {
392
- return { id : galleryExtension . identifier . uuid , publisherDisplayName : galleryExtension . publisherDisplayName , publisherId : galleryExtension . publisherId } ;
399
+ return { id : galleryExtension . identifier . uuid , publisherDisplayName : galleryExtension . publisherDisplayName , publisherId : galleryExtension . publisherId , isPreReleaseVersion : galleryExtension . properties . isPreReleaseVersion , preRelease : galleryExtension . properties . isPreReleaseVersion } ;
393
400
}
394
401
} catch ( error ) {
395
402
/* Ignore Error */
0 commit comments