import { ipcRenderer } from 'electron'; import { StorageService } from 'jslib/abstractions/storage.service'; export class DesktopRendererSecureStorageService implements StorageService { async get(key: string): Promise { const val = ipcRenderer.sendSync('keytar', { action: 'getPassword', key: key, }); return Promise.resolve(val != null ? JSON.parse(val) as T : null); } async save(key: string, obj: any): Promise { ipcRenderer.sendSync('keytar', { action: 'setPassword', key: key, value: JSON.stringify(obj), }); return Promise.resolve(); } async remove(key: string): Promise { ipcRenderer.sendSync('keytar', { action: 'deletePassword', key: key, }); return Promise.resolve(); } }