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
npm install lil-uri
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>
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.
Otherwise, global fallback will be used, exposed via lil.uri
var uri = require('lil-uri')
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
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
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
$ 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
MIT © Tomas Aparicio