JSFiddle - React, Tailwind, and code Playground
by adelura
JavaScript
const CONFIGS = Object.freeze({
feature: {
messageCentre: {
enabled: Symbol("foo")
}
}
});
function getKeysForPath(path, level = CONFIGS) {
if (path.length === 0) {
return level;
}
path = path.slice();
let key = path.shift();
return getKeysForPath(path, level[key]);
}
function findPath(value, path = [], level = CONFIGS) {
for (let key in level) {
if (level[key] === value) {
path.push(key);
return path;
} else {
let _path = path.slice();
_path.push(key);
let __p = findPath(value, _path, level[key]);
if (__p) {
return __p;
}
}
}
return null;
}