@onesy/utils
Version:
21 lines (18 loc) • 1.04 kB
JavaScript
import is from './is';
import isEnvironment from './isEnvironment';
import getQueryParams from './getQueryParams';
const updateQueryParams = function () {
let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
let override = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
if (isEnvironment('browser')) {
const queryParams = getQueryParams();
if (is('object', value)) Object.keys(value).forEach(key => {
const newParamValue = value[key];
if ((!queryParams.hasOwnProperty(key) || override) && newParamValue !== undefined) queryParams[key] = encodeURIComponent(newParamValue);
if (override && queryParams.hasOwnProperty(key) && newParamValue === undefined) delete queryParams[key];
});
const queryParamsString = Object.keys(queryParams).map(key => "".concat(encodeURIComponent(key), "=").concat(queryParams[key])).join('&');
window.history.replaceState(null, null, "?".concat(queryParamsString));
}
};
export default updateQueryParams;