getValueSafe

getValueSafe: keep stack from bombing when searching object properties

by Nirvanachain

JavaScript

//Keeps the stack from bombing on an error.
function getValueSafe(obj, description, func) {
  var val;
  
  try {
    val = func(obj);
  }
  catch (e) {
    console.log('Error loading value:', description, e)
    val = 'Error loading value';
  }
  console.log('val =',val);
  return val;
}

var data = {
  people: [
    {
      images: {
        main: 'main.jpg',
        alt: 'alt.jpg'
      }
    }
  ]
};

// Happy path
getValueSafe(data, 'image.main', function(obj) {
	return obj.people[0].images.main;
});

// Search for property when path is invalid
getValueSafe(data, 'relationship', function(obj) {
  return obj.relationship.name;
});