mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-13 11:38:36 -05:00
33 lines
1.4 KiB
TypeScript
33 lines
1.4 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import { IServerChannel } from 'vs/base/parts/ipc/common/ipc';
|
|
import { Event } from 'vs/base/common/event';
|
|
import { IUserDataSyncService } from 'vs/platform/userDataSync/common/userDataSync';
|
|
|
|
export class UserDataSyncChannel implements IServerChannel {
|
|
|
|
constructor(private readonly service: IUserDataSyncService) { }
|
|
|
|
listen(_: unknown, event: string): Event<any> {
|
|
switch (event) {
|
|
case 'onDidChangeStatus': return this.service.onDidChangeStatus;
|
|
case 'onDidChangeLocal': return this.service.onDidChangeLocal;
|
|
}
|
|
throw new Error(`Event not found: ${event}`);
|
|
}
|
|
|
|
call(context: any, command: string, args?: any): Promise<any> {
|
|
switch (command) {
|
|
case 'sync': return this.service.sync(args[0]);
|
|
case '_getInitialStatus': return Promise.resolve(this.service.status);
|
|
case 'getConflictsSource': return Promise.resolve(this.service.conflictsSource);
|
|
case 'getRemoteExtensions': return this.service.getRemoteExtensions();
|
|
case 'removeExtension': return this.service.removeExtension(args[0]);
|
|
}
|
|
throw new Error('Invalid call');
|
|
}
|
|
}
|