import { Preferences as Storage } from "@capacitor/preferences" /** * Storage Value Class * * **Usage:** * ```ts * const value = new StorageValue("KEY") * ``` */ export class StorageValue { readonly key: string constructor(key: string) { this.key = key } async get(): Promise { const { value } = await Storage.get({ key: this.key }) try { return JSON.parse(value || "") } catch (e) { return value as unknown as T } } get value(): Promise { return this.get().then((value) => value) } async set(value: T): Promise { await Storage.set({ key: this.key, value: JSON.stringify(value) }) } async remove(): Promise { await Storage.remove({ key: this.key }) } }