21 lines
617 B
JavaScript
21 lines
617 B
JavaScript
export default (path, extraData) => path.split('&').reduce((dataParam, filterParam) => {
|
|
if (filterParam === '') return dataParam;
|
|
|
|
const data = dataParam;
|
|
const paramSplit = filterParam.split('=');
|
|
const paramKeyNormalized = paramSplit[0].replace('[]', '');
|
|
const isArray = paramSplit[0].indexOf('[]');
|
|
const value = decodeURIComponent(paramSplit[1].replace(/\+/g, ' '));
|
|
|
|
if (isArray !== -1) {
|
|
if (!data[paramKeyNormalized]) {
|
|
data[paramKeyNormalized] = [];
|
|
}
|
|
|
|
data[paramKeyNormalized].push(value);
|
|
} else {
|
|
data[paramKeyNormalized] = value;
|
|
}
|
|
|
|
return data;
|
|
}, extraData);
|