This is a simple URI template implementation following the RFC 6570 URI Template specification. The implementation supports all levels defined in the specification and is extensively tested.
For use with Node.js or build tools you can install it through npm:
$ npm install url-template
If you want to use it directly in a browser use a CDN like Skypack.
import { parseTemplate } from 'url-template';
const emailUrlTemplate = parseTemplate('/{email}/{folder}/{id}');
const emailUrl = emailUrlTemplate.expand({
email: 'user@domain',
folder: 'test',
id: 42
});
console.log(emailUrl);
// Returns '/user@domain/test/42'
The RFC states that errors in the templates could optionally be handled and reported to the user. This implementation takes a slightly different approach in that it 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. The leaves incorrect URLs to be handled by your URL library of choice.
The same versions that are actively supported by Node.js are also supported by url-template
, older versions of Node.js might be compatible as well, but are not actively tested against.