code: function camelize(obj) {
          var _this = this;
  
          var _camelize = function _camelize(str) {
              str = stringHelpers.underscore(str);
              str = stringHelpers.slugifyText(str);
  
              return str.replace(/[_.-\s](\w|$)/g, function (_, x) {
                  return x.toUpperCase();
              });
          };
  
          if (validateHelpers.isDate(obj) || validateHelpers.isRegExp(obj)) {
              return obj;
          }
  
          if (validateHelpers.isArray(obj)) {
              return obj.map(function (item, index) {
                  if (validateHelpers.isObject(item)) {
                      return _this.camelize(item);
                  }
  
                  return item;
              });
          }
  
          if (validateHelpers.isString(obj)) {
              return _camelize(obj);
          }
  
          return Object.keys(obj).reduce(function (acc, key) {
              var camel = _camelize(key);
              acc[camel] = obj[key];
  
              if (validateHelpers.isObject(obj[key])) {
                  acc[camel] = _this.camelize(obj[key]);
              }
  
              return acc;
          }, {});
      }
docs: Recursively transform key strings to camelCase if param is an Object.
  If param is string, return an camel cased string.
  
  @param  {Object|String} obj  Object or string to transform
  @returns {Object|String}