@hilemangroup/bp-frontend
Version:
Common shared frontend utilities for boilerplate projects
61 lines (52 loc) • 1.82 kB
JavaScript
;
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;