react-application-core
Version:
A react-based application core for the business applications.
115 lines • 4.06 kB
JavaScript
;
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