@cran/vue.use
Version:
Cranberry Vue Use Utilities
21 lines (20 loc) • 686 B
JavaScript
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];
}