Spaces:
Configuration error
Configuration error
| ; | |
| var utils = require('./../utils'); | |
| function encode(val) { | |
| return encodeURIComponent(val). | |
| replace(/%3A/gi, ':'). | |
| replace(/%24/g, '$'). | |
| replace(/%2C/gi, ','). | |
| replace(/%20/g, '+'). | |
| replace(/%5B/gi, '['). | |
| replace(/%5D/gi, ']'); | |
| } | |
| /** | |
| * Build a URL by appending params to the end | |
| * | |
| * @param {string} url The base of the url (e.g., http://www.google.com) | |
| * @param {object} [params] The params to be appended | |
| * @returns {string} The formatted url | |
| */ | |
| module.exports = function buildURL(url, params, paramsSerializer) { | |
| /*eslint no-param-reassign:0*/ | |
| if (!params) { | |
| return url; | |
| } | |
| var serializedParams; | |
| if (paramsSerializer) { | |
| serializedParams = paramsSerializer(params); | |
| } else if (utils.isURLSearchParams(params)) { | |
| serializedParams = params.toString(); | |
| } else { | |
| var parts = []; | |
| utils.forEach(params, function serialize(val, key) { | |
| if (val === null || typeof val === 'undefined') { | |
| return; | |
| } | |
| if (utils.isArray(val)) { | |
| key = key + '[]'; | |
| } else { | |
| val = [val]; | |
| } | |
| utils.forEach(val, function parseValue(v) { | |
| if (utils.isDate(v)) { | |
| v = v.toISOString(); | |
| } else if (utils.isObject(v)) { | |
| v = JSON.stringify(v); | |
| } | |
| parts.push(encode(key) + '=' + encode(v)); | |
| }); | |
| }); | |
| serializedParams = parts.join('&'); | |
| } | |
| if (serializedParams) { | |
| var hashmarkIndex = url.indexOf('#'); | |
| if (hashmarkIndex !== -1) { | |
| url = url.slice(0, hashmarkIndex); | |
| } | |
| url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; | |
| } | |
| return url; | |
| }; | |