HEX
Server: nginx/1.24.0
System: Linux nowruzgan 6.8.0-57-generic #59-Ubuntu SMP PREEMPT_DYNAMIC Sat Mar 15 17:40:59 UTC 2025 x86_64
User: babak (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/dev/nowruzgan/rest/node_modules/machinepack-urls/machines/build-url-from-template.js
module.exports = {

  friendlyName: 'Build URL from template',
  description: 'Build a URL from a template string and a set of route parameters.',
  extendedDescription: 'Template is in the standard express/backbone format.',
  sync: true,
  inputs: {
    urlTemplate: {
      description: 'The URL template, consisting of zero or more colon-prefixed tokens.',
      example: '/api/v1/user/:id/friends/:friendId',
      required: true
    },
    data: {
      description: 'An object of key/value pairs to use as url path parameter values',
      typeclass: 'dictionary',
      required: true
    }
  },
  defaultExit: 'success',
  exits: {
    error: {
      description: 'Unexpected error occurred.'
    },
    success: {
      example: '/api/v1/user/7/friends/aba213-a83192bf-d139-e139e'
    }
  },

  fn: function (inputs, exits) {
    var result = inputs.urlTemplate.replace(/(\:[^\/\:\.]+)/g, function ($all, $1){
      var routeParamName = $1.replace(/^\:/, '');
      return inputs.data[routeParamName];
    });
    return exits.success(result);
  }
};