/** Platform-specific (i-e Electron/browser) behavior is handled by a Bridge object. */ export interface Bridge { getKeychainValue(): Promise; setKeychainValue(value: any): Promise; clearKeychainValue(): Promise; } const KEYCHAIN_STORAGE_KEY = 'keychain'; export class BrowserBridge implements Bridge { async getKeychainValue(): Promise { const value = localStorage.getItem(KEYCHAIN_STORAGE_KEY); if (value) { return JSON.parse(value); } } async setKeychainValue(value: any): Promise { localStorage.setItem(KEYCHAIN_STORAGE_KEY, JSON.stringify(value)); } async clearKeychainValue(): Promise { localStorage.removeItem(KEYCHAIN_STORAGE_KEY); } }