UNPKG

@kitmi/utils

Version:

A JavaScript utility library for both server and browser

36 lines (27 loc) 971 B
import objectToQueryString from './urlObjectToQueryString'; import queryStringToObject from './urlQueryStringToObject'; /** * Merge the query parameters into given url. * @function string.urlAppendQuery * @param {String} url - Original url. * @param {Object} query - Key-value pairs query object to be merged into the url. * @returns {String} */ function appendQuery(url, query) { if (!query) { return url; } const posQM = url.indexOf('?'); if (posQM === -1) { if (typeof query !== 'string') { query = objectToQueryString(query); } return query ? url + '?' + query : url; } const [base, qs] = url.split('?', 2); const previousObj = queryStringToObject(qs); const newObj = typeof query === 'string' ? queryStringToObject(query) : query; const newQs = objectToQueryString({ ...previousObj, ...newObj }); return newQs ? base + '?' + newQs : url; } export default appendQuery;