UNPKG

@openui5/sap.ui.core

Version:

OpenUI5 Core Library sap.ui.core

93 lines (80 loc) 2.15 kB
/*! * OpenUI5 * (c) Copyright 2026 SAP SE or an SAP affiliate company. * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. */ /** * IMPORTANT: This is a private module, its API must not be used in production and is * subject to change. * * It may be used to experiment with an alternative bootstrap of a UI5 application. * * Currently, it does not fully recreate the environment of the regular UI5 bootstrap * (<code>sap-ui-core.js</code>), but only a subset as required by UI5 Controls * (<code>sap.m</code>) or UI5 Web Components. * * @private * @experimental */ /*global document, sap */ (function() { "use strict"; //extract base URL from script tag var oScriptTag, mMatch, sBaseUrl; oScriptTag = document.getElementById("sap-ui-bootstrap"); if (oScriptTag) { mMatch = /^(?:.*\/)?resources\//.exec(oScriptTag.getAttribute("src")); if (mMatch) { sBaseUrl = mMatch[0]; } } if (sBaseUrl == null) { throw new Error("sap-ui-boot.js: could not identify script tag!"); } function loadScripts(urls, callback) { var pending = urls.length, errors = 0; if (pending === 0) { callback(); return; } function listener(e) { pending--; if ( e.type === 'error' ) { errors++; } e.target.removeEventListener("load", listener); e.target.removeEventListener("error", listener); if ( pending === 0 && errors === 0 && callback ) { callback(); } } for ( var i = 0; i < urls.length; i++ ) { var script = document.createElement("script"); script.addEventListener("load", listener); script.addEventListener("error", listener); script.src = sBaseUrl + urls[i]; document.head.appendChild(script); } } // cascade 1: the loader loadScripts([ "ui5loader.js" ], function() { // cascade 2: the loader configuration script sap.ui.loader.config({ async: true }); loadScripts([ "sap/ui/core/boot/_bootConfig.js" ], function() { // cascade 3: load autoconfig loadScripts([ "ui5loader-autoconfig.js" ], function() { // cascade 4: the boot script loadScripts(["sap/ui/core/boot/_runBoot.js"]); }); }); }); }());