url-state
Version:
Minimalist history API abstraction for building URL driven browser applications
37 lines (34 loc) • 738 B
JavaScript
var qs = {
parse: s => {
var params = {}
for (var kv of new URLSearchParams(s)) {
var key = kv[0]
var prev = params[key]
if (prev === undefined) {
params[key] = kv[1]
} else {
if (Array.isArray(prev)) {
prev.push(kv[1])
} else {
params[key] = [prev, kv[1]]
}
}
}
return params
},
stringify: p => {
var string = new URLSearchParams()
for (var key in p) {
var val = p[key]
if (Array.isArray(val)) {
val.forEach(v => string.append(key, v))
} else {
string.append(key, val)
}
}
return string.toString()
.replace(/=&/g, '&')
.replace(/=$/g, '')
}
}
export default qs