@@ -368,6 +368,9 @@ async function processSolutions(
368368 Array . prototype . push . apply ( merged . bePackagesList , result . bePackagesList ) ;
369369 Object . assign ( merged . bePackagesDefDict , result . bePackagesDefDict ) ;
370370 Array . prototype . push . apply ( merged . fePackagesList , result . fePackagesList ) ;
371+ Array . prototype . push . apply ( merged . locales , result . locales ) ;
372+
373+
371374 Object . assign ( merged . fePackagesDefDict , result . fePackagesDefDict ) ;
372375 Array . prototype . push . apply ( merged . servicesList , result . servicesList ) ;
373376 for ( let idx in result . servicesDefDict ) {
@@ -391,6 +394,7 @@ async function processSolutions(
391394 }
392395 let NPMModules = new Set ( )
393396 merged . fePackagesList = merged . fePackagesList . filter ( ( item , index ) => merged . fePackagesList . indexOf ( item ) === index )
397+
394398 for ( let idx in merged . fePackagesList ) {
395399 fePackage = merged . fePackagesList [ idx ]
396400 NPMModules . add ( getFePackageConf ( fePackage , merged . fePackagesDefDict [ fePackage ] , branch ) )
@@ -406,10 +410,7 @@ async function processSolutions(
406410 if ( NPMModules . size > 0 ) {
407411 output [ 'fe-openimis.json' ] = {
408412 "modules" : [ ...NPMModules ] ,
409- "locales" : [
410- { "languages" : [ "en" , "en-GB" ] , "intl" : "en-GB" , "fileNames" : "en" } ,
411- { "languages" : [ "fr" , "fr-FR" ] , "intl" : "fr-FR" , "fileNames" : "fr" }
412- ]
413+ "locales" : [ ...merged . locales ]
413414 } ;
414415 }
415416 if ( services ) {
@@ -458,6 +459,7 @@ async function mergeSolutions(
458459 moduleRefDict = { } ,
459460 bePackagesList = new Set ( ) , bePackagesDefDict = { } ,
460461 fePackagesList = new Set ( ) , fePackagesDefDict = { } ,
462+ locales = new Set ( ) ,
461463 servicesList = new Set ( ) , servicesDefDict = { } ,
462464 initData = new Set ( ) )
463465{
@@ -493,6 +495,7 @@ async function mergeSolutions(
493495 moduleRefDict ,
494496 bePackagesList , bePackagesDefDict ,
495497 fePackagesList , fePackagesDefDict ,
498+ locales ,
496499 servicesList , servicesDefDict ,
497500 initData ,
498501 ) ;
@@ -502,6 +505,7 @@ async function mergeSolutions(
502505 bePackagesList = result . bePackagesList ;
503506 bePackagesDefDict = result . bePackagesDefDict ;
504507 fePackagesList = result . fePackagesList ;
508+ locales = result . locales ;
505509 fePackagesDefDict = result . fePackagesDefDict ;
506510 servicesList = result . servicesList ;
507511 servicesDefDict = result . servicesDefDict ;
@@ -522,6 +526,18 @@ async function mergeSolutions(
522526 for ( let key in solution . bePackageDefinitions || { } ) {
523527 bePackagesDefDict [ key ] = solution . bePackageDefinitions [ key ] ;
524528 }
529+ // Merge arrays and remove duplicates based on locale.intl
530+ locales = [ ...( solution . locales || [ ] ) , ...locales ] ;
531+
532+ // Use reduce to create a dictionary with intl as the key
533+ const localesDict = locales . reduce ( ( dict , locale ) => {
534+ dict [ locale . intl ] = locale ;
535+ return dict ;
536+ } , { } ) ;
537+
538+ // Convert dictionary values back to an array
539+ locales = Object . values ( localesDict ) ;
540+
525541 servicesList = [ ...( solution . services || [ ] ) , ...servicesList ]
526542 for ( let key in solution . serviceDefinitions || { } ) {
527543 servicesDefDict [ key ] = solution . serviceDefinitions [ key ] ;
@@ -541,6 +557,7 @@ async function mergeSolutions(
541557 moduleRefDict,
542558 bePackagesList, bePackagesDefDict,
543559 fePackagesList, fePackagesDefDict,
560+ locales,
544561 servicesList, servicesDefDict,
545562 initData
546563 } ;
0 commit comments