// LONG VERSION WITH ERROR LOGGING function getValueByObjectPath (obj, path) { const pathSplit = path.split('.'); return pathSplit.reduce((value, pathPart, depth) => { try { return value[pathPart]; } catch (err) { let pathSoFar = ''; for (let i = 0; i < depth; i++) { pathSoFar += pathSplit[i]; if (i !== depth - 1) pathSoFar += '.'; } console.warn(`Failed to get property '${pathPart}' at ${pathSoFar} in object:`, obj); throw err; } }, obj); }