Tiny URI parser and builder with chainable API
npm install lil-uri
URI parser and builder with semantic API
| Name | uri |
| Version | 0.2.2 |
| Size | 3 KB / 1 KB (gzipped) |
| Environment | Node, Browser |
- URI parsing
- URI builder
- RFC 3986 compliant
- Full and partial URI support
- Automatic query mapping values
- Support for special characters decoding
#### Node.js
``bash`
npm install lil-uri
#### Browser
Via Bower
`bash`
bower install lil-uri`
Via Componentbash`
component install lil-js/uri`
Or loading the script remotelyhtml`
Cross-browser support guaranteed running tests in BrowserStack
- Node.js
- Chrome >= 5
- Firefox >= 3
- Safari >= 5
- Opera >= 10
- IE >= 9
You could fetch de module via require() if it's available.lil.uri
Otherwise, global fallback will be used, exposed via `js`
var uri = require('lil-uri')
##### Parser
`js`
var url = uri('http://user:pass@example.com:8080/bar/foo.xml?foo=bar&hello=worldhash=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
`js`
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=worldframent=1
#### 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
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
Only node.js is required for development
Clone the repository
`bash`
$ git clone https://github.com/lil-js/uri.git && cd uri
Install dependencies
`bash`
$ npm install
Generate browser bundle source
`bash`
$ make browser
Run tests
`bash``
$ make test
MIT © Tomas Aparicio
[travis]: http://travis-ci.org/lil-js/uri