urlparse-template

1.0.0 • Public • Published

urlparse-template

url.parse() with templating support (via. Bram Stein's url-template).

Built for being able to give 'templated' URLs in configuration files, which you then can fill out + get parsed on demand:

var utp = require('urlparse-template');

var template = utp('http://{username}:{password}@{username}.service.tld/');

// Later

var urlparts = template({
	username: 'foo',
	password: 'bar'
});

// Gives:
// {
//   protocol: 'http:',
//   href: 'http://foo:bar@foo.service.tld/',
//   auth: 'foo:bar',
//   username: 'foo', // Parsed out from auth
//   password: 'bar', // Parsed out from auth
//   host: 'foo.service.tld',
//   hostname: 'foo.service.tld',
//   ...
// }

It also works without the explicit template function:

var data = utp(templateString, fillData);

Details

We actually use a fork of url.parse() that doesn't call decodeURIComponent() in the parsed data. This allows us to parse the auth-section in a sane manner, even if users have : in their username.

(Yes it does suck to have legacy-systems with lax validation...)

License

ISC

Dependents (2)

Package Sidebar

Install

npm i urlparse-template

Weekly Downloads

1,307

Version

1.0.0

License

ISC

Last publish

Collaborators

  • msiebuhr
  • papandreou