UNPKG

@hilemangroup/bp-frontend

Version:

Common shared frontend utilities for boilerplate projects

61 lines (52 loc) 1.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; /*! * getUrlParams.js * https://www.sitepoint.com/get-url-parameters-with-javascript/ */ function getUrlParams(url) { var queryString = url ? url.split('?')[1] : window.location.search.slice(1); var result = {}; var params, param, paramNum, paramName, paramValue; var i; if (queryString) { queryString = queryString.split('#')[0]; params = queryString.split('&'); for (i = 0; i < params.length; i++) { // separate the keys and the values param = params[i].split('='); // in case params look like: list[]=thing1&list[]=thing2 paramNum = undefined; paramName = param[0].replace(/\[\d*\]/, function (v) { paramNum = v.slice(1, -1); return ''; }); paramValue = typeof param[1] === 'undefined' ? true : decodeURIComponent(param[1]); paramName = paramName.toLowerCase(); // paramValue = paramValue.toLowerCase(); // if parameter name already exists if (result[paramName]) { if (typeof result[paramName] === 'string') { // convert value to array (if still string) result[paramName] = [result[paramName]]; } if (typeof paramNum === 'undefined') { // if no array index number specified... // put the value on the end of the array result[paramName].push(paramValue); } else { // if array index number specified... // put the value at that index number result[paramName][paramNum] = paramValue; } } else { // if param name doesn't exist yet, set it result[paramName] = paramValue; } } } return result; } var _default = getUrlParams; exports["default"] = _default;