urllite.js
urllite is a URL parser for nodejs and the browser. It's meant to be a
replacement for URL decomposition IDL attributes—especially when you want
to support non-browser environments like node. Its main goal is to be tiny
enough to be bundled with browser builds of JS libraries.
urllite is designed to be modular so that you can include only the parts you
need. For example, URL resolution is a separate extension.
Its core API is based on the URLUtils interface (the properties of "a"
HTMLElements and window.location
):
var url = urllite('http://u:p@example.com:10/a/b/c?one=1&two=2#three');
url.origin
url.protocol
url.username
url.password
url.host
url.hostname
url.port
url.pathname
url.search
url.hash
Usage
In the browser
<script src="urllite.js"></script>
<script>
var url = urllite('http://u:p@example.com:10/a/b/c?one=1&two=2#three');
</script>
You can also use urllite as an AMD module.
In node
var urllite = require('urllite');
var url = urllite('http://u:p@example.com:10/a/b/c?one=1&two=2#three');
In your own libraries
You can compile urllite into your own libraries using a tool like browserify.
API
The urllite
function is the main entry point. Use it to parse a URL:
var url = urllite('http://example.com');
console.log(url.host);
All URL methods are available as extensions. In node, all extensions are
available by default. For the browser, you can require extensions selectively
and create custom builds with only the extensions you need.
resolve()
Resolves the URL to the given base.
var url = urllite('dogs/are/awesome');
console.log(url.resolve('http://animals.com').toString());
relativize()
Returns a new URL which is a relative to the provided URL.
var url = urllite('http://animals.com/dogs/are/awesome');
console.log(url.relativize('http://animals.com').toString());