94 lines
2.9 KiB
JavaScript
94 lines
2.9 KiB
JavaScript
var __defProp = Object.defineProperty;
|
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
var __export = (target, all) => {
|
|
for (var name in all)
|
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
};
|
|
var __copyProps = (to, from, except, desc) => {
|
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
for (let key of __getOwnPropNames(from))
|
|
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
}
|
|
return to;
|
|
};
|
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
|
|
// packages/persist/builds/module.js
|
|
var module_exports = {};
|
|
__export(module_exports, {
|
|
default: () => module_default,
|
|
persist: () => src_default
|
|
});
|
|
module.exports = __toCommonJS(module_exports);
|
|
|
|
// packages/persist/src/index.js
|
|
function src_default(Alpine) {
|
|
let persist = () => {
|
|
let alias;
|
|
let storage;
|
|
try {
|
|
storage = localStorage;
|
|
} catch (e) {
|
|
console.error(e);
|
|
console.warn("Alpine: $persist is using temporary storage since localStorage is unavailable.");
|
|
let dummy = /* @__PURE__ */ new Map();
|
|
storage = {
|
|
getItem: dummy.get.bind(dummy),
|
|
setItem: dummy.set.bind(dummy)
|
|
};
|
|
}
|
|
return Alpine.interceptor((initialValue, getter, setter, path, key) => {
|
|
let lookup = alias || `_x_${path}`;
|
|
let initial = storageHas(lookup, storage) ? storageGet(lookup, storage) : initialValue;
|
|
setter(initial);
|
|
Alpine.effect(() => {
|
|
let value = getter();
|
|
storageSet(lookup, value, storage);
|
|
setter(value);
|
|
});
|
|
return initial;
|
|
}, (func) => {
|
|
func.as = (key) => {
|
|
alias = key;
|
|
return func;
|
|
}, func.using = (target) => {
|
|
storage = target;
|
|
return func;
|
|
};
|
|
});
|
|
};
|
|
Object.defineProperty(Alpine, "$persist", { get: () => persist() });
|
|
Alpine.magic("persist", persist);
|
|
Alpine.persist = (key, { get, set }, storage = localStorage) => {
|
|
let initial = storageHas(key, storage) ? storageGet(key, storage) : get();
|
|
set(initial);
|
|
Alpine.effect(() => {
|
|
let value = get();
|
|
storageSet(key, value, storage);
|
|
set(value);
|
|
});
|
|
};
|
|
}
|
|
function storageHas(key, storage) {
|
|
return storage.getItem(key) !== null;
|
|
}
|
|
function storageGet(key, storage) {
|
|
let value = storage.getItem(key, storage);
|
|
if (value === void 0)
|
|
return;
|
|
return JSON.parse(value);
|
|
}
|
|
function storageSet(key, value, storage) {
|
|
storage.setItem(key, JSON.stringify(value));
|
|
}
|
|
|
|
// packages/persist/builds/module.js
|
|
var module_default = src_default;
|
|
// Annotate the CommonJS export names for ESM import in node:
|
|
0 && (module.exports = {
|
|
persist
|
|
});
|