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