mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-08 09:08:48 +01:00
move user data sync store to workbench
This commit is contained in:
@@ -3,10 +3,12 @@
|
|||||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
import { Disposable, toDisposable } from 'vs/base/common/lifecycle';
|
import { Disposable } from 'vs/base/common/lifecycle';
|
||||||
import { MainContext, ExtHostContext, IExtHostContext, MainThreadUserDataShape, ExtHostUserDataShape } from '../common/extHost.protocol';
|
import { MainContext, ExtHostContext, IExtHostContext, MainThreadUserDataShape, ExtHostUserDataShape } from '../common/extHost.protocol';
|
||||||
import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers';
|
import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers';
|
||||||
import { IUserData, IUserDataSyncStoreService } from 'vs/platform/userDataSync/common/userDataSync';
|
import { IUserData } from 'vs/platform/userDataSync/common/userDataSync';
|
||||||
|
import { Registry } from 'vs/platform/registry/common/platform';
|
||||||
|
import { IUserDataSyncStoresRegistry, Extensions } from 'vs/workbench/services/userDataSync/common/userDataSyncStores';
|
||||||
|
|
||||||
@extHostNamedCustomer(MainContext.MainThreadUserData)
|
@extHostNamedCustomer(MainContext.MainThreadUserData)
|
||||||
export class MainThreadUserData extends Disposable implements MainThreadUserDataShape {
|
export class MainThreadUserData extends Disposable implements MainThreadUserDataShape {
|
||||||
@@ -15,16 +17,14 @@ export class MainThreadUserData extends Disposable implements MainThreadUserData
|
|||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
extHostContext: IExtHostContext,
|
extHostContext: IExtHostContext,
|
||||||
@IUserDataSyncStoreService private readonly userDataSyncStoreService: IUserDataSyncStoreService
|
|
||||||
) {
|
) {
|
||||||
super();
|
super();
|
||||||
this.proxy = extHostContext.getProxy(ExtHostContext.ExtHostUserData);
|
this.proxy = extHostContext.getProxy(ExtHostContext.ExtHostUserData);
|
||||||
this._register(toDisposable(() => this.userDataSyncStoreService.deregisterUserDataSyncStore()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$registerUserDataProvider(id: string, name: string): void {
|
$registerUserDataProvider(id: string, name: string): void {
|
||||||
const proxy = this.proxy;
|
const proxy = this.proxy;
|
||||||
this.userDataSyncStoreService.registerUserDataSyncStore({
|
Registry.as<IUserDataSyncStoresRegistry>(Extensions.UserDataSyncStoresRegistry).registerUserDataSyncStore({
|
||||||
id,
|
id,
|
||||||
name,
|
name,
|
||||||
read(key: string): Promise<IUserData | null> {
|
read(key: string): Promise<IUserData | null> {
|
||||||
@@ -36,8 +36,13 @@ export class MainThreadUserData extends Disposable implements MainThreadUserData
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
$deregisterUserDataProvider(): void {
|
$deregisterUserDataProvider(id: string): void {
|
||||||
this.userDataSyncStoreService.deregisterUserDataSyncStore();
|
Registry.as<IUserDataSyncStoresRegistry>(Extensions.UserDataSyncStoresRegistry).deregisterUserDataSyncStore(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
dispose(): void {
|
||||||
|
const registry = Registry.as<IUserDataSyncStoresRegistry>(Extensions.UserDataSyncStoresRegistry);
|
||||||
|
registry.all.forEach(store => registry.deregisterUserDataSyncStore(store.id));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ export interface MainThreadConfigurationShape extends IDisposable {
|
|||||||
|
|
||||||
export interface MainThreadUserDataShape extends IDisposable {
|
export interface MainThreadUserDataShape extends IDisposable {
|
||||||
$registerUserDataProvider(id: string, name: string): void;
|
$registerUserDataProvider(id: string, name: string): void;
|
||||||
$deregisterUserDataProvider(): void;
|
$deregisterUserDataProvider(id: string): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface MainThreadDiagnosticsShape extends IDisposable {
|
export interface MainThreadDiagnosticsShape extends IDisposable {
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ export class ExtHostUserData implements ExtHostUserDataShape {
|
|||||||
this.userDataProvider = userDataProvider;
|
this.userDataProvider = userDataProvider;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.proxy.$registerUserDataProvider(id, name);
|
this.proxy.$registerUserDataProvider(id, name);
|
||||||
return toDisposable(() => this.proxy.$deregisterUserDataProvider());
|
return toDisposable(() => this.proxy.$deregisterUserDataProvider(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
$read(key: string): Promise<IUserData | null> {
|
$read(key: string): Promise<IUserData | null> {
|
||||||
|
|||||||
@@ -4,11 +4,17 @@
|
|||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
import { Event, Emitter } from 'vs/base/common/event';
|
import { Event, Emitter } from 'vs/base/common/event';
|
||||||
import { IUserDataSyncStore } from 'vs/platform/userDataSync/common/userDataSync';
|
import { IUserData } from 'vs/platform/userDataSync/common/userDataSync';
|
||||||
import { Disposable } from 'vs/base/common/lifecycle';
|
import { Disposable } from 'vs/base/common/lifecycle';
|
||||||
import { values } from 'vs/base/common/map';
|
import { values } from 'vs/base/common/map';
|
||||||
import { Registry } from 'vs/platform/registry/common/platform';
|
import { Registry } from 'vs/platform/registry/common/platform';
|
||||||
|
|
||||||
|
export interface IUserDataSyncStore {
|
||||||
|
readonly id: string;
|
||||||
|
readonly name: string;
|
||||||
|
read(key: string): Promise<IUserData | null>;
|
||||||
|
write(key: string, content: string, ref: string | null): Promise<string>;
|
||||||
|
}
|
||||||
|
|
||||||
export namespace Extensions {
|
export namespace Extensions {
|
||||||
export const UserDataSyncStoresRegistry = 'workbench.registry.userData.syncStores';
|
export const UserDataSyncStoresRegistry = 'workbench.registry.userData.syncStores';
|
||||||
|
|||||||
Reference in New Issue
Block a user