Skip to content

A JavaScript URI template implementation (RFC 6570 compliant)

License

Notifications You must be signed in to change notification settings

wikibus/es6-url-template

This branch is 14 commits ahead of, 50 commits behind bramstein/url-template:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

afd3385 · Oct 12, 2020

History

79 Commits
Oct 12, 2020
May 31, 2016
Oct 12, 2020
Oct 12, 2020
May 31, 2016
Oct 12, 2020
Nov 25, 2017
Sep 23, 2014
Nov 27, 2017
Oct 12, 2020
Aug 4, 2020
Oct 12, 2020
Oct 12, 2020

Repository files navigation

An ES6 URI template implementation

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.

This is a fork of url-template changed to use ES6 classes and exported as a module.

Installation

$ yarn add es6-url-template

Example

import UriTemplate from 'es6-url-template';

const emailUrlTemplate = new UriTemplate('/{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.

About

A JavaScript URI template implementation (RFC 6570 compliant)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 97.1%
  • HTML 2.9%