lib/di.js
function resolveProvide(obj, override) {
    var provide = override || obj.$provide;

    if(isString(provide)) {
      return provideName(obj, provide);
    }

    if(isObject(provide)) {
      if (isString(provide.promise)) {
        return providePromise(obj, provide.promise);
      } else if (isString(provide.provide)) {
        return provideName(obj, provide.provide);
      }
    }
  }
function resolveProvide(obj, override) {
    var provide = override || obj.$provide;

    if(isString(provide)) {
      return provideName(obj, provide);
    }

    if(isObject(provide)) {
      if (isString(provide.promise)) {
        return providePromise(obj, provide.promise);
      } else if (isString(provide.provide)) {
        return provideName(obj, provide.provide);
      }
    }
  }
function resolveProvide ( obj , override ) { var provide = override || obj . $provide ; if ( isString ( provide ) ) { return provideName ( obj , provide ) ; } if ( isObject ( provide ) ) { if ( isString ( provide . promise ) ) { return providePromise ( obj , provide . promise ) ; } else if ( isString ( provide . provide ) ) { return provideName ( obj , provide . provide ) ; } } }
resolve the type of promise and the name given the underlying object and any overrides
@private
@param {*} obj
@param {string|object} [override] - specify any of the overides
resolve the type of promise and the name given the underlying object and any overrides