URI parser and builder with semantic API
Name | uri |
Version | 0.1.0 |
Size | 3 KB / 1 KB (gzipped) |
Environment | Node, Browser |
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.1.0/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:pass@example.com:8080/bar/foo.xml?foo=bar&hello=world&#frament=1')
url.protocol()
url.host()
url.hostname()
url.port()
url.auth()
url.user()
url.password()
url.path()
url.search()
url.query()
url.frament()
Builder
uri()
.protocol('https')
.host('example.com')
.port('8080')
.auth('user:pass')
.path('/bar/foo.xml')
.query({ foo: 'bar', hello: 'world' })
.fragment('fragment=1')
.build()
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#fragment([ fragment ])
uri#build()
uri#parse(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