@@ -17,7 +17,7 @@ import { CancellationToken } from 'vs/base/common/cancellation';
1717import { IRemoteAuthorityResolverService , ResolvedAuthority } from 'vs/platform/remote/common/remoteAuthorityResolver' ;
1818import { getManifest } from 'vs/platform/extensionManagement/node/extensionManagementUtil' ;
1919
20- export class MulitExtensionManagementService extends Disposable implements IExtensionManagementService {
20+ export class MultiExtensionManagementService extends Disposable implements IExtensionManagementService {
2121
2222 _serviceBrand : any ;
2323
@@ -49,54 +49,66 @@ export class MulitExtensionManagementService extends Disposable implements IExte
4949 }
5050
5151 uninstall ( extension : ILocalExtension , force ?: boolean ) : Promise < void > {
52- return this . getServer ( extension ) . extensionManagementService . uninstall ( extension , force ) ;
52+ const server = this . getServer ( extension ) ;
53+ if ( server ) {
54+ return server . extensionManagementService . uninstall ( extension , force ) ;
55+ }
56+ return Promise . reject ( `Invalid location ${ extension . location . toString ( ) } ` ) ;
5357 }
5458
5559 reinstallFromGallery ( extension : ILocalExtension ) : Promise < void > {
56- return this . getServer ( extension ) . extensionManagementService . reinstallFromGallery ( extension ) ;
60+ const server = this . getServer ( extension ) ;
61+ if ( server ) {
62+ return server . extensionManagementService . reinstallFromGallery ( extension ) ;
63+ }
64+ return Promise . reject ( `Invalid location ${ extension . location . toString ( ) } ` ) ;
5765 }
5866
5967 updateMetadata ( extension : ILocalExtension , metadata : IGalleryMetadata ) : Promise < ILocalExtension > {
60- return this . getServer ( extension ) . extensionManagementService . updateMetadata ( extension , metadata ) ;
68+ const server = this . getServer ( extension ) ;
69+ if ( server ) {
70+ return server . extensionManagementService . updateMetadata ( extension , metadata ) ;
71+ }
72+ return Promise . reject ( `Invalid location ${ extension . location . toString ( ) } ` ) ;
6173 }
6274
6375 zip ( extension : ILocalExtension ) : Promise < URI > {
6476 throw new Error ( 'Not Supported' ) ;
6577 }
6678
6779 unzip ( zipLocation : URI , type : LocalExtensionType ) : Promise < IExtensionIdentifier > {
68- return Promise . all ( this . servers . map ( ( { extensionManagementService } ) => extensionManagementService . unzip ( zipLocation , type ) ) ) . then ( ( ) => null ) ;
80+ return Promise . all ( this . servers . map ( ( { extensionManagementService } ) => extensionManagementService . unzip ( zipLocation , type ) ) ) . then ( ( [ extensionIdentifier ] ) => extensionIdentifier ) ;
6981 }
7082
7183 install ( vsix : URI ) : Promise < IExtensionIdentifier > {
72- if ( ! this . extensionManagementServerService . remoteExtensionManagementServer ) {
73- return this . extensionManagementServerService . localExtensionManagementServer . extensionManagementService . install ( vsix ) ;
84+ if ( this . extensionManagementServerService . remoteExtensionManagementServer ) {
85+ return Promise . all ( [ getManifest ( vsix . fsPath ) , this . hasToSyncExtensions ( ) ] )
86+ . then ( ( [ manifest , syncExtensions ] ) => {
87+ const servers = isUIExtension ( manifest , this . configurationService ) ? [ this . extensionManagementServerService . localExtensionManagementServer ] : syncExtensions ? this . servers : [ this . extensionManagementServerService . remoteExtensionManagementServer ! ] ;
88+ return Promise . all ( servers . map ( server => server . extensionManagementService . install ( vsix ) ) )
89+ . then ( ( [ extensionIdentifier ] ) => extensionIdentifier ) ;
90+ } ) ;
7491 }
75- return Promise . all ( [ getManifest ( vsix . fsPath ) , this . hasToSyncExtensions ( ) ] )
76- . then ( ( [ manifest , syncExtensions ] ) => {
77- const servers = isUIExtension ( manifest , this . configurationService ) ? [ this . extensionManagementServerService . localExtensionManagementServer ] : syncExtensions ? this . servers : [ this . extensionManagementServerService . remoteExtensionManagementServer ] ;
78- return Promise . all ( servers . map ( server => server . extensionManagementService . install ( vsix ) ) )
79- . then ( ( ) => null ) ;
80- } ) ;
92+ return this . extensionManagementServerService . localExtensionManagementServer . extensionManagementService . install ( vsix ) ;
8193 }
8294
8395 installFromGallery ( gallery : IGalleryExtension ) : Promise < void > {
84- if ( ! this . extensionManagementServerService . remoteExtensionManagementServer ) {
85- return this . extensionManagementServerService . localExtensionManagementServer . extensionManagementService . installFromGallery ( gallery ) ;
96+ if ( this . extensionManagementServerService . remoteExtensionManagementServer ) {
97+ return Promise . all ( [ this . extensionGalleryService . getManifest ( gallery , CancellationToken . None ) , this . hasToSyncExtensions ( ) ] )
98+ . then ( ( [ manifest , syncExtensions ] ) => {
99+ const servers = isUIExtension ( manifest , this . configurationService ) ? [ this . extensionManagementServerService . localExtensionManagementServer ] : syncExtensions ? this . servers : [ this . extensionManagementServerService . remoteExtensionManagementServer ! ] ;
100+ return Promise . all ( servers . map ( server => server . extensionManagementService . installFromGallery ( gallery ) ) )
101+ . then ( ( ) => void 0 ) ;
102+ } ) ;
86103 }
87- return Promise . all ( [ this . extensionGalleryService . getManifest ( gallery , CancellationToken . None ) , this . hasToSyncExtensions ( ) ] )
88- . then ( ( [ manifest , syncExtensions ] ) => {
89- const servers = isUIExtension ( manifest , this . configurationService ) ? [ this . extensionManagementServerService . localExtensionManagementServer ] : syncExtensions ? this . servers : [ this . extensionManagementServerService . remoteExtensionManagementServer ] ;
90- return Promise . all ( servers . map ( server => server . extensionManagementService . installFromGallery ( gallery ) ) )
91- . then ( ( ) => null ) ;
92- } ) ;
104+ return this . extensionManagementServerService . localExtensionManagementServer . extensionManagementService . installFromGallery ( gallery ) ;
93105 }
94106
95107 getExtensionsReport ( ) : Promise < IReportedExtension [ ] > {
96108 return this . extensionManagementServerService . localExtensionManagementServer . extensionManagementService . getExtensionsReport ( ) ;
97109 }
98110
99- private getServer ( extension : ILocalExtension ) : IExtensionManagementServer {
111+ private getServer ( extension : ILocalExtension ) : IExtensionManagementServer | null {
100112 return this . extensionManagementServerService . getExtensionManagementServer ( extension . location ) ;
101113 }
102114
0 commit comments