UNPKG

sussudio

Version:

An unofficial VS Code Internal API

59 lines (58 loc) 3.31 kB
/*--------------------------------------------------------------------------------------------- * 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 "../../../base/common/event.mjs"; import { Disposable } from "../../../base/common/lifecycle.mjs"; import { IStorageDatabase } from "../../../base/parts/storage/common/storage.mjs"; import { IStorageService, IStorageValueChangeEvent, StorageTarget } from "../../storage/common/storage.mjs"; import { IUserDataProfile } from "./userDataProfile.mjs"; export interface IProfileStorageValueChanges { readonly profile: IUserDataProfile; readonly changes: IStorageValueChangeEvent[]; } export interface IProfileStorageChanges { readonly targetChanges: IUserDataProfile[]; readonly valueChanges: IProfileStorageValueChanges[]; } export interface IStorageValue { readonly value: string | undefined; readonly target: StorageTarget; } export declare const IUserDataProfileStorageService: import("../../instantiation/common/instantiation.mjs").ServiceIdentifier<IUserDataProfileStorageService>; export interface IUserDataProfileStorageService { readonly _serviceBrand: undefined; /** * Emitted whenever data is updated or deleted in a profile storage or target of a profile storage entry changes */ readonly onDidChange: Event<IProfileStorageChanges>; /** * Return the requested profile storage data * @param profile The profile from which the data has to be read from */ readStorageData(profile: IUserDataProfile): Promise<Map<string, IStorageValue>>; /** * Update the given profile storage data in the profile storage * @param profile The profile to which the data has to be written to * @param data Data that has to be updated * @param target Storage target of the data */ updateStorageData(profile: IUserDataProfile, data: Map<string, string | undefined | null>, target: StorageTarget): Promise<void>; /** * Calls a function with a storage service scoped to given profile. */ withProfileScopedStorageService<T>(profile: IUserDataProfile, fn: (storageService: IStorageService) => Promise<T>): Promise<T>; } export declare abstract class AbstractUserDataProfileStorageService extends Disposable implements IUserDataProfileStorageService { protected readonly storageService: IStorageService; _serviceBrand: undefined; readonly abstract onDidChange: Event<IProfileStorageChanges>; constructor(storageService: IStorageService); readStorageData(profile: IUserDataProfile): Promise<Map<string, IStorageValue>>; updateStorageData(profile: IUserDataProfile, data: Map<string, string | undefined | null>, target: StorageTarget): Promise<void>; withProfileScopedStorageService<T>(profile: IUserDataProfile, fn: (storageService: IStorageService) => Promise<T>): Promise<T>; private getItems; private writeItems; protected closeAndDispose(storageDatabase: IStorageDatabase): Promise<void>; protected abstract createStorageDatabase(profile: IUserDataProfile): Promise<IStorageDatabase>; }