22 lines
		
	
	
		
			622 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			22 lines
		
	
	
		
			622 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								export function addQueryParameters(url, parameters) {
							 | 
						||
| 
								 | 
							
								    const separator = /\?/.test(url) ? "&" : "?";
							 | 
						||
| 
								 | 
							
								    const names = Object.keys(parameters);
							 | 
						||
| 
								 | 
							
								    if (names.length === 0) {
							 | 
						||
| 
								 | 
							
								        return url;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    return (url +
							 | 
						||
| 
								 | 
							
								        separator +
							 | 
						||
| 
								 | 
							
								        names
							 | 
						||
| 
								 | 
							
								            .map(name => {
							 | 
						||
| 
								 | 
							
								            if (name === "q") {
							 | 
						||
| 
								 | 
							
								                return ("q=" +
							 | 
						||
| 
								 | 
							
								                    parameters
							 | 
						||
| 
								 | 
							
								                        .q.split("+")
							 | 
						||
| 
								 | 
							
								                        .map(encodeURIComponent)
							 | 
						||
| 
								 | 
							
								                        .join("+"));
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            return `${name}=${encodeURIComponent(parameters[name])}`;
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								            .join("&"));
							 | 
						||
| 
								 | 
							
								}
							 |