55
66import { createDecorator } from 'vs/platform/instantiation/common/instantiation' ;
77import { Event } from 'vs/base/common/event' ;
8- import { URI } from 'vs/base/common/uri' ;
9-
10- export interface IUserData {
11- ref : string ;
12- content : string ;
13- }
14-
15- export enum UserDataSyncStoreErrorCode {
16- Rejected = 'Rejected' ,
17- Unknown = 'Unknown'
18- }
19-
20- export function markAsUserDataSyncStoreError ( error : Error , code : UserDataSyncStoreErrorCode ) : Error {
21- error . name = code ? `${ code } (UserDataSyncStoreError)` : `UserDataSyncStoreError` ;
22-
23- return error ;
24- }
25-
26- export function toUserDataSyncStoreErrorCode ( error : Error | undefined | null ) : UserDataSyncStoreErrorCode {
27-
28- // Guard against abuse
29- if ( ! error ) {
30- return UserDataSyncStoreErrorCode . Unknown ;
31- }
32-
33- // FileSystemProviderError comes with the code
34- if ( error instanceof UserDataSyncStoreError ) {
35- return error . code ;
36- }
37-
38- // Any other error, check for name match by assuming that the error
39- // went through the markAsUserDataSyncStoreError() method
40- const match = / ^ ( .+ ) \( U s e r D a t a S y n c S t o r e E r r o r \) $ / . exec ( error . name ) ;
41- if ( ! match ) {
42- return UserDataSyncStoreErrorCode . Unknown ;
43- }
44-
45- switch ( match [ 1 ] ) {
46- case UserDataSyncStoreErrorCode . Rejected : return UserDataSyncStoreErrorCode . Rejected ;
47- }
48-
49- return UserDataSyncStoreErrorCode . Unknown ;
50- }
51-
52- export class UserDataSyncStoreError extends Error {
53-
54- constructor ( message : string , public readonly code : UserDataSyncStoreErrorCode ) {
55- super ( message ) ;
56- }
57-
58- }
59-
60- export interface IUserDataSyncStore {
61-
62- read ( key : string ) : Promise < IUserData | null > ;
63-
64- write ( key : string , content : string , ref : string | null ) : Promise < string > ;
65-
66- }
8+ import { IUserDataSyncStore , IUserData } from 'vs/platform/userDataSync/common/userDataSync' ;
679
6810export const IUserDataSyncStoreService = createDecorator < IUserDataSyncStoreService > ( 'IUserDataSyncStoreService' ) ;
6911
@@ -72,42 +14,12 @@ export interface IUserDataSyncStoreService {
7214 _serviceBrand : undefined ;
7315
7416 readonly onDidChangeEnablement : Event < boolean > ;
75-
7617 isEnabled ( ) : boolean ;
7718
7819 registerUserDataSyncStore ( name : string , userDataSyncStore : IUserDataSyncStore ) : void ;
79-
8020 deregisterUserDataSyncStore ( ) : void ;
81-
8221 getName ( ) : string | null ;
83-
8422 read ( key : string ) : Promise < IUserData | null > ;
85-
8623 write ( key : string , content : string , ref : string | null ) : Promise < string > ;
8724
8825}
89-
90- export enum SyncStatus {
91- Uninitialized = 'uninitialized' ,
92- Idle = 'idle' ,
93- Syncing = 'syncing' ,
94- HasConflicts = 'hasConflicts' ,
95- }
96-
97- export const USER_DATA_PREVIEW_SCHEME = 'vscode-userdata-preview' ;
98- export const SETTINGS_PREVIEW_RESOURCE = URI . file ( 'Settings-Preview' ) . with ( { scheme : USER_DATA_PREVIEW_SCHEME } ) ;
99-
100- export interface ISynchroniser {
101- readonly status : SyncStatus ;
102- readonly onDidChangeStatus : Event < SyncStatus > ;
103- readonly onDidChangeLocal : Event < void > ;
104- sync ( ) : Promise < boolean > ;
105- continueSync ( ) : Promise < boolean > ;
106- handleConflicts ( ) : boolean ;
107- }
108-
109- export const IUserDataSyncService = createDecorator < IUserDataSyncService > ( 'IUserDataSyncService' ) ;
110-
111- export interface IUserDataSyncService extends ISynchroniser {
112- _serviceBrand : any ;
113- }
0 commit comments