@librecoder/tools
Version:

34 lines (30 loc) • 689 B
JavaScript
export function parseQuery(href = window.location.search) {
const args = href.split('?');
if (args[0] === href) {
return {};
}
const obj = {};
const rs = args[1].split('#')[0].split('&');
for (let i = 0; i < rs.length; i++) {
let kv = rs[i].split('=');
obj[kv[0]] = kv[1];
}
return obj;
}
export function getQuery(name, href = window.location.search) {
return parseQuery(href)[name];
}
export function asQuery(obj) {
const rs = [];
for (const key in obj) {
const value = obj[key];
if (value.constructor === Array) {
value.forEach(function (_value) {
rs.push(key + '=' + _value);
})
} else {
rs.push(key + '=' + value);
}
}
return rs.join('&');
}