#15756 set metadata always and fix hadPreReleaseVersion

This commit is contained in:
Sandeep Somavarapu 2021-11-24 23:20:46 +01:00
parent 19a83b8c47
commit f26a89c2c3
No known key found for this signature in database
GPG key ID: 1FED25EC4646638B
3 changed files with 12 additions and 14 deletions

View file

@ -288,7 +288,7 @@ class InstallGalleryExtensionTask extends AbstractInstallExtensionTask {
installableExtension.metadata.isMachineScoped = this.options.isMachineScoped || existingExtension?.isMachineScoped;
installableExtension.metadata.isBuiltin = this.options.isBuiltin || existingExtension?.isBuiltin;
installableExtension.metadata.isPreReleaseVersion = this.gallery.properties.isPreReleaseVersion;
installableExtension.metadata.hadPreReleaseVersion = this.gallery.properties.isPreReleaseVersion || existingExtension?.hadPreReleaseVersion;
installableExtension.metadata.hadPreReleaseVersion = this.gallery.hasPreReleaseVersion ? this.gallery.properties.isPreReleaseVersion : existingExtension?.hadPreReleaseVersion;
try {
const local = await this.installExtension(installableExtension, token);

View file

@ -299,9 +299,7 @@ export class ExtensionsScanner extends Disposable {
const changelogUrl = stat.children.find(({ name }) => /^changelog(\.txt|\.md|)$/i.test(name))?.resource;
const identifier = { id: getGalleryExtensionId(manifest.publisher, manifest.name) };
const local = <ILocalExtension>{ type, identifier, manifest, location: extensionLocation, readmeUrl, changelogUrl, publisherDisplayName: null, publisherId: null, isMachineScoped: false, isBuiltin: type === ExtensionType.System };
if (metadata) {
this.setMetadata(local, metadata);
}
this.setMetadata(local, metadata);
return local;
}
} catch (e) {
@ -329,15 +327,15 @@ export class ExtensionsScanner extends Disposable {
}
}
private setMetadata(local: IRelaxedLocalExtension, metadata: Metadata): void {
local.publisherDisplayName = metadata.publisherDisplayName || null;
local.publisherId = metadata.publisherId || null;
local.identifier.uuid = metadata.id;
local.isMachineScoped = !!metadata.isMachineScoped;
local.isPreReleaseVersion = !!metadata.isPreReleaseVersion;
local.hadPreReleaseVersion = !!metadata.hadPreReleaseVersion;
local.isBuiltin = local.type === ExtensionType.System || !!metadata.isBuiltin;
local.installedTimestamp = metadata.installedTimestamp;
private setMetadata(local: IRelaxedLocalExtension, metadata: Metadata | null): void {
local.publisherDisplayName = metadata?.publisherDisplayName || null;
local.publisherId = metadata?.publisherId || null;
local.identifier.uuid = metadata?.id;
local.isMachineScoped = !!metadata?.isMachineScoped;
local.isPreReleaseVersion = !!metadata?.isPreReleaseVersion;
local.hadPreReleaseVersion = !!metadata?.hadPreReleaseVersion;
local.isBuiltin = local.type === ExtensionType.System || !!metadata?.isBuiltin;
local.installedTimestamp = metadata?.installedTimestamp;
}
private async removeUninstalledExtensions(): Promise<void> {

View file

@ -152,7 +152,7 @@ class InstallExtensionTask extends AbstractExtensionTask<ILocalExtension> implem
metadata.publisherId = this.extension.publisherId;
metadata.installedTimestamp = Date.now();
metadata.isPreReleaseVersion = this.extension.properties.isPreReleaseVersion;
metadata.hadPreReleaseVersion = this.extension.properties.isPreReleaseVersion || metadata.hadPreReleaseVersion;
metadata.hadPreReleaseVersion = this.extension.hasPreReleaseVersion ? this.extension.properties.isPreReleaseVersion : metadata.hadPreReleaseVersion;
}
const scannedExtension = URI.isUri(this.extension) ? await this.webExtensionsScannerService.addExtension(this.extension, metadata)