24 lines
692 B
JavaScript
24 lines
692 B
JavaScript
|
export function parseQueryString(querystring) {
|
||
|
const query = {};
|
||
|
querystring = querystring.replace(/^\?/, "");
|
||
|
if (querystring) {
|
||
|
for (const pair of querystring.split("&")) {
|
||
|
let [key, value = null] = pair.split("=");
|
||
|
key = decodeURIComponent(key);
|
||
|
if (value) {
|
||
|
value = decodeURIComponent(value);
|
||
|
}
|
||
|
if (!(key in query)) {
|
||
|
query[key] = value;
|
||
|
}
|
||
|
else if (Array.isArray(query[key])) {
|
||
|
query[key].push(value);
|
||
|
}
|
||
|
else {
|
||
|
query[key] = [query[key], value];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return query;
|
||
|
}
|