Have ideas to improve npm?Join in the discussion! »

    lil-uri
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/lil-uri package

    0.3.1 • Public • Published

    lil'-uri Build Status

    URI parser and builder with semantic API

    Name uri
    Version 0.2.2
    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.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

    Install

    npm i lil-uri

    DownloadsWeekly Downloads

    9,365

    Version

    0.3.1

    License

    MIT

    Unpacked Size

    25.7 kB

    Total Files

    11

    Last publish

    Collaborators

    • avatar