AugurProject/augur-ui

View on GitHub
src/modules/routes/helpers/parse-query.js

Summary

Maintainability
A
0 mins
Test Coverage
/**
 * Parses the raw query string into a formatted array
 * @param {string} searchString - The raw query param string
 * @returns {object}
 */
export default function parseQuery(searchString) {
  let pairSplit;
  return (searchString || "")
    .replace(/^\?/, "")
    .split("&")
    .reduce((p, pair) => {
      pairSplit = pair.split("=");
      if (pairSplit.length >= 1) {
        if (pairSplit[0].length) {
          if (pairSplit.length >= 2 && pairSplit[1]) {
            p[decodeURIComponent(pairSplit[0])] = decodeURIComponent(
              pairSplit[1]
            );
          } else {
            p[decodeURIComponent(pairSplit[0])] = undefined;
          }
        }
      }
      return p;
    }, {});
}