code: function tryParseJson(body, property, callback) {
    var _doArgs = doArgs(arguments, ['string', 'string|array|function|null', 'function']);
  
    var _doArgs2 = _slicedToArray(_doArgs, 3);
  
    body = _doArgs2[0];
    property = _doArgs2[1];
    callback = _doArgs2[2];
  
  
    try {
      // Won't harm if we replace escape sequence
      body = body.replace(/\x1b/g, '');
  
      // Try to parse
      var data = JSON.parse(body.toString());
  
      // Get the prop name if specified
      if (property) {
        var type = getType(property);
  
        if (type === 'array') {
          var newData = {};
  
          var _iteratorNormalCompletion2 = true;
          var _didIteratorError2 = false;
          var _iteratorError2 = undefined;
  
          try {
            for (var _iterator2 = property[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
              var p = _step2.value;
  
              newData[p] = data[p];
            }
          } catch (err) {
            _didIteratorError2 = true;
            _iteratorError2 = err;
          } finally {
            try {
              if (!_iteratorNormalCompletion2 && _iterator2.return) {
                _iterator2.return();
              }
            } finally {
              if (_didIteratorError2) {
                throw _iteratorError2;
              }
            }
          }
  
          data = newData;
        }
        if (type === 'string') {
          data = data[property];
        }
        if (type === 'function') {
          data = property(data);
        }
      }
  
      callback(null, data);
    } catch (e) {
      callback(e, body);
    }
  }
docs: Parse the passed string as JSON and extract or "manipulate" it using the property.
  
  @param {string} body - string response body
  @param {string|array|function} property - property to get from body or modificator function
  @param {function} callback function to call when all done