23 lines
692 B
JavaScript
23 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;
|
|
}
|