UNPKG

ice.fo.utils

Version:

52 lines (38 loc) 1.18 kB
import qs from 'qs'; export default function addParamsToUrl(text, obj) { if (!text || !Object.keys(obj).length) { return text || ''; } if (!text.includes('?')) { text += '?'; } const qi = text.indexOf('?'); const params = qs.parse(text.substr(qi + 1)); const query = qs.stringify({ ...params, ...obj }); return text.substr(0, qi) + (query ? `?${query}` : ''); // if (!text.includes('?')) { // text += '?' // } // for (const k in obj) { // const v = obj[k] // const key = encodeURIComponent(k) // const value = encodeURIComponent(v) // // kvp looks like ['key1=value1', 'key2=value2', ...] // const kvp = text.substr(text.indexOf('?') + 1).split('&') // let i = 0 // for (; i < kvp.length; i++) { // if (kvp[i].startsWith(key + '=')) { // const pair = kvp[i].split('=') // pair[1] = value // kvp[i] = pair.join('=') // break // } // } // if (i >= kvp.length) { // kvp[kvp.length] = [key, value].join('=') // } // // can return this or... // const params = kvp.join('&') // return text.substr(0, text.indexOf('?')) + params // } }