- move migration into a util function

- extract extension storage methods to a separate service
This commit is contained in:
Sandeep Somavarapu
2022-01-08 00:36:52 +01:00
parent 8e658894e9
commit 2766a74d2a
12 changed files with 277 additions and 245 deletions

View File

@@ -41,7 +41,7 @@ import { ClassifiedEvent, GDPRClassification, StrictPropertyCheck } from 'vs/pla
import { ITelemetryInfo } from 'vs/platform/telemetry/common/telemetry';
import { ICreateContributedTerminalProfileOptions, IProcessProperty, IShellLaunchConfigDto, ITerminalEnvironment, ITerminalLaunchError, ITerminalProfile, TerminalLocation } from 'vs/platform/terminal/common/terminal';
import { ThemeColor, ThemeIcon } from 'vs/platform/theme/common/themeService';
import { IExtensionIdWithVersion } from 'vs/platform/userDataSync/common/extensionsStorageSync';
import { IExtensionIdWithVersion } from 'vs/platform/extensionManagement/common/extensionStorage';
import { WorkspaceTrustRequestOptions } from 'vs/platform/workspace/common/workspaceTrust';
import { ExtensionActivationReason } from 'vs/workbench/api/common/extHostExtensionActivator';
import { ExtHostInteractive } from 'vs/workbench/api/common/extHostInteractive';
@@ -610,8 +610,8 @@ export interface MainThreadStatusBarShape extends IDisposable {
}
export interface MainThreadStorageShape extends IDisposable {
$getValue<T>(shared: boolean, key: string): Promise<T | undefined>;
$setValue(shared: boolean, key: string, value: object): Promise<void>;
$initializeExtensionStorage(shared: boolean, extensionId: string): Promise<object | undefined>;
$setValue(shared: boolean, extensionId: string, value: object): Promise<void>;
$registerExtensionStorageKeysToSync(extension: IExtensionIdWithVersion, keys: string[]): void;
}
@@ -2101,7 +2101,7 @@ export interface ExtHostInteractiveShape {
}
export interface ExtHostStorageShape {
$acceptValue(shared: boolean, key: string, value: object | undefined): void;
$acceptValue(shared: boolean, extensionId: string, value: object | undefined): void;
}
export interface ExtHostThemingShape {

View File

@@ -27,7 +27,7 @@ export class ExtensionMemento implements vscode.Memento {
this._shared = global;
this._storage = storage;
this._init = this._storage.getValue(this._shared, this._id, Object.create(null)).then(value => {
this._init = this._storage.initializeExtensionStorage(this._shared, this._id, Object.create(null)).then(value => {
this._value = value;
return this;
});

View File

@@ -7,7 +7,7 @@ import { MainContext, MainThreadStorageShape, ExtHostStorageShape } from './extH
import { Emitter } from 'vs/base/common/event';
import { IExtHostRpcService } from 'vs/workbench/api/common/extHostRpcService';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import { IExtensionIdWithVersion } from 'vs/platform/userDataSync/common/extensionsStorageSync';
import { IExtensionIdWithVersion } from 'vs/platform/extensionManagement/common/extensionStorage';
export interface IStorageChangeEvent {
shared: boolean;
@@ -32,8 +32,8 @@ export class ExtHostStorage implements ExtHostStorageShape {
this._proxy.$registerExtensionStorageKeysToSync(extension, keys);
}
getValue<T>(shared: boolean, key: string, defaultValue?: T): Promise<T | undefined> {
return this._proxy.$getValue<T>(shared, key).then(value => value || defaultValue);
initializeExtensionStorage(shared: boolean, key: string, defaultValue?: object): Promise<object | undefined> {
return this._proxy.$initializeExtensionStorage(shared, key).then(value => value || defaultValue);
}
setValue(shared: boolean, key: string, value: object): Promise<void> {