docs: function deepPromisify(obj) {
    return _.transform(obj, function(promisifiedObj, value, key) {
      if (blacklist.has(key)) {
        promisifiedObj[key] = value;
        return;
      }
  
      if (typeof value === 'function') {
        promisifiedObj[key] = bluebird.promisify(value, obj);
      } else if (typeof value === 'object') {
        promisifiedObj[key] = deepPromisify(value);
      } else {
        promisifiedObj[key] = value;
      }
    });
  }