fix broken layering

This commit is contained in:
Joao Moreno
2018-08-20 17:58:07 +02:00
parent b14b7827d5
commit 2c7366cf33
45 changed files with 363 additions and 371 deletions
@@ -0,0 +1,58 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { TPromise } from 'vs/base/common/winjs.base';
import { IChannel } from 'vs/base/parts/ipc/node/ipc';
import { IWorkspacesService, IWorkspaceIdentifier, IWorkspaceFolderCreationData, IWorkspacesMainService } from 'vs/platform/workspaces/common/workspaces';
import URI from 'vs/base/common/uri';
import { Event } from 'vs/base/common/event';
export interface IWorkspacesChannel extends IChannel {
call(command: 'createWorkspace', arg: [IWorkspaceFolderCreationData[]]): TPromise<string>;
call(command: string, arg?: any): TPromise<any>;
}
export class WorkspacesChannel implements IWorkspacesChannel {
constructor(private service: IWorkspacesMainService) { }
listen<T>(event: string, arg?: any): Event<T> {
throw new Error('No events');
}
call(command: string, arg?: any): TPromise<any> {
switch (command) {
case 'createWorkspace': {
const rawFolders: IWorkspaceFolderCreationData[] = arg;
let folders: IWorkspaceFolderCreationData[];
if (Array.isArray(rawFolders)) {
folders = rawFolders.map(rawFolder => {
return {
uri: URI.revive(rawFolder.uri), // convert raw URI back to real URI
name: rawFolder.name
} as IWorkspaceFolderCreationData;
});
}
return this.service.createWorkspace(folders);
}
}
return void 0;
}
}
export class WorkspacesChannelClient implements IWorkspacesService {
_serviceBrand: any;
constructor(private channel: IWorkspacesChannel) { }
createWorkspace(folders?: IWorkspaceFolderCreationData[]): TPromise<IWorkspaceIdentifier> {
return this.channel.call('createWorkspace', folders);
}
}