@sussudio/platform
Version:
Internal APIs for VS Code's service injection the base services.
101 lines (99 loc) • 3.8 kB
text/typescript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { Event } from '@sussudio/base/common/event.mjs';
import { Disposable } from '@sussudio/base/common/lifecycle.mjs';
import { URI } from '@sussudio/base/common/uri.mjs';
import { IChannel, IServerChannel } from '@sussudio/base/parts/ipc/common/ipc.mjs';
import { ILogService } from '../../log/common/log.mjs';
import { IUserDataProfile, IUserDataProfilesService } from '../../userDataProfile/common/userDataProfile.mjs';
import {
IUserDataManualSyncTask,
IUserDataSyncResourceConflicts,
IUserDataSyncResourceError,
IUserDataSyncResource,
ISyncResourceHandle,
IUserDataSyncTask,
IUserDataSyncService,
SyncResource,
SyncStatus,
ISyncUserDataProfile,
} from './userDataSync.mjs';
export declare class UserDataSyncChannel implements IServerChannel {
private readonly service;
private readonly userDataProfilesService;
private readonly logService;
private readonly manualSyncTasks;
private readonly onManualSynchronizeResources;
constructor(
service: IUserDataSyncService,
userDataProfilesService: IUserDataProfilesService,
logService: ILogService,
);
listen(_: unknown, event: string): Event<any>;
call(context: any, command: string, args?: any): Promise<any>;
private _call;
private getManualSyncTask;
private createManualSyncTask;
private createKey;
}
export declare class UserDataSyncChannelClient extends Disposable implements IUserDataSyncService {
private readonly userDataProfilesService;
readonly _serviceBrand: undefined;
private readonly channel;
private _status;
get status(): SyncStatus;
private _onDidChangeStatus;
readonly onDidChangeStatus: Event<SyncStatus>;
get onDidChangeLocal(): Event<SyncResource>;
private _conflicts;
get conflicts(): IUserDataSyncResourceConflicts[];
private _onDidChangeConflicts;
readonly onDidChangeConflicts: Event<IUserDataSyncResourceConflicts[]>;
private _lastSyncTime;
get lastSyncTime(): number | undefined;
private _onDidChangeLastSyncTime;
readonly onDidChangeLastSyncTime: Event<number>;
private _onSyncErrors;
readonly onSyncErrors: Event<IUserDataSyncResourceError[]>;
get onDidResetLocal(): Event<void>;
get onDidResetRemote(): Event<void>;
constructor(userDataSyncChannel: IChannel, userDataProfilesService: IUserDataProfilesService);
createSyncTask(): Promise<IUserDataSyncTask>;
createManualSyncTask(): Promise<IUserDataManualSyncTask>;
reset(): Promise<void>;
resetRemote(): Promise<void>;
resetLocal(): Promise<void>;
hasPreviouslySynced(): Promise<boolean>;
hasLocalData(): Promise<boolean>;
accept(
syncResource: IUserDataSyncResource,
resource: URI,
content: string | null,
apply:
| boolean
| {
force: boolean;
},
): Promise<void>;
resolveContent(resource: URI): Promise<string | null>;
getRemoteProfiles(): Promise<ISyncUserDataProfile[]>;
getLocalSyncResourceHandles(syncResource: SyncResource, profile?: IUserDataProfile): Promise<ISyncResourceHandle[]>;
getRemoteSyncResourceHandles(
syncResource: SyncResource,
profile?: ISyncUserDataProfile,
): Promise<ISyncResourceHandle[]>;
getAssociatedResources(syncResourceHandle: ISyncResourceHandle): Promise<
{
resource: URI;
comparableResource: URI;
}[]
>;
getMachineId(syncResourceHandle: ISyncResourceHandle): Promise<string | undefined>;
cleanUpRemoteData(): Promise<void>;
replace(syncResourceHandle: ISyncResourceHandle): Promise<void>;
private updateStatus;
private updateConflicts;
private updateLastSyncTime;
}