You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							53 lines
						
					
					
						
							878 B
						
					
					
				
			
		
		
	
	
							53 lines
						
					
					
						
							878 B
						
					
					
				"use strict"; | 
						|
var hasOwnProperty = Object.prototype.hasOwnProperty; | 
						|
 | 
						|
 | 
						|
 | 
						|
function parseQuery(urlObj, options) | 
						|
{ | 
						|
	urlObj.query.string.full = stringify(urlObj.query.object, false); | 
						|
	 | 
						|
	// TWEAK :: condition only for speed optimization | 
						|
	if (options.removeEmptyQueries) | 
						|
	{ | 
						|
		urlObj.query.string.stripped = stringify(urlObj.query.object, true); | 
						|
	} | 
						|
} | 
						|
 | 
						|
 | 
						|
 | 
						|
function stringify(queryObj, removeEmptyQueries) | 
						|
{ | 
						|
	var count = 0; | 
						|
	var str = ""; | 
						|
	 | 
						|
	for (var i in queryObj) | 
						|
	{ | 
						|
		if ( i!=="" && hasOwnProperty.call(queryObj, i)===true ) | 
						|
		{ | 
						|
			var value = queryObj[i]; | 
						|
			 | 
						|
			if (value !== "" || !removeEmptyQueries) | 
						|
			{ | 
						|
				str += (++count===1) ? "?" : "&"; | 
						|
				 | 
						|
				i = encodeURIComponent(i); | 
						|
				 | 
						|
				if (value !== "") | 
						|
				{ | 
						|
					str += i +"="+ encodeURIComponent(value).replace(/%20/g,"+"); | 
						|
				} | 
						|
				else | 
						|
				{ | 
						|
					str += i; | 
						|
				} | 
						|
			} | 
						|
		} | 
						|
	} | 
						|
	 | 
						|
	return str; | 
						|
} | 
						|
 | 
						|
 | 
						|
 | 
						|
module.exports = parseQuery;
 | 
						|
 |