forked from Shinonome/dots-hyprland
sidebar: live config: save ags values
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
export function getNestedProperty(obj, path) {
|
||||
return path.split('.').reduce((current, key) => {
|
||||
return (current && typeof current === 'object' && current.hasOwnProperty(key)) ? current[key] : undefined;
|
||||
}, obj);
|
||||
}
|
||||
|
||||
export function updateNestedProperty(obj, path, newValue) {
|
||||
const pathArray = path.split('.');
|
||||
const lastKeyIndex = pathArray.length - 1;
|
||||
|
||||
let current = obj;
|
||||
|
||||
for (let i = 0; i < lastKeyIndex; i++) {
|
||||
const key = pathArray[i];
|
||||
if (!current || typeof current !== 'object') {
|
||||
return false; // Previous part of path is not an object
|
||||
}
|
||||
|
||||
if (!current.hasOwnProperty(key)) {
|
||||
current[key] = {}; // Create the missing object
|
||||
}
|
||||
current = current[key];
|
||||
}
|
||||
|
||||
const lastKey = pathArray[lastKeyIndex];
|
||||
|
||||
if (!current || typeof current !== 'object') {
|
||||
return false; // Parent is not an object
|
||||
}
|
||||
|
||||
current[lastKey] = newValue;
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user