| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | 
							- 'use strict'
 
- import * as utils from '../utils'
 
- function encode(val) {
 
-     return encodeURIComponent(val)
 
-         .replace(/%40/gi, '@')
 
-         .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
 
-  */
 
- export default function buildURL(url, params) {
 
-     /* eslint no-param-reassign:0 */
 
-     if (!params) {
 
-         return url
 
-     }
 
-     let serializedParams
 
-     if (utils.isURLSearchParams(params)) {
 
-         serializedParams = params.toString()
 
-     } else {
 
-         const parts = []
 
-         utils.forEach(params, (val, key) => {
 
-             if (val === null || typeof val === 'undefined') {
 
-                 return
 
-             }
 
-             if (utils.isArray(val)) {
 
-                 key = `${key}[]`
 
-             } else {
 
-                 val = [val]
 
-             }
 
-             utils.forEach(val, (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) {
 
-         const hashmarkIndex = url.indexOf('#')
 
-         if (hashmarkIndex !== -1) {
 
-             url = url.slice(0, hashmarkIndex)
 
-         }
 
-         url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams
 
-     }
 
-     return url
 
- }
 
 
  |