0.3.1 • Published 3 years ago

lil-uri v0.3.1

Weekly downloads
6,003
License
MIT
Repository
github
Last release
3 years ago

lil'-uri Build Status

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:pass@example.com: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