UNPKG

@onesy/utils

Version:
28 lines (27 loc) 1.36 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const is_1 = __importDefault(require("./is")); const isEnvironment_1 = __importDefault(require("./isEnvironment")); const getQueryParams_1 = __importDefault(require("./getQueryParams")); const updateQueryParams = (value = {}, override = true) => { if ((0, isEnvironment_1.default)('browser')) { const queryParams = (0, getQueryParams_1.default)(); if ((0, is_1.default)('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 => `${encodeURIComponent(key)}=${queryParams[key]}`).join('&'); window.history.replaceState(null, null, `?${queryParamsString}`); } }; exports.default = updateQueryParams;