提交 847f289f 编写于 作者: S Sandeep Somavarapu

use async await

上级 13b3a9f5
...@@ -156,56 +156,50 @@ export class Main { ...@@ -156,56 +156,50 @@ export class Main {
const valid = await this.validate(manifest, force); const valid = await this.validate(manifest, force);
if (valid) { if (valid) {
return this.extensionManagementService.install(URI.file(extension), doNotSync).then(id => { try {
await this.extensionManagementService.install(URI.file(extension), doNotSync);
console.log(localize('successVsixInstall', "Extension '{0}' was successfully installed.", getBaseLabel(extension))); console.log(localize('successVsixInstall', "Extension '{0}' was successfully installed.", getBaseLabel(extension)));
return manifest; return manifest;
}, error => { } catch (error) {
if (isPromiseCanceledError(error)) { if (isPromiseCanceledError(error)) {
console.log(localize('cancelVsixInstall', "Cancelled installing extension '{0}'.", getBaseLabel(extension))); console.log(localize('cancelVsixInstall', "Cancelled installing extension '{0}'.", getBaseLabel(extension)));
return null; return null;
} else { } else {
return Promise.reject(error); throw error;
} }
}); }
} }
return null; return null;
} }
const [id, version] = getIdAndVersion(extension); const [id, version] = getIdAndVersion(extension);
return this.extensionManagementService.getInstalled(ExtensionType.User) let galleryExtension: IGalleryExtension | null = null;
.then(installed => this.extensionGalleryService.getCompatibleExtension({ id }, version) try {
.then<IGalleryExtension>(null, err => { galleryExtension = await this.extensionGalleryService.getCompatibleExtension({ id }, version);
if (err.responseText) { } catch (err) {
try { const response = JSON.parse(err.responseText);
const response = JSON.parse(err.responseText); throw new Error(response.message);
return Promise.reject(response.message); }
} catch (e) { if (!galleryExtension) {
// noop throw new Error(`${notFound(version ? `${id}@${version}` : id)}\n${useId}`);
} }
}
return Promise.reject(err);
})
.then(async extension => {
if (!extension) {
return Promise.reject(new Error(`${notFound(version ? `${id}@${version}` : id)}\n${useId}`));
}
const manifest = await this.extensionGalleryService.getManifest(extension, CancellationToken.None); const manifest = await this.extensionGalleryService.getManifest(galleryExtension, CancellationToken.None);
const [installedExtension] = installed.filter(e => areSameExtensions(e.identifier, { id })); const installed = await this.extensionManagementService.getInstalled(ExtensionType.User);
if (installedExtension) { const [installedExtension] = installed.filter(e => areSameExtensions(e.identifier, { id }));
if (extension.version === installedExtension.manifest.version) { if (installedExtension) {
console.log(localize('alreadyInstalled', "Extension '{0}' is already installed.", version ? `${id}@${version}` : id)); if (galleryExtension.version === installedExtension.manifest.version) {
return Promise.resolve(null); console.log(localize('alreadyInstalled', "Extension '{0}' is already installed.", version ? `${id}@${version}` : id));
} return Promise.resolve(null);
if (!version && !force) { }
console.log(localize('forceUpdate', "Extension '{0}' v{1} is already installed, but a newer version {2} is available in the marketplace. Use '--force' option to update to newer version.", id, installedExtension.manifest.version, extension.version)); if (!version && !force) {
return Promise.resolve(null); console.log(localize('forceUpdate', "Extension '{0}' v{1} is already installed, but a newer version {2} is available in the marketplace. Use '--force' option to update to newer version.", id, installedExtension.manifest.version, galleryExtension.version));
} return Promise.resolve(null);
console.log(localize('updateMessage', "Updating the extension '{0}' to the version {1}", id, extension.version)); }
} console.log(localize('updateMessage', "Updating the extension '{0}' to the version {1}", id, galleryExtension.version));
await this.installFromGallery(id, extension, doNotSync); }
return manifest; await this.installFromGallery(id, galleryExtension, doNotSync);
})); return manifest;
} }
private async validate(manifest: IExtensionManifest, force: boolean): Promise<boolean> { private async validate(manifest: IExtensionManifest, force: boolean): Promise<boolean> {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册