URI Template RFC 6570 expansion and extraction.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
dist
tests
.gitignore
.travis.yml
README.md
index.js
package.json

README.md

@version    0.1.11
@date       2015-02-09
@stability  2 - Unstable

URI Template – Build Coverage

URI Template RFC 6570 expansion and extraction.

Usage

// Call `expand` directly
var data = {"domain":"example.com", "user":"fred", "query":"mycelium"}
URI.expand("http://{domain}/~{user}/foo{?query,number}", data)
// Returns http://example.com/~fred/foo?query=mycelium

// ..or use `Template` constructor
var data = {"domain":"example.com", "user":"fred", "query":"mycelium", "number": 3}
var template = new URI.Template("http://{domain}/~{user}/foo{?query,number}")
template.expand(data)
// Returns http://example.com/~fred/foo?query=mycelium&number=3

// Extract variables
template.match("http://example.com/~fred/foo?query=mycelium&number=3")
// Returns {"domain":"example.com", "user":"fred", "query":"mycelium", "number": "3"}

template.match("http://other.com/?query=mycelium")
// Returns false

Installation

To use it in the browser, include uri-template-min.js in your site

<script src=uri-template-min.js></script>

In node.js: npm install uri-template-lite

var URI = require("uri-template-lite").URI

About error handling

This implementation tries to do a best effort template expansion and leaves erroneous expressions in the returned URI instead of throwing errors. So for example, the incorrect expression {unclosed will return {unclosed as output.

Browser Support

It should work IE6 and up but automated testing is currently broken.

  • For older browsers it requires browser-upgrade-lite package or other ES5 polyfill.
  • FF3-4 escape should be patched to remove non-standard 2nd param, browser-upgrade-lite does that.

External links

Licence

Copyright (c) 2014-2015 Lauri Rooden <lauri@rooden.ee>
The MIT License