From 3e97229e1128d6982fbc6b1e06188c46c50df187 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Wed, 28 Oct 2020 10:31:15 +0100 Subject: [PATCH] Fix #109543 --- src/vs/platform/userDataSync/common/extensionsSync.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/vs/platform/userDataSync/common/extensionsSync.ts b/src/vs/platform/userDataSync/common/extensionsSync.ts index f3954a5023b..f34669f835e 100644 --- a/src/vs/platform/userDataSync/common/extensionsSync.ts +++ b/src/vs/platform/userDataSync/common/extensionsSync.ts @@ -26,7 +26,7 @@ import { CancellationToken } from 'vs/base/common/cancellation'; import { IIgnoredExtensionsManagementService } from 'vs/platform/userDataSync/common/ignoredExtensions'; import { IStorageKeysSyncRegistryService } from 'vs/platform/userDataSync/common/storageKeys'; import { getErrorMessage } from 'vs/base/common/errors'; -import { forEach } from 'vs/base/common/collections'; +import { forEach, IStringDictionary } from 'vs/base/common/collections'; interface IExtensionResourceMergeResult extends IAcceptResult { readonly added: ISyncExtension[]; @@ -461,7 +461,13 @@ export class ExtensionsSynchroniser extends AbstractSynchroniser implements IUse if (keys) { const extensionStorageValue = this.storageService.get(identifier.id, StorageScope.GLOBAL) || '{}'; try { - syncExntesion.state = JSON.parse(extensionStorageValue, (key, value) => !key || keys.includes(key) ? value : undefined); + const extensionStorageState = JSON.parse(extensionStorageValue); + syncExntesion.state = Object.keys(extensionStorageState).reduce((state: IStringDictionary, key) => { + if (keys.includes(key)) { + state[key] = extensionStorageState[key]; + } + return state; + }, {}); } catch (error) { this.logService.info(`${this.syncResourceLogLabel}: Error while parsing extension state`, getErrorMessage(error)); } -- GitLab