import { LocalStorage, Platform } from 'quasar'; import { Storage } from '@capacitor/storage'; type GetReturn = Date | number | boolean | string | object; export class PersistentStorage { static clear() { if (Platform.is.capacitor) return Storage.clear(); else return Promise.resolve(LocalStorage.clear()); } static remove(key: string) { if (Platform.is.capacitor) return Storage.remove({ key: key }); else return Promise.resolve(LocalStorage.remove(key)); } // eslint-disable-next-line @typescript-eslint/no-explicit-any static set(key: string, value: any) { if (Platform.is.capacitor) return Storage.set({ key, value: JSON.stringify(value) }); else return Promise.resolve(LocalStorage.set(key, value)); } static get(key: string) { if (Platform.is.capacitor) return Storage.get({ key }).then((v) => v.value === null ? null : (JSON.parse(v.value) as T) ); else return Promise.resolve(LocalStorage.getItem(key)); } static keys() { if (Platform.is.capacitor) return Storage.keys().then((v) => v.keys); else return Promise.resolve(LocalStorage.getAllKeys()); } }