@@ -292,11 +292,14 @@ async function getLibs(
292292}
293293
294294// if library is not found, resolve next minor highest patch
295- let versionMap : Record <
296- string ,
297- { version : string ; support : string ; lts : boolean }
298- > ; // just an in-memory cache!
299- const resolvedVersions : Record < string , string > = Object . create ( null ) ;
295+ const versionMap : Record <
296+ UI5Framework ,
297+ Record < string , { version : string ; support : string ; lts : boolean } >
298+ > = Object . create ( null ) ; // just an in-memory cache!
299+ const resolvedVersions : Record <
300+ UI5Framework ,
301+ Record < string , string >
302+ > = Object . create ( null ) ;
300303/*
301304 * VERSION RESOLUTION LOGIC:
302305 * =========================
@@ -353,17 +356,18 @@ export async function negotiateVersionWithFetcher(
353356 // try to negotiate version
354357 let isFallback = false ;
355358 let isIncorrectVersion = false ;
359+ let versions = versionMap [ framework ] ;
356360 if ( ! version ) {
357361 // no version defined, using default version
358362 getLogger ( ) . warn (
359363 "No version defined! Please check the minUI5Version in your manifest.json!"
360364 ) ;
361365 version = DEFAULT_UI5_VERSION ;
362366 isFallback = true ;
363- } else if ( resolvedVersions [ version ] ) {
367+ } else if ( resolvedVersions [ framework ] ?. [ version ] ) {
364368 // version already resolved?
365369 const versionDefined = version ;
366- version = resolvedVersions [ version ] ;
370+ version = resolvedVersions [ framework ] ?. [ version ] ;
367371 if ( versionDefined !== version ) {
368372 isIncorrectVersion = true ;
369373 }
@@ -377,12 +381,12 @@ export async function negotiateVersionWithFetcher(
377381 ) {
378382 const requestedVersion = version ;
379383 // no version information found, try to negotiate the version
380- if ( ! versionMap ) {
384+ if ( ! versions ) {
381385 // retrieve the version mapping (only exists for SAPUI5 so far)
382- const url = getVersionJsonUrl ( ) ;
386+ const url = getVersionJsonUrl ( framework ) ;
383387 const response = await versionJsonFetcher ( url ) ;
384388 if ( response . ok ) {
385- versionMap = ( await response . json ( ) ) as Record <
389+ versionMap [ framework ] = ( await response . json ( ) ) as Record <
386390 string ,
387391 { version : string ; support : string ; lts : boolean }
388392 > ;
@@ -395,22 +399,23 @@ export async function negotiateVersionWithFetcher(
395399 DEFAULT_UI5_VERSION ,
396400 }
397401 ) ;
398- versionMap = {
402+ versionMap [ framework ] = {
399403 latest : {
400404 version : DEFAULT_UI5_VERSION ,
401405 support : "Maintenance" ,
402406 lts : true ,
403407 } ,
404408 } ;
405409 }
410+ versions = versionMap [ framework ] ;
406411 }
407412 // coerce the version (check for invalid version, which indicates development scenario)
408413 const parsedVersion = semver . coerce ( version ) ;
409414 if ( parsedVersion ) {
410- if ( versionMap [ `${ parsedVersion . major } .${ parsedVersion . minor } ` ] ) {
415+ if ( versions [ `${ parsedVersion . major } .${ parsedVersion . minor } ` ] ) {
411416 // lookup for a valid major.minor entry
412417 version =
413- versionMap [ `${ parsedVersion . major } .${ parsedVersion . minor } ` ] . version ;
418+ versions [ `${ parsedVersion . major } .${ parsedVersion . minor } ` ] . version ;
414419 }
415420 if (
416421 ! ( await getVersionInfo (
@@ -423,25 +428,28 @@ export async function negotiateVersionWithFetcher(
423428 // find closest supported version
424429 version =
425430 semverMinSatisfying (
426- Object . values ( versionMap ) . map ( ( entry ) => {
431+ Object . values ( versions ) . map ( ( entry ) => {
427432 return entry . version ;
428433 } ) as string [ ] ,
429434 `^${ version } `
430- ) || versionMap [ "latest" ] . version ;
435+ ) || versions [ "latest" ] . version ;
431436
432437 isIncorrectVersion = true ;
433438 }
434439 } else {
435440 // development scenario => use latest version
436- version = versionMap [ "latest" ] . version ;
441+ version = versions [ "latest" ] . version ;
437442 isIncorrectVersion = true ;
438443 }
439444 // store the resolved version
440445 if ( requestedVersion ) {
441446 if ( requestedVersion !== version ) {
442447 isIncorrectVersion = true ;
443448 }
444- resolvedVersions [ requestedVersion ] = version ;
449+ if ( ! resolvedVersions [ framework ] ) {
450+ resolvedVersions [ framework ] = Object . create ( null ) ;
451+ }
452+ resolvedVersions [ framework ] [ requestedVersion ] = version ;
445453 }
446454 }
447455 return {
0 commit comments