uri-template-lite v23.4.0
URI Template Lite –
URI Template RFC 6570 expansion and extraction.
Usage
npm install uri-template-lite
var UriTemplate = require("uri-template-lite")
// Call `expand` directly
var data = {"domain":"example.com", "user":"fred", "query":"mycelium"}
UriTemplate.expand("http://{domain}/~{user}/foo{?query,number}", data)
// Returns http://example.com/~fred/foo?query=mycelium
// ..or use `Template` constructor
var template = new UriTemplate("http://{domain}/~{user}/foo{?query,number}")
template.expand({"domain":"example.com", "user":"fred", "query":"mycelium", "number": 3})
// 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 null
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
GitHub repo |
npm package |
URI Template RFC 6570 and
Tests |
Coveralls coverage
Buy Me A Tea
Licence
Copyright (c) 2014-2022 Lauri Rooden <lauri@rooden.ee>
The MIT License
1 year ago
2 years ago
2 years ago
4 years ago
4 years ago
4 years ago
5 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago