sketch user data sync store service with log in

This commit is contained in:
Sandeep Somavarapu
2019-09-17 17:34:23 +02:00
parent c9258e86a6
commit 874d2fcd3e
7 changed files with 62 additions and 78 deletions

View File

@@ -4,11 +4,43 @@
*--------------------------------------------------------------------------------------------*/
import { Event, Emitter } from 'vs/base/common/event';
import { IUserData } from 'vs/platform/userDataSync/common/userDataSync';
import { IUserData, UserDataSyncStoreErrorCode, UserDataSyncStoreError } from 'vs/platform/userDataSync/common/userDataSync';
import { Disposable } from 'vs/base/common/lifecycle';
import { values } from 'vs/base/common/map';
import { Registry } from 'vs/platform/registry/common/platform';
export function markAsUserDataSyncStoreError(error: Error, code: UserDataSyncStoreErrorCode): Error {
error.name = code ? `${code} (UserDataSyncStoreError)` : `UserDataSyncStoreError`;
return error;
}
export function toUserDataSyncStoreErrorCode(error: Error | undefined | null): UserDataSyncStoreErrorCode {
// Guard against abuse
if (!error) {
return UserDataSyncStoreErrorCode.Unknown;
}
// FileSystemProviderError comes with the code
if (error instanceof UserDataSyncStoreError) {
return error.code;
}
// Any other error, check for name match by assuming that the error
// went through the markAsUserDataSyncStoreError() method
const match = /^(.+) \(UserDataSyncStoreError\)$/.exec(error.name);
if (!match) {
return UserDataSyncStoreErrorCode.Unknown;
}
switch (match[1]) {
case UserDataSyncStoreErrorCode.Rejected: return UserDataSyncStoreErrorCode.Rejected;
}
return UserDataSyncStoreErrorCode.Unknown;
}
export interface IUserDataSyncStore {
readonly id: string;
readonly name: string;