@version 0.1.11
@date 2015-02-09
@stability 2 - Unstable
URI Template –
URI Template RFC 6570 expansion and extraction.
Usage
var data = {"domain":"example.com", "user":"fred", "query":"mycelium"}
URI.expand("http://{domain}/~{user}/foo{?query,number}", data)
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)
template.match("http://example.com/~fred/foo?query=mycelium&number=3")
template.match("http://other.com/?query=mycelium")
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