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.
		
		
		
		
		
			
		
			
				
					
					
						
							58 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							58 lines
						
					
					
						
							1.1 KiB
						
					
					
				"use strict"; | 
						|
 | 
						|
var hrefInfo   = require("./hrefInfo"); | 
						|
var parseHost  = require("./host"); | 
						|
var parsePath  = require("./path"); | 
						|
var parsePort  = require("./port"); | 
						|
var parseQuery = require("./query"); | 
						|
var parseUrlString = require("./urlstring"); | 
						|
var pathUtils      = require("../util/path"); | 
						|
 | 
						|
 | 
						|
 | 
						|
function parseFromUrl(url, options, fallback) | 
						|
{ | 
						|
	if (url) | 
						|
	{ | 
						|
		var urlObj = parseUrl(url, options); | 
						|
		 | 
						|
		// Because the following occurs in the relate stage for "to" URLs, | 
						|
		// such had to be mostly duplicated here | 
						|
		 | 
						|
		var pathArray = pathUtils.resolveDotSegments(urlObj.path.absolute.array); | 
						|
		 | 
						|
		urlObj.path.absolute.array  = pathArray; | 
						|
		urlObj.path.absolute.string = "/" + pathUtils.join(pathArray); | 
						|
		 | 
						|
		return urlObj; | 
						|
	} | 
						|
	else | 
						|
	{ | 
						|
		return fallback; | 
						|
	} | 
						|
} | 
						|
 | 
						|
 | 
						|
 | 
						|
function parseUrl(url, options) | 
						|
{ | 
						|
	var urlObj = parseUrlString(url, options); | 
						|
	 | 
						|
	if (urlObj.valid===false) return urlObj; | 
						|
	 | 
						|
	parseHost(urlObj, options); | 
						|
	parsePort(urlObj, options); | 
						|
	parsePath(urlObj, options); | 
						|
	parseQuery(urlObj, options); | 
						|
	hrefInfo(urlObj); | 
						|
	 | 
						|
	return urlObj; | 
						|
} | 
						|
 | 
						|
 | 
						|
 | 
						|
module.exports = | 
						|
{ | 
						|
	from: parseFromUrl, | 
						|
	to:   parseUrl | 
						|
};
 | 
						|
 |