https://github.com/bramstein/url-template
A JavaScript URI template implementation (RFC 6570 compliant)
https://github.com/bramstein/url-template
Last synced: about 1 year ago
JSON representation
A JavaScript URI template implementation (RFC 6570 compliant)
- Host: GitHub
- URL: https://github.com/bramstein/url-template
- Owner: bramstein
- License: bsd-3-clause
- Created: 2012-10-23T21:05:13.000Z (over 13 years ago)
- Default Branch: main
- Last Pushed: 2024-02-01T11:30:30.000Z (over 2 years ago)
- Last Synced: 2025-04-17T20:39:49.610Z (about 1 year ago)
- Language: JavaScript
- Size: 144 KB
- Stars: 184
- Watchers: 4
- Forks: 35
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## A JavaScript URI template implementation
This is a simple URI template implementation following the [RFC 6570 URI Template specification](http://tools.ietf.org/html/rfc6570). The implementation supports all levels defined in the specification and is extensively tested.
## Installation
For use with Node.js or build tools you can install it through npm:
```sh
$ npm install url-template
```
If you want to use it directly in a browser use a CDN like [Skypack](https://www.skypack.dev/view/url-template).
## Example
```js
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'
```
## A note on error handling and reporting
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.
## Supported Node.js versions
The same versions that are [actively supported by Node.js](https://github.com/nodejs/release#release-schedule) are also supported by `url-template`, older versions of Node.js might be compatible as well, but are not actively tested against.