@sussudio/platform
Version:
Internal APIs for VS Code's service injection the base services.
45 lines (43 loc) • 1.82 kB
text/typescript
/*---------------------------------------------------------------------------------------------
* 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';
import { IEnvironmentService } from '../../environment/common/environment.mjs';
import { IFileService } from '../../files/common/files.mjs';
import { ILogService } from '../../log/common/log.mjs';
import { IStateService } from './state.mjs';
export declare class FileStorage {
private readonly storagePath;
private readonly logService;
private readonly fileService;
private storage;
private lastSavedStorageContents;
private readonly flushDelayer;
private initializing;
private closing;
constructor(storagePath: URI, logService: ILogService, fileService: IFileService);
init(): Promise<void>;
private doInit;
getItem<T>(key: string, defaultValue: T): T;
getItem<T>(key: string, defaultValue?: T): T | undefined;
setItem(key: string, data?: object | string | number | boolean | undefined | null): void;
setItems(
items: readonly {
key: string;
data?: object | string | number | boolean | undefined | null;
}[],
): void;
removeItem(key: string): void;
private save;
private doSave;
close(): Promise<void>;
}
export declare class StateService implements IStateService {
readonly _serviceBrand: undefined;
protected readonly fileStorage: FileStorage;
constructor(environmentService: IEnvironmentService, logService: ILogService, fileService: IFileService);
init(): Promise<void>;
getItem<T>(key: string, defaultValue: T): T;
getItem<T>(key: string, defaultValue?: T): T | undefined;
}