UNPKG

react-application-core

Version:

A react-based application core for the business applications.

115 lines 4.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UrlUtils = exports.appendUrlArgs = exports.buildTransportUrl = exports.prepareUrl = exports.getURLSearchParams = exports.getUrlProtocol = exports.getUrlHost = exports.getUrlDirectory = exports.getUrlQueryParams = exports.getFullPath = exports.getSectionFullPath = exports.getCurrentUrlPath = void 0; var R = require("ramda"); var URI = require("urijs"); var URLSearchParams = require("url-search-params"); var definition_1 = require("../definition"); var object_1 = require("./object"); var filter_1 = require("./filter"); var json_1 = require("./json"); /** * @stable [07.10.2019] * @returns {string} */ exports.getCurrentUrlPath = function () { return URI().path(); }; /** * @stable [13.03.2020] * @param {string} sectionRoute * @returns {string} */ exports.getSectionFullPath = function (sectionRoute) { return URI(exports.getFullPath()).segment(sectionRoute).toString(); }; /** * @stable [13.03.2020] * @returns {string} */ exports.getFullPath = function () { return exports.getUrlProtocol() + "://" + exports.getUrlHost() + exports.getUrlDirectory(); }; /** * @stable [13.03.2020] * @returns {TParams} */ exports.getUrlQueryParams = function () { return new URI().query(true); }; /** * @stable [13.03.2020] * @returns {string} */ exports.getUrlDirectory = function () { return URI().directory(); }; /** * @stable [13.03.2020] * @returns {string} */ exports.getUrlHost = function () { return URI().host(); }; /** * @stable [13.03.2020] * @returns {string} */ exports.getUrlProtocol = function () { return URI().protocol(); }; // TODO Deprecated new URI().query(true); exports.getURLSearchParams = function (search) { return new URLSearchParams(search); }; /** * @stable [19.06.2020] * @param {string} uri * @returns {boolean} */ var isAbsoluteURI = function (uri) { return URI(uri).is('absolute'); }; /** * @stable [13.12.2020] * @param params */ var buildEncodedURI = function (params) { return encodeURIComponent(btoa(json_1.JsonUtils.serializeJson(params))); }; /** * @stable [12.09.2018] * @param {string} url * @returns {string} */ exports.prepareUrl = function (url) { return url.replace(/(\/\/)+/, '/'); }; /** * @stable [16.09.2019] * @param {ITransportUrlConfigEntity} config * @returns {string} */ exports.buildTransportUrl = function (config) { var urlProvider = config.urlProvider, dataProvider = config.dataProvider, entity = config.entity, settings = config.settings, dateNow = config.dateNow; var uniqueParamName = settings.uniqueParamName; var method = entity.method; var initialUrl = urlProvider(entity); var url = new URI(initialUrl); if (!R.isNil(uniqueParamName) && entity.noCache !== false) { if (!(R.isNil(method) || [definition_1.TransportMethodsEnum.POST].includes(method))) { url.addSearch(uniqueParamName, dateNow); } } if (method === definition_1.TransportMethodsEnum.GET) { var params = dataProvider(entity); if (object_1.isObjectNotEmpty(params)) { R.forEachObjIndexed(function (value, key) { return url.addSearch(String(key), value); }, params); } } return url.valueOf(); }; /** * @stable [08.01.2020] * @param {string} initialUrl * @param {IKeyValue} args * @returns {string} */ exports.appendUrlArgs = function (initialUrl, args) { var url = new URI(initialUrl); args = filter_1.notNilValuesFilter(args); if (object_1.isObjectNotEmpty(args)) { R.forEachObjIndexed(function (value, key) { return url.addSearch(String(key), value); }, args); } return url.valueOf(); }; /** * @stable [14.06.2020] */ var UrlUtils = /** @class */ (function () { function UrlUtils() { } UrlUtils.buildEncodedURI = buildEncodedURI; UrlUtils.isAbsoluteURI = isAbsoluteURI; return UrlUtils; }()); exports.UrlUtils = UrlUtils; //# sourceMappingURL=url.js.map