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