lib/implore.es6.js
function makeQueryString(obj, prefix='') {
	const str = [];
	let prop;
	let key;
	let value;

	for (prop in obj) {
		if (obj.hasOwnProperty(prop)) {
			key = prefix ?
				prefix + '[' + prop + ']' :
				prop;
			value = obj[prop];
			str.push(typeof value === 'object' ?
				makeQueryString(value, key) :
				encodeURIComponent(key) + '=' + encodeURIComponent(value));
		}
	}

	return str.join('&');
}
function makeQueryString(obj, prefix='') {
	const str = [];
	let prop;
	let key;
	let value;

	for (prop in obj) {
		if (obj.hasOwnProperty(prop)) {
			key = prefix ?
				prefix + '[' + prop + ']' :
				prop;
			value = obj[prop];
			str.push(typeof value === 'object' ?
				makeQueryString(value, key) :
				encodeURIComponent(key) + '=' + encodeURIComponent(value));
		}
	}

	return str.join('&');
}
function makeQueryString ( obj , prefix = '' ) { const str = [ ] ; let prop ; let key ; let value ; for ( prop in obj ) { if ( obj . hasOwnProperty ( prop ) ) { key = prefix ? prefix + '[' + prop + ']' : prop ; value = obj [ prop ] ; str . push ( typeof value === 'object' ? makeQueryString ( value , key ) : encodeURIComponent ( key ) + '=' + encodeURIComponent ( value ) ) ; } } return str . join ( '&' ) ; }
Take a simple object and turn it into a queryString, recursively.

@param {object} obj - query object
@param {string} prefix - used in recursive calls to keep track of the parent
@return {string} queryString without the '?''
Take a simple object and turn it into a queryString recursively .