UNPKG

kea-react

Version:

Componentes comunes de react

41 lines (40 loc) 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /**Codifica el valor de un query parameter*/ function encodeUrlParameterValue(parameter) { var str = (typeof (parameter) == "number") ? "" + parameter : (typeof (parameter) == "boolean") ? "" + parameter : (typeof (parameter) == "string") ? parameter : (parameter.toISOString()); return encodeURIComponent(str); } exports.encodeUrlParameterValue = encodeUrlParameterValue; /**Convierte un UrlParameters a un arreglo de key-values */ function urlParamsToKeyValuePair(urlParameters) { //Aplanamos los key values que sean arreglos: var keyValues = Object .keys(urlParameters) .map(function (x) { return ({ key: x, value: urlParameters[x] }); }) .map(function (x) { return ({ key: x.key, array: Array.isArray(x.value) ? x.value : [x.value] }); }) .map(function (x) { return x.array.map(function (y) { return ({ key: x.key, value: y }); }); }) .reduce(function (a, b) { return a.concat(b); }, []) .filter(function (x) { return x.value != null; }) .map(function (x) { return ({ key: x.key, value: x.value }); }); return keyValues; } /**Devuelve una cadena con todos los parametros url, separador por &. El caracter ? inicial no se devuelve por esta función. Si no hay ningun * parámetro que devolver se devuelve una cadena vacia */ function encodeUrlParameters(urlParameters) { var keyValues = urlParamsToKeyValuePair(urlParameters); var paramsStr = keyValues.filter(function (x) { return x.value != null; }).map(function (x) { return x.key + "=" + encodeUrlParameterValue(x.value); }).join("&"); return paramsStr; } exports.encodeUrlParameters = encodeUrlParameters; /** * Pega los parametros ya codificados a una URL con el separador ?. Si parameters esta vacio devuelve la URL original tal cual */ function appendEncodedUrlParameters(url, paramStr) { return paramStr ? (url + "?" + paramStr) : url; } exports.appendEncodedUrlParameters = appendEncodedUrlParameters;