UNPKG

@aurigma/design-atoms

Version:

Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.

63 lines 2.2 kB
import { urlCombine } from "@aurigma/design-atoms-model/Utils/Utils"; export function addUrlParameter(startUrl, name, value) { const separator = startUrl.indexOf('?') == -1 ? '?' : '&'; return startUrl + separator + encodeURIComponent(name) + '=' + encodeURIComponent(value); } export function buildUrl(baseUrl, endpoint, endpointParams, queryParams) { if (endpointParams) for (let item in endpointParams) endpoint = endpoint.replace(`{${item}}`, encodeURIComponent(endpointParams[item])); let url = urlCombine(baseUrl, endpoint); if (queryParams) for (let item in queryParams) url = addUrlParameter(url, item, queryParams[item]); return url; } export function shouldEncodeUrl(url) { try { const [route, query] = url.split('?'); if (decodeURIComponent(route) !== route) { return false; } if (query) { let params = query.split('&'); for (let item in params) { let [key, value] = params[item].split('='); if (key && decodeURIComponent(key) !== key) { return false; } if (value && decodeURIComponent(value) !== value) { return false; } } } return true; } catch (e) { return false; } } export function getQueryParams(url) { try { const params = new URL(url).searchParams; const result = {}; params.forEach((value, key) => { const num = Number(value); result[key] = Number.isFinite(num) && value.trim() !== '' ? num : value; }); return result; } catch (_a) { return {}; } } export function queryParamsChanged(oldParams, newParams, ignoreKeys = []) { const ignore = new Set(ignoreKeys); const keys = new Set([...Object.keys(oldParams), ...Object.keys(newParams)]); return [...keys] .filter((k) => !ignore.has(k)) .some((k) => oldParams[k] !== newParams[k]); } //# sourceMappingURL=UrlUtils.js.map