danbooru
Version:
danbooru api wrapper
28 lines (22 loc) • 668 B
JavaScript
exports.queryString = input => {
if (!Array.isArray(input) && Object(input) !== input) return ''
let output = []
unwrap(false, input)
return '?' + output.join('&')
function unwrap(base, input) {
let before = '',
after = ''
if (base) {
before = base + '['
after = ']'
}
if (Array.isArray(input))
for (let i = 0; i < input.length; i++) loop(i + '', input[i])
else if (Object(input) === input)
for (let key in input) loop(key, input[key])
else output.push(base + '=' + encodeURIComponent(input))
function loop(key, value) {
unwrap(before + encodeURIComponent(key) + after, value)
}
}
}