68
69
protected async generateSyncPreview(remoteUserData: IRemoteUserData, lastSyncUserData: IRemoteUserData | null, isRemoteDataFromCurrentMachine: boolean): Promise<IUserDataProfilesManifestResourcePreview[]> {
70
>
const remoteProfiles: ISyncUserDataProfile[] | null = remoteUserData.syncData ? parseUserDataProfilesManifest(remoteUserData.syncData) : null;
userDataProfilesManifestSync.ts
71
>
const lastSyncProfiles: ISyncUserDataProfile[] | null = lastSyncUserData?.syncData ? parseUserDataProfilesManifest(lastSyncUserData.syncData) : null;
72
>
const localProfiles = this.getLocalUserDataProfiles();
73
>
74
>
const { local, remote } = merge(localProfiles, remoteProfiles, lastSyncProfiles, []);
75
>
const previewResult: IUserDataProfileManifestResourceMergeResult = {
76
>
local, remote,
77
>
content: lastSyncProfiles ? this.stringifyRemoteProfiles(lastSyncProfiles) : null,
78
>
localChange: local.added.length > 0 || local.removed.length > 0 || local.updated.length > 0 ? Change.Modified : Change.None,
79
>
remoteChange: remote !== null ? Change.Modified : Change.None,
80
>
};
81
>
82
>
const localContent = stringifyLocalProfiles(localProfiles, false);
83
>
return [{
84
>
baseResource: this.baseResource,
85
>
baseContent: lastSyncProfiles ? this.stringifyRemoteProfiles(lastSyncProfiles) : null,
86
>
localResource: this.localResource,
87
>
localContent,
88
>
remoteResource: this.remoteResource,
89
>
remoteContent: remoteProfiles ? this.stringifyRemoteProfiles(remoteProfiles) : null,
90
>
remoteProfiles,
91
>
previewResource: this.previewResource,
92
>
previewResult,
93
>
localChange: previewResult.localChange,
94
>
remoteChange: previewResult.remoteChange,
95
>
acceptedResource: this.acceptedResource
96
>
}];
97
>
}
98
99
protected async hasRemoteChanged(lastSyncUserData: IRemoteUserData): Promise<boolean> {