parse-query.js 506 B

123456789101112131415161718192021222324
  1. 'use strict';
  2. /**
  3. * Parse the given `qs`.
  4. *
  5. * @private
  6. * @param {string} qs
  7. * @return {Object<string, string>}
  8. */
  9. module.exports = function parseQuery(qs) {
  10. return qs
  11. .replace('?', '')
  12. .split('&')
  13. .reduce(function (obj, pair) {
  14. var i = pair.indexOf('=');
  15. var key = pair.slice(0, i);
  16. var val = pair.slice(++i);
  17. // Due to how the URLSearchParams API treats spaces
  18. obj[key] = decodeURIComponent(val.replace(/\+/g, '%20'));
  19. return obj;
  20. }, {});
  21. };