/*
* From https://gist.github.com/kieraneglin/12a3edbddb0c2bda742010eb95ea4fb3
*/
const getDeeplyNestedValue = (props, object) => {
return props.reduce((prefix, val) => (prefix && prefix[val]) ? prefix[val] : null, object);
};
let response = {
data: {
user: {
isAdmin: true
}
}
};
// Instead of data && data.user && data.user.isAdmin:
let workingResult = getDeeplyNestedValue(['data', 'user', 'isAdmin'], response);
let brokenResult = getDeeplyNestedValue(['data', 'user', 'firstName'], response);
let brokenResult2 = getDeeplyNestedValue(['data', 'user', 'address', 'street'], response);
console.log({
workingResult,
brokenResult,
brokenResult2
})