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.
		
		
		
		
			
				
					54 lines
				
				878 B
			
		
		
			
		
	
	
					54 lines
				
				878 B
			| 
								 
											4 years ago
										 
									 | 
							
								"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;
							 |