@@ -31,7 +31,7 @@ const processManifest = async (manifestResource) => {
3131 id : undefined
3232 } ;
3333
34- // sap.ui5/dependencies is used for the manifestHints
34+ // sap.ui5/dependencies is used for the " manifestHints/libs"
3535 if ( manifestObject [ "sap.ui5" ] ) {
3636 const manifestDependencies = manifestObject [ "sap.ui5" ] [ "dependencies" ] ;
3737 if ( manifestDependencies ) {
@@ -44,7 +44,7 @@ const processManifest = async (manifestResource) => {
4444 }
4545 }
4646
47- // sap.app/embeds is required for "components" in sap-ui-version.json
47+ // sap.app/embeds is used for "components"
4848 if ( manifestObject [ "sap.app" ] ) {
4949 const manifestEmbeds = manifestObject [ "sap.app" ] [ "embeds" ] ;
5050 if ( manifestEmbeds ) {
@@ -59,6 +59,14 @@ const processManifest = async (manifestResource) => {
5959 * Library Info
6060 *
6161 * @typedef {object<string, object> } DependencyInfos
62+ *
63+ * * @example
64+ * {
65+ * sap.chart: {
66+ * lazy: true
67+ * },
68+ * sap.f: { }
69+ * }
6270 */
6371
6472/**
@@ -120,20 +128,7 @@ const clone = (obj) => {
120128 return JSON . parse ( JSON . stringify ( obj ) ) ;
121129} ;
122130
123- /**
124- *
125- * @param {Map<string, DependencyInfos> } libraryInfosMap
126- * @param {string } libName
127- * @param {object } newObject
128- */
129- const setManifestHints = ( libraryInfosMap , libName , newObject ) => {
130- const existingEntry = libraryInfosMap . get ( libName ) ;
131- const newLibs = merge ( existingEntry , newObject ) ;
132- libraryInfosMap . set ( libName , newLibs ) ;
133- } ;
134-
135- const merge = ( existingEntry , newObject ) => {
136- const newLibs = clone ( newObject ) ;
131+ const merge = ( existingEntry , newLibs ) => {
137132 if ( existingEntry ) {
138133 Object . keys ( existingEntry ) . forEach ( ( libName ) => {
139134 if ( ! existingEntry [ libName ] . lazy && newLibs [ libName ] && newLibs [ libName ] . lazy ) {
@@ -171,8 +166,10 @@ const resolve = (libName, libraryInfosMap, resolvedCache) => {
171166 const childResolved = resolve ( childLibName , libraryInfosMap , resolvedCache ) ;
172167 resolved = merge ( resolved , childResolved ) ;
173168 } ) ;
174- resolved = merge ( resolved , manifestHint ) ;
175- setManifestHints ( libraryInfosMap , libName , resolved ) ;
169+ resolved = merge ( resolved , libraryInfosMap . get ( libName ) ) ;
170+
171+ // set a copy of the resolved libraries to avoid modifying it while iterating (recursively)
172+ libraryInfosMap . set ( libName , clone ( resolved ) ) ;
176173 resolvedCache . set ( libName , resolved ) ;
177174 return resolved ;
178175} ;
0 commit comments