2.0.0 • Public • Published


Version npm GitHub Workflow Status Coverage Status

Build URLs by transforming a template with params.


yarn add transform-url


npm install --save transform-url


Query params

The first argument to transformUrl is a URL template, with the second being a params object of key/value pairs.

const transformUrl = require('transform-url');
const params = {
  userId: 'user-1234',
  orderId: 'order-6789'

const url = transformUrl('', params);

Path params

If you want some params to be applied as path params, add placeholders to the URL template.

const url = transformUrl('', params);

Mixed params

Any remaining params not specified in the URL template, will be applied as query params.

const url = transformUrl('', params);

Other params

Besides path and query params, placeholders can be added to any other part of the URL template.

const moreParams = {
  scheme: 'https',
  domain: '',
  hash: 'somePlace'

const url = transformUrl('{scheme}://{domain}/api/users/:userId#{hash}', moreParams);


URL template placeholders can use either :colon or {curlyBraces} matchers. Additionally, it is possible to provide a custom matcher via options.

const options = {
  matcher: /\$(\w+)/g   // match `$paramName`

const url = transformUrl('$scheme://$domain/api/users/$userId#$hash', moreParams, options);

For additional options, see the API Reference below.

API Reference

transformUrl(urlTemplate, params, [options]) ⇒ String

Transform URL templates with provided params. Params that are not placeholders in the url template will be append as query params. Urls with a port number will be respected, for example

Kind: global function
Returns: String - transformed url

Param Type Description
urlTemplate String URL template to be transformed with params. URL template placeholders can use either :colon or {curlyBraces} matchers.
params Object Key/value pairs to be applied as path and/or query params. Required to include params for all placeholders.
[options] Object Optional configuration to output results.
[options.matcher] RegExp Specify regular expression for custom placeholders in URL templates.

Package Sidebar


npm i transform-url

Weekly Downloads






Unpacked Size

17 kB

Total Files


Last publish


  • swaagie
  • mmason2
  • jpina1-godaddy
  • jgowdy
  • ibrandao
  • jpage
  • kinetifex
  • rxmarbles
  • kquerna
  • 3rdeden
  • jcrugzz
  • dcousineau
  • indexzero
  • decompil3d
  • salilagrawal