@sussudio/platform
Version:
Internal APIs for VS Code's service injection the base services.
41 lines (40 loc) • 1.46 kB
JavaScript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { URI } from '@sussudio/base/common/uri.mjs';
export function isEmptyWindowBackupInfo(obj) {
const candidate = obj;
return typeof candidate?.backupFolder === 'string';
}
export function deserializeWorkspaceInfos(serializedBackupWorkspaces) {
let workspaceBackupInfos = [];
try {
if (Array.isArray(serializedBackupWorkspaces.workspaces)) {
workspaceBackupInfos = serializedBackupWorkspaces.workspaces.map((workspace) => ({
workspace: {
id: workspace.id,
configPath: URI.parse(workspace.configURIPath),
},
remoteAuthority: workspace.remoteAuthority,
}));
}
} catch (e) {
// ignore URI parsing exceptions
}
return workspaceBackupInfos;
}
export function deserializeFolderInfos(serializedBackupWorkspaces) {
let folderBackupInfos = [];
try {
if (Array.isArray(serializedBackupWorkspaces.folders)) {
folderBackupInfos = serializedBackupWorkspaces.folders.map((folder) => ({
folderUri: URI.parse(folder.folderUri),
remoteAuthority: folder.remoteAuthority,
}));
}
} catch (e) {
// ignore URI parsing exceptions
}
return folderBackupInfos;
}