| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | 
							- "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
 
- };
 
 
  |