The rampart-url module¶
Preface¶
License¶
The rampart-url module is released under the MIT license.
What does it do?¶
The rampart-url module provides utility functions to manipulate URLs
How does it work?¶
The rampart-url module is a JavaScript module that export functions which break URLs into their
component parts, resolve parent directories (../) and create absolute URLs
given a source location and one or more relative URL paths.
Loading and Using the Module¶
Loading¶
Loading the module is a simple matter of using the require() function:
var urlutils = require("rampart-url");
URL Functions¶
components¶
The
componentsfunction takes one or two arguments: The URL to be broken into its component parts, and optionally a Boolean, which iftrue, signifies that the URL is relative.Usage:
var urlutils = require("rampart-url"); var urlinfo = urlutils.components(url[, isRelative]);Where:
urlis a String, the URL to be broken down.isRelativeis an Boolean, settrueif the URL is to be treated as a URL path without the origin.
- Return Value:
- A Object containing the components of the URL. Or returns
undefinedif the URL cannot be parsed.
Example:
var urlutils = require("rampart-url");
var urlinfo = urlutils.components(
"http://me:mypass@example.com:8088/dir/mypage.html?dir=%2fusr%2flocal%2f#my-spot-on-page"
);
/* urlinfo =
{
"scheme": "http",
"username": "me",
"password": "mypass",
"origin": "http://me:mypass@example.com:8088",
"host": "example.com",
"authority": "//me:mypass@example.com:8088",
"path": "/dir/",
"fullPath": "/dir/mypage.html",
"queryString": {
"raw": "dir=%2fusr%2flocal%2f",
"components": {
"dir": "/usr/local/"
}
},
"hash": "#my-spot-on-page",
"url": "http://me:mypass@example.com:8088/dir/mypage.html?dir=%2fusr%2flocal%2f",
"href": "http://me:mypass@example.com:8088/dir/mypage.html?dir=%2fusr%2flocal%2f#my-spot-on-page",
"portText": "8088",
"port": 8088,
"file": "mypage.html"
}
*/
urlinfo = urlutils.components("/a/directory/that/doesnt/../exist/mydoc.html", true);
/* urlinfo =
{
"scheme": "",
"username": "",
"password": "",
"origin": "",
"host": "",
"authority": "",
"path": "/a/directory/that/exist/",
"fullPath": "/a/directory/that/exist/mydoc.html",
"queryString": {},
"hash": "",
"url": "",
"href": "",
"file": "mydoc.html"
}
*/
absUrl¶
The
absUrlfunction takes a starting URL and a single URL path or an Array of URL paths, and converts them to absolute URLS.Usage:
var urlutils = require("rampart-url"); var newUrls = urlutils.absUrl(source_url, paths[, returnComponents]);Where:
source_urlis a String, the URL from which the relative paths (“hrefs”) were extracted.pathsis a String, or an Array of Strings, the URL paths to be converted to absolute URLs.returnComponentsis an Boolean, settrueto have the return value be an Object, the format of which is the same as in components above.
- Return Value:
A String, or an Array of Strings (if paths is an Array). The single value or an Array member will be
undefinedif the URL cannot be parsed.If
returnComponentsistrue, the return value will be a Object or an Array of Objects containing the components of the URL.
Example:
var urlutils = require("rampart-url");
var sourceUrl = "http://example.com/dir/mypage.html"
var links = [
"../images/me.jpg",
"../index.html",
"/cgi-bin/myapp.app",
"https://www.google.com:443/search"
]
var absurls = urlutils.absUrl(sourceUrl, links);
/* absurls =
[
"http://example.com/images/me.jpg",
"http://example.com/index.html",
"http://example.com/cgi-bin/myapp.app",
"https://www.google.com/search"
]
*/
absurls = urlutils.absUrl(sourceUrl, links, true);
/* absurls =
[
{
"scheme": "http",
"username": "",
"password": "",
"origin": "http://example.com",
"host": "example.com",
"authority": "//example.com",
"path": "/images/",
"fullPath": "/images/me.jpg",
"queryString": {},
"hash": "",
"url": "http://example.com/images/me.jpg",
"href": "http://example.com/images/me.jpg",
"port": 80,
"file": "me.jpg"
},
{
"scheme": "http",
"username": "",
"password": "",
"origin": "http://example.com",
"host": "example.com",
"authority": "//example.com",
"path": "/",
"fullPath": "/index.html",
"queryString": {},
"hash": "",
"url": "http://example.com/index.html",
"href": "http://example.com/index.html",
"port": 80,
"file": "index.html"
},
{
"scheme": "http",
"username": "",
"password": "",
"origin": "http://example.com",
"host": "example.com",
"authority": "//example.com",
"path": "/cgi-bin/",
"fullPath": "/cgi-bin/myapp.app",
"queryString": {},
"hash": "",
"url": "http://example.com/cgi-bin/myapp.app",
"href": "http://example.com/cgi-bin/myapp.app",
"port": 80,
"file": "myapp.app"
},
{
"scheme": "https",
"username": "",
"password": "",
"origin": "https://www.google.com",
"host": "www.google.com",
"authority": "//www.google.com",
"path": "/",
"fullPath": "/search",
"queryString": {},
"hash": "",
"url": "https://www.google.com/search",
"href": "https://www.google.com/search",
"port": 443,
"file": "search"
}
]
*/