mirror of
https://github.com/bitwarden/browser
synced 2025-12-14 07:13:32 +00:00
* refactor(platform): generate @bitwarden/storage-core boilerplate * refactor(storage-core): move storage files out of @bitwarden/common * chore(naming): rename AbstractStorageService to StorageService
27 lines
903 B
TypeScript
27 lines
903 B
TypeScript
import { Observable } from "rxjs";
|
|
|
|
import { StorageOptions } from "./storage-options";
|
|
|
|
export type StorageUpdateType = "save" | "remove";
|
|
export type StorageUpdate = {
|
|
key: string;
|
|
updateType: StorageUpdateType;
|
|
};
|
|
|
|
export interface ObservableStorageService {
|
|
/**
|
|
* Provides an {@link Observable} that represents a stream of updates that
|
|
* have happened in this storage service or in the storage this service provides
|
|
* an interface to.
|
|
*/
|
|
get updates$(): Observable<StorageUpdate>;
|
|
}
|
|
|
|
export abstract class StorageService {
|
|
abstract get valuesRequireDeserialization(): boolean;
|
|
abstract get<T>(key: string, options?: StorageOptions): Promise<T>;
|
|
abstract has(key: string, options?: StorageOptions): Promise<boolean>;
|
|
abstract save<T>(key: string, obj: T, options?: StorageOptions): Promise<void>;
|
|
abstract remove(key: string, options?: StorageOptions): Promise<void>;
|
|
}
|