UNPKG

1.32 kBJavaScriptView Raw
1/*
2 * Copyright 2015 the original author or authors
3 * @license MIT, see LICENSE.txt for details
4 *
5 * @author Scott Andrews
6 */
7
8(function (define) {
9 'use strict';
10
11 define(function (require) {
12
13 var interceptor, uriTemplate, mixin;
14
15 interceptor = require('../interceptor');
16 uriTemplate = require('../util/uriTemplate');
17 mixin = require('../util/mixin');
18
19 /**
20 * Applies request params to the path as a URI Template
21 *
22 * Params are removed from the request object, as they have been consumed.
23 *
24 * @param {Client} [client] client to wrap
25 * @param {Object} [config.params] default param values
26 * @param {string} [config.template] default template
27 *
28 * @returns {Client}
29 */
30 return interceptor({
31 init: function (config) {
32 config.params = config.params || {};
33 config.template = config.template || '';
34 return config;
35 },
36 request: function (request, config) {
37 var template, params;
38
39 template = request.path || config.template;
40 params = mixin({}, request.params, config.params);
41
42 request.path = uriTemplate.expand(template, params);
43 delete request.params;
44
45 return request;
46 }
47 });
48
49 });
50
51}(
52 typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); }
53 // Boilerplate for AMD and Node
54));