code: function translate(cond, queryObj) {
  
      let result = {};
  
      // If condition is not an array...
      if (!Array.isArray(cond)) {
          //...then it is a condition cluster
          if (cond.and) {
              result = translateAndList(cond.and, queryObj)
          }
          else if (cond.or) {
              result = translateOrList(cond.or, queryObj)
          }
          else {
              //This is an illegal subject.
              throw new Error('Invalid query Object keys. Objects must be either "and" or "or"');
          }
      }
      else {
          //...then it's a singular condition
          assert(cond.length === 3, 'Invalid condition item. Condition items must be an array of 3 items representing field, comparator, and value')
  
          let fieldName = cond[0];
          if (fieldName === 'id') {
              fieldName = '_key';
          }
          fieldName = fieldName.replace('.*', '[*]');
  
          let comp = cond[1];
          let value = cond[2];
  
          // construct mini block
          if (comp === 'like' || comp === 'nlike') {
  
              value = '%' + value + '%';
  
          }
  
          const paramName = 'p' + Object.keys(queryObj.bindVars).length;
          const valueName = 'v' + Object.keys(queryObj.bindVars).length;
  
          const aqlComp = convertComp(comp);
  
          result = `c.@${paramName} ${aqlComp} @${valueName}`;
  
          queryObj.bindVars[paramName] = fieldName;
          queryObj.bindVars[valueName] = value;
  
      }
  
      return result;
  
  }
docs: Translates a single jollof condition
  @param {array | object} cond
  @param queryObj
  @returns {*}