web-ui-pack
Version:
Web package with UI elements
29 lines (28 loc) • 762 B
JavaScript
const nestedProperty = {
set(obj, path, value) {
const propKeys = path.split(".");
let key = propKeys[0];
for (let i = 0; i < propKeys.length - 1; key = propKeys[++i]) {
if (!obj[key]) {
obj[key] = {};
}
obj = obj[key];
}
obj[key] = value;
},
get(obj, path, out) {
const deepKeys = path.split(".");
let next = obj;
for (let i = 0; i < deepKeys.length; ++i) {
if (next == null) {
break;
}
if (out != null) {
out.hasProp = deepKeys[i] in next;
}
next = next[deepKeys[i]];
}
return next;
},
};
export default nestedProperty;