import { Subject } from "rxjs"; import { AbstractStorageService, StorageUpdate, } from "@bitwarden/common/platform/abstractions/storage.service"; export class ElectronRendererStorageService implements AbstractStorageService { private updatesSubject = new Subject(); get updates$() { return this.updatesSubject.asObservable(); } get(key: string): Promise { return ipc.platform.storage.get(key); } has(key: string): Promise { return ipc.platform.storage.has(key); } async save(key: string, obj: T): Promise { await ipc.platform.storage.save(key, obj); this.updatesSubject.next({ key, value: obj, updateType: "save" }); } async remove(key: string): Promise { await ipc.platform.storage.remove(key); this.updatesSubject.next({ key, value: null, updateType: "remove" }); } }