ice.fo.utils
Version:
52 lines (38 loc) • 1.18 kB
JavaScript
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
// }
}