@kitmi/utils
Version:
A JavaScript utility library for both server and browser
46 lines (45 loc) • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return _default;
}
});
const _urlObjectToQueryString = /*#__PURE__*/ _interop_require_default(require("./urlObjectToQueryString"));
const _urlQueryStringToObject = /*#__PURE__*/ _interop_require_default(require("./urlQueryStringToObject"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
/**
* 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 = (0, _urlObjectToQueryString.default)(query);
}
return query ? url + '?' + query : url;
}
const [base, qs] = url.split('?', 2);
const previousObj = (0, _urlQueryStringToObject.default)(qs);
const newObj = typeof query === 'string' ? (0, _urlQueryStringToObject.default)(query) : query;
const newQs = (0, _urlObjectToQueryString.default)({
...previousObj,
...newObj
});
return newQs ? base + '?' + newQs : url;
}
const _default = appendQuery;
//# sourceMappingURL=urlAppendQuery.js.map