@openui5/sap.ui.core
Version:
OpenUI5 Core Library sap.ui.core
80 lines (72 loc) • 1.73 kB
JavaScript
/*!
* OpenUI5
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
*/
/**
* Load configured modules
*
* @private
* @ui5-restricted sap.ui.core
*/
sap.ui.define([
"sap/base/config"
], function(
config
) {
"use strict";
var pLoadModules = Promise.resolve();
var pLoadLibraries = Promise.resolve();
var aModulesLoaded = [];
var aModules = config.get({
name: "sapUiModules",
type: config.Type.StringArray
});
var aLibs = config.get({
name: "sapUiLibs",
type: config.Type.StringArray
});
// load libraries
if (aLibs.length > 0) {
pLoadLibraries = new Promise(function(resolve, reject) {
sap.ui.require(["sap/ui/core/Lib"], function(Library) {
resolve(Library);
}, reject);
}).then(function(Library) {
var aLibsLoaded = [];
aLibs.forEach(function(lib){
aLibsLoaded.push(
Library.load({
name: lib
})
);
});
return Promise.all(aLibsLoaded);
});
}
// load eventing in parallel an execute it so it is available for later usages
aModulesLoaded.push(new Promise(function(resolve, reject) {
sap.ui.require(["sap/ui/events/jquery/EventSimulation"],function() {
resolve();
});
}));
// load other modules
if (aModules.length > 0) {
aModules.forEach(function(module) {
var aMatch = /^\[([^\[\]]+)?\]$/.exec(module);
aModulesLoaded.push(
new Promise(function(resolve, reject) {
sap.ui.require([aMatch && aMatch[1] || module], function() {
resolve();
}, aMatch ? resolve : reject);
})
);
});
}
pLoadModules = Promise.all(aModulesLoaded);
return {
run: function() {
return Promise.all([pLoadModules, pLoadLibraries]);
}
};
});