code: function url(queryString) {
    queryString = decodeURIComponent(queryString);
    queryString = queryString.split('&');
    return queryString.reduce((ret, url) => {
      url = url.split('=');
      var key = url[0];
      var val = url[1];
  
      // EXAMPLE: key[]=bar&key[]=world =>
      //  ret = { key: ['bar', 'world'] }
      if(key.slice(-2) === '[]') {
        key = key.slice(0, -2);
        ret[key] ? ret[key].push(val) : (ret[key] = [val]);
  
        // EXAMPLE: key[foo]=bar&key[hello]=world =>
        //  ret = { key: {foo: 'bar', hello: 'world'} }
      } else if(key.match(/\[\w+\]$/)) {
        let keys = key.split(/\[|\]/);
        let subkey = keys[1];
        key = keys[0];
  
        if(!ret[key]) ret[key] = {};
        ret[key][subkey] = val;
      } else {
        ret[key] = val;
      }
      return ret;
    }, {});
  }
docs: /* Transform queryString to object
  @param {string} queryString