kea-react
Version:
Componentes comunes de react
41 lines (40 loc) • 2.12 kB
JavaScript
;
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;