UNPKG

@ekwoka/alpine-history

Version:
36 lines (34 loc) 1.36 kB
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