lil-uri
v0.3.1
Published
Tiny URI parser and builder with chainable API
Downloads
12,145
Maintainers
Readme
lil'-uri
URI parser and builder with semantic API
Features
- URI parsing
- URI builder
- RFC 3986 compliant
- Full and partial URI support
- Automatic query mapping values
- Support for special characters decoding
Installation
Node.js
npm install lil-uri
Browser
Via Bower
bower install lil-uri
Via Component
component install lil-js/uri
Or loading the script remotely
<script src="//cdn.rawgit.com/lil-js/uri/0.2.2/uri.js"></script>
Environments
Cross-browser support guaranteed running tests in BrowserStack
- Node.js
- Chrome >= 5
- Firefox >= 3
- Safari >= 5
- Opera >= 10
- IE >= 9
Usage
You could fetch de module via require()
if it's available.
Otherwise, global fallback will be used, exposed via lil.uri
var uri = require('lil-uri')
Parser
var url = uri('http://user:[email protected]:8080/bar/foo.xml?foo=bar&hello=world&#hash=1')
url.protocol() // -> http
url.host() // -> example.com:8080
url.hostname() // -> example.com
url.port() // -> 8080
url.auth() // -> { user: 'user', password: 'pass' }
url.user() // -> user
url.password() // -> pass
url.path() // -> /bar/foo.xml
url.search() // -> foo=bar&hello=world
url.query() // -> { foo: 'bar', hello: 'world' }
url.hash() // -> hash=1
Builder
uri()
.protocol('https')
.host('example.com')
.port('8080')
.auth('user:pass')
.path('/bar/foo.xml')
.query({ foo: 'bar', hello: 'world' })
.hash('hash=1')
.build() // -> http://@example.com:8080/bar/foo.xml?foo=bar&hello=world&#frament=1
API
uri([ uri ])
uri#protocol([ protocol ])
uri#host([ host ])
uri#hostname([ hostname ])
uri#port([ port ])
uri#auth([ auth ])
uri#user([ user ])
uri#password([ password ])
uri#path([ path ])
uri#search([ search ])
uri#query([ query ])
uri#hash([ fragment ])
uri#build()
uri#parse(uri)
uri.isURL(str)
uri.is(url)
uri.URI(uri)
uri.VERSION
Contributing
Wanna help? Cool! It will be appreciated :)
You must add new test cases for any new feature or refactor you do, always following the same design/code patterns that already exist
Development
Only node.js is required for development
Clone the repository
$ git clone https://github.com/lil-js/uri.git && cd uri
Install dependencies
$ npm install
Generate browser bundle source
$ make browser
Run tests
$ make test
License
MIT © Tomas Aparicio