UNPKG

@cran/vue.use

Version:

Cranberry Vue Use Utilities

21 lines (20 loc) 686 B
import { Storage } from "@capacitor/storage"; import { ref, watch } from "@vue/runtime-dom"; const refMap = {}; export async function useStorage(key) { if (key in refMap) { const container = refMap[key] = ref(); watch(container, function onRefChange(next) { if (next === undefined) { void Storage.remove({ key, }); } else { void Storage.set({ key, value: JSON.stringify(next), }); } }); await Storage.get({ key, }).then(function onGet({ value, }) { container.value = null != value ? JSON.parse(value) : undefined; }); } return refMap[key]; }