UNPKG

@onesy/utils

Version:
21 lines (18 loc) 1.04 kB
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;