@openui5/sap.ui.core
Version:
OpenUI5 Core Library sap.ui.core
66 lines (59 loc) • 2.02 kB
JavaScript
/*!
* OpenUI5
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
*/
sap.ui.define([], function() {
'use strict';
/**
* This utility class is a collection of helper functions for asyncHints.
*
* @class Utility class for asyncHints
* @author SAP SE
* @version 1.147.0
*
* @private
* @ui5-restricted sap.ushell
*/
var AsyncHintsHelper = {};
/**
* The helper function rewrites URLs of an asyncHints object using a
* callback function with specific string manipulations, especially
* for 'sap.ui.core.Component.create' and 'sap.ui.core.Component.load'.
* Only URLs of defined components and libs are affected.
*
* @param {object} oAsyncHints An object that provides hints for asynchronous loading (@see sap.ui.core.Component#load)
* @param {function} fnUrlModifier A callback function that gets a URL string passed and returns its manipulated value
* @return {object} The manipulated asyncHints object
*
* @private
* @ui5-restricted sap.ushell
*/
AsyncHintsHelper.modifyUrls = function(oAsyncHints, fnUrlModifier) {
// Function to remove url property if its value is undefined
function _removeUrlIfUndefined(oAsyncHint, sUrl) {
if (sUrl === undefined) {
delete oAsyncHint.url;
}
}
// Modify components and libs
[oAsyncHints.components, oAsyncHints.libs].forEach(function(aItems) {
if (Array.isArray(aItems)) {
aItems.forEach(function(vAsyncHint) {
if (typeof vAsyncHint !== "object") {
return;
}
if (typeof vAsyncHint.url === "string") {
vAsyncHint.url = fnUrlModifier(vAsyncHint.url);
_removeUrlIfUndefined(vAsyncHint, vAsyncHint.url);
} else if (typeof vAsyncHint.url === "object" && typeof vAsyncHint.url.url === "string") {
vAsyncHint.url.url = fnUrlModifier(vAsyncHint.url.url);
_removeUrlIfUndefined(vAsyncHint, vAsyncHint.url.url);
}
});
}
});
return oAsyncHints;
};
return AsyncHintsHelper;
});