code: function normalizeQueryArray(query, param) {
    const value = query[param];
    if (Array.isArray(value)) {
      for (let i = 0; i < value.length; ++i) {
        if (!_.isString(value[i])) {
          throw new TypeError('expected string array or comma-separated string for ' + param);
        }
      }
      return value;
    }
    // This goes before _.isString so we don't split an empty string into ['']. The array option just
    // uses whatever the user provides.
    if (_.isEmpty(value)) {
      return [];
    }
    if (_.isString(value)) {
      return value.split(',');
    }
    throw new TypeError('expected string array or comma-separated string for ' + param);
  }
docs: Normalize the given query parameter to an array, so we support both param=a,b and
  param[]=a&param[]=b.
  
  @param {Object} query The parsed query object containing the given parameter.
  @param {String} param The parameter to normalize.
  @returns {String[]} The normalized array from the given query parameter.
  @throws {TypeError} When the query parameter isn't a string, an empty value, or an array of
  strings.