src/try.js
function _tryModuleSync(modulePath, defaultReturnValue) {
  try {
    return syncRequire({squashErrors:true}, modulePath.shift());
  } catch (err) { }
  if(!modulePath.length) return defaultReturnValue;
  return _tryModuleSync(modulePath, defaultReturnValue);
}
function _tryModuleSync(modulePath, defaultReturnValue) {
  try {
    return syncRequire({squashErrors:true}, modulePath.shift());
  } catch (err) { }
  if(!modulePath.length) return defaultReturnValue;
  return _tryModuleSync(modulePath, defaultReturnValue);
}
function _tryModuleSync ( modulePath , defaultReturnValue ) { try { return syncRequire ( { squashErrors : true } , modulePath . shift ( ) ) ; } catch ( err ) { } if ( ! modulePath . length ) return defaultReturnValue ; return _tryModuleSync ( modulePath , defaultReturnValue ) ; }
Load a module or return a default value.  Can take an array to try.  Will load module synchronously.

@private
@async
@param {Array.<string>} modulePath   Paths to try.
@param {*} defaultReturnValue        Default value to return.
@returns {*}
Load a module or return a default value . Can take an array to try . Will load module synchronously .