@cran/vue.use
Version:
Cranberry Vue Use Utilities
25 lines (24 loc) • 893 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useStorage = void 0;
const storage_1 = require("@capacitor/storage");
const runtime_dom_1 = require("@vue/runtime-dom");
const refMap = {};
async function useStorage(key) {
if (key in refMap) {
const container = refMap[key] = (0, runtime_dom_1.ref)();
(0, runtime_dom_1.watch)(container, function onRefChange(next) {
if (next === undefined) {
void storage_1.Storage.remove({ key, });
}
else {
void storage_1.Storage.set({ key, value: JSON.stringify(next), });
}
});
await storage_1.Storage.get({ key, }).then(function onGet({ value, }) {
container.value = null != value ? JSON.parse(value) : undefined;
});
}
return refMap[key];
}
exports.useStorage = useStorage;