Skip to content

Commit 8b22e02

Browse files
committed
move user data sync store service to platform
1 parent 1ee616d commit 8b22e02

8 files changed

Lines changed: 34 additions & 60 deletions

File tree

src/vs/platform/userDataSync/common/userDataSync.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,27 @@ export class UserDataSyncStoreError extends Error {
5858
}
5959

6060
export interface IUserDataSyncStore {
61-
61+
readonly name: string;
6262
read(key: string): Promise<IUserData | null>;
63-
6463
write(key: string, content: string, ref: string | null): Promise<string>;
64+
}
65+
66+
export const IUserDataSyncStoreService = createDecorator<IUserDataSyncStoreService>('IUserDataSyncStoreService');
67+
68+
export interface IUserDataSyncStoreService {
69+
_serviceBrand: undefined;
6570

71+
readonly onDidChangeEnablement: Event<boolean>;
72+
readonly enabled: boolean;
73+
74+
registerUserDataSyncStore(userDataSyncStore: IUserDataSyncStore): void;
75+
deregisterUserDataSyncStore(): void;
76+
77+
read(key: string): Promise<IUserData | null>;
78+
write(key: string, content: string, ref: string | null): Promise<string>;
6679
}
6780

81+
6882
export enum SyncStatus {
6983
Uninitialized = 'uninitialized',
7084
Idle = 'idle',

src/vs/workbench/services/userData/common/userDataSyncStoreService.ts renamed to src/vs/platform/userDataSync/common/userDataSyncStoreService.ts

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,17 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import { Disposable, } from 'vs/base/common/lifecycle';
7-
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
87
import { Emitter, Event } from 'vs/base/common/event';
9-
import { IUserDataSyncStore, IUserData, UserDataSyncStoreError, toUserDataSyncStoreErrorCode } from 'vs/platform/userDataSync/common/userDataSync';
10-
import { IUserDataSyncStoreService } from 'vs/workbench/services/userData/common/userData';
8+
import { IUserDataSyncStore, IUserData, UserDataSyncStoreError, toUserDataSyncStoreErrorCode, IUserDataSyncStoreService } from 'vs/platform/userDataSync/common/userDataSync';
119
import { ILogService } from 'vs/platform/log/common/log';
1210

1311
export class UserDataSyncStoreService extends Disposable implements IUserDataSyncStoreService {
1412

1513
_serviceBrand: any;
1614

1715
private userDataSyncStore: IUserDataSyncStore | null = null;
18-
private name: string | null = null;
1916

17+
get enabled(): boolean { return !!this.userDataSyncStore; }
2018
private readonly _onDidChangeEnablement: Emitter<boolean> = this._register(new Emitter<boolean>());
2119
readonly onDidChangeEnablement: Event<boolean> = this._onDidChangeEnablement.event;
2220

@@ -26,30 +24,20 @@ export class UserDataSyncStoreService extends Disposable implements IUserDataSyn
2624
super();
2725
}
2826

29-
registerUserDataSyncStore(name: string, userDataSyncStore: IUserDataSyncStore): void {
27+
registerUserDataSyncStore(userDataSyncStore: IUserDataSyncStore): void {
3028
if (this.userDataSyncStore) {
31-
this.logService.warn(`A user data sync store '${this.name}' already registered. Hence ignoring the newly registered '${name}' store.`);
29+
this.logService.warn(`A user data sync store '${this.userDataSyncStore.name}' already registered. Hence ignoring the newly registered '${userDataSyncStore.name}' store.`);
3230
return;
3331
}
3432
this.userDataSyncStore = userDataSyncStore;
35-
this.name = name;
3633
this._onDidChangeEnablement.fire(true);
3734
}
3835

3936
deregisterUserDataSyncStore(): void {
4037
this.userDataSyncStore = null;
41-
this.name = null;
4238
this._onDidChangeEnablement.fire(false);
4339
}
4440

45-
getName(): string | null {
46-
return this.name;
47-
}
48-
49-
isEnabled(): boolean {
50-
return !!this.userDataSyncStore;
51-
}
52-
5341
read(key: string): Promise<IUserData | null> {
5442
if (!this.userDataSyncStore) {
5543
throw new Error('No user sync store exists.');
@@ -67,5 +55,3 @@ export class UserDataSyncStoreService extends Disposable implements IUserDataSyn
6755
}
6856

6957
}
70-
71-
registerSingleton(IUserDataSyncStoreService, UserDataSyncStoreService);

src/vs/workbench/api/browser/mainThreadUserData.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
import { Disposable, toDisposable } from 'vs/base/common/lifecycle';
77
import { MainContext, ExtHostContext, IExtHostContext, MainThreadUserDataShape, ExtHostUserDataShape } from '../common/extHost.protocol';
88
import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers';
9-
import { IUserData } from 'vs/platform/userDataSync/common/userDataSync';
10-
import { IUserDataSyncStoreService } from 'vs/workbench/services/userData/common/userData';
9+
import { IUserData, IUserDataSyncStoreService } from 'vs/platform/userDataSync/common/userDataSync';
1110

1211
@extHostNamedCustomer(MainContext.MainThreadUserData)
1312
export class MainThreadUserData extends Disposable implements MainThreadUserDataShape {
@@ -25,7 +24,8 @@ export class MainThreadUserData extends Disposable implements MainThreadUserData
2524

2625
$registerUserDataProvider(name: string): void {
2726
const proxy = this.proxy;
28-
this.userDataSyncStoreService.registerUserDataSyncStore(name, {
27+
this.userDataSyncStoreService.registerUserDataSyncStore({
28+
name,
2929
read(key: string): Promise<IUserData | null> {
3030
return proxy.$read(key);
3131
},

src/vs/workbench/contrib/userData/browser/userData.contribution.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions, IWorkbenchContribution } from 'vs/workbench/common/contributions';
7-
import { IUserDataSyncService, SyncStatus, USER_DATA_PREVIEW_SCHEME } from 'vs/platform/userDataSync/common/userDataSync';
8-
import { IUserDataSyncStoreService } from 'vs/workbench/services/userData/common/userData';
7+
import { IUserDataSyncService, SyncStatus, USER_DATA_PREVIEW_SCHEME, IUserDataSyncStoreService } from 'vs/platform/userDataSync/common/userDataSync';
98
import { localize } from 'vs/nls';
109
import { Disposable, MutableDisposable, toDisposable } from 'vs/base/common/lifecycle';
1110
import { CommandsRegistry } from 'vs/platform/commands/common/commands';
@@ -63,7 +62,7 @@ class UserDataSyncContribution extends Disposable implements IWorkbenchContribut
6362
}
6463

6564
private async sync(loop: boolean): Promise<void> {
66-
if (this.configurationService.getValue<boolean>('userConfiguration.enableSync') && this.userDataSyncStoreService.isEnabled()) {
65+
if (this.configurationService.getValue<boolean>('userConfiguration.enableSync') && this.userDataSyncStoreService.enabled) {
6766
try {
6867
await this.userDataSyncService.sync();
6968
} catch (e) {

src/vs/workbench/services/userData/common/settingsSync.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
import { Disposable } from 'vs/base/common/lifecycle';
77
import { IFileService, FileSystemProviderErrorCode, FileSystemProviderError, IFileContent } from 'vs/platform/files/common/files';
88
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
9-
import { IUserData, UserDataSyncStoreError, UserDataSyncStoreErrorCode, ISynchroniser, SyncStatus, SETTINGS_PREVIEW_RESOURCE, ISettingsMergeService } from 'vs/platform/userDataSync/common/userDataSync';
10-
import { IUserDataSyncStoreService } from 'vs/workbench/services/userData/common/userData';
9+
import { IUserData, UserDataSyncStoreError, UserDataSyncStoreErrorCode, ISynchroniser, SyncStatus, SETTINGS_PREVIEW_RESOURCE, ISettingsMergeService, IUserDataSyncStoreService } from 'vs/platform/userDataSync/common/userDataSync';
1110
import { VSBuffer } from 'vs/base/common/buffer';
1211
import { parse, ParseError } from 'vs/base/common/json';
1312
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';

src/vs/workbench/services/userData/common/userData.ts

Lines changed: 0 additions & 25 deletions
This file was deleted.

src/vs/workbench/services/userData/common/userDataSyncService.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { IUserDataSyncService, SyncStatus, ISynchroniser, USER_DATA_PREVIEW_SCHEME } from 'vs/platform/userDataSync/common/userDataSync';
7-
import { IUserDataSyncStoreService } from 'vs/workbench/services/userData/common/userData';
6+
import { IUserDataSyncService, SyncStatus, ISynchroniser, USER_DATA_PREVIEW_SCHEME, IUserDataSyncStoreService } from 'vs/platform/userDataSync/common/userDataSync';
87
import { Disposable } from 'vs/base/common/lifecycle';
98
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
109
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
@@ -42,7 +41,7 @@ export class UserDataSyncService extends Disposable implements IUserDataSyncServ
4241
}
4342

4443
async sync(): Promise<boolean> {
45-
if (!this.userDataSyncStoreService.isEnabled()) {
44+
if (!this.userDataSyncStoreService.enabled) {
4645
throw new Error('Not enabled');
4746
}
4847
for (const synchroniser of this.synchronisers) {
@@ -54,7 +53,7 @@ export class UserDataSyncService extends Disposable implements IUserDataSyncServ
5453
}
5554

5655
async continueSync(): Promise<boolean> {
57-
if (!this.userDataSyncStoreService.isEnabled()) {
56+
if (!this.userDataSyncStoreService.enabled) {
5857
throw new Error('Not enabled');
5958
}
6059
for (const synchroniser of this.synchronisers) {
@@ -66,7 +65,7 @@ export class UserDataSyncService extends Disposable implements IUserDataSyncServ
6665
}
6766

6867
handleConflicts(): boolean {
69-
if (!this.userDataSyncStoreService.isEnabled()) {
68+
if (!this.userDataSyncStoreService.enabled) {
7069
throw new Error('Not enabled');
7170
}
7271
for (const synchroniser of this.synchronisers) {
@@ -89,7 +88,7 @@ export class UserDataSyncService extends Disposable implements IUserDataSyncServ
8988
}
9089

9190
private computeStatus(): SyncStatus {
92-
if (!this.userDataSyncStoreService.isEnabled()) {
91+
if (!this.userDataSyncStoreService.enabled) {
9392
return SyncStatus.Uninitialized;
9493
}
9594
if (this.synchronisers.some(s => s.status === SyncStatus.HasConflicts)) {

src/vs/workbench/workbench.common.main.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ import 'vs/workbench/services/label/common/labelService';
7979
import 'vs/workbench/services/extensionManagement/common/extensionEnablementService';
8080
import 'vs/workbench/services/notification/common/notificationService';
8181
import 'vs/workbench/services/extensions/common/staticExtensions';
82-
import 'vs/workbench/services/userData/common/userDataSyncStoreService';
8382
import 'vs/workbench/services/userData/common/userDataSyncService';
8483
import 'vs/workbench/services/userData/common/settingsMergeService';
8584
import 'vs/workbench/services/workspace/browser/workspaceEditingService';
@@ -108,6 +107,8 @@ import { IDownloadService } from 'vs/platform/download/common/download';
108107
import { DownloadService } from 'vs/platform/download/common/downloadService';
109108
import { OpenerService } from 'vs/editor/browser/services/openerService';
110109
import { IOpenerService } from 'vs/platform/opener/common/opener';
110+
import { IUserDataSyncStoreService } from 'vs/platform/userDataSync/common/userDataSync';
111+
import { UserDataSyncStoreService } from 'vs/platform/userDataSync/common/userDataSyncStoreService';
111112

112113
registerSingleton(IExtensionGalleryService, ExtensionGalleryService, true);
113114
registerSingleton(IContextViewService, ContextViewService, true);
@@ -121,6 +122,7 @@ registerSingleton(ITextResourceConfigurationService, TextResourceConfigurationSe
121122
registerSingleton(IMenuService, MenuService, true);
122123
registerSingleton(IDownloadService, DownloadService, true);
123124
registerSingleton(IOpenerService, OpenerService, true);
125+
registerSingleton(IUserDataSyncStoreService, UserDataSyncStoreService);
124126

125127
//#endregion
126128

0 commit comments

Comments
 (0)