@ekwoka/alpine-history
Version:
Sync Component an Store values to the URL Search Params!!!
36 lines (34 loc) • 1.36 kB
JavaScript
const objectAtPath = (keys, data, final) => {
while (keys.length) {
const key = keys.shift();
if (isForbidden(key))
return null;
if (data[key] === void 0)
data[key] = isNaN(Number(keys[0] ?? final)) ? /* @__PURE__ */ Object.create({}) : [];
data = data[key];
}
return data;
};
const insertDotNotatedValueIntoData = (path, value, data) => {
const keys = path.split(".");
const final = keys.pop();
const interimdata = objectAtPath(keys, data, final);
return !interimdata || isForbidden(final) ? void 0 : interimdata[final] = value;
};
const retrieveDotNotatedValueFromData = (path, data) => {
const keys = path.split(".");
const final = keys.pop();
const interimdata = objectAtPath(keys, data, final);
return !interimdata || isForbidden(final) ? void 0 : interimdata[final];
};
const deleteDotNotatedValueFromData = (path, data) => {
const keys = path.split(".");
const final = keys.pop();
const interimdata = objectAtPath(keys, data, final);
if (interimdata && !isForbidden(final))
delete data[final];
};
const isForbidden = (key) => forbiddenKeys.includes(key);
const forbiddenKeys = ["__proto__", "constructor", "prototype"];
export { deleteDotNotatedValueFromData, insertDotNotatedValueIntoData, isForbidden, objectAtPath, retrieveDotNotatedValueFromData };
//# sourceMappingURL=pathresolve.js.map