@@ -2,15 +2,17 @@ const log = require("@ui5/logger").getLogger("builder:tasks:bundlers:generateLib
22const moduleBundler = require ( "../../processors/bundlers/moduleBundler" ) ;
33const ReaderCollectionPrioritized = require ( "@ui5/fs" ) . ReaderCollectionPrioritized ;
44
5- function getBundleDefinition ( namespace ) {
5+ function getBundleDefinition ( namespace , h2 ) {
6+ let h2infix = h2 ? "h2-" : "" ;
7+ let bundleDef ;
68 // TODO: move to config of actual core project
79 if ( namespace === "sap/ui/core" ) {
8- return {
9- name : `${ namespace } /library-preload.js` ,
10+ bundleDef = {
11+ name : `${ namespace } /library-${ h2infix } preload.js` ,
1012 defaultFileTypes : [ ".js" , ".fragment.xml" , ".view.xml" , ".properties" , ".json" ] ,
1113 sections : [
1214 {
13- mode : "preload" ,
15+ mode : h2 ? "depcache" : "preload" ,
1416 filters : [
1517 `${ namespace } /` ,
1618 `!${ namespace } /.library` ,
@@ -41,27 +43,42 @@ function getBundleDefinition(namespace) {
4143 }
4244 ]
4345 } ;
46+ } else {
47+ bundleDef = {
48+ name : `${ namespace } /library-${ h2infix } preload.js` ,
49+ defaultFileTypes : [ ".js" , ".fragment.xml" , ".view.xml" , ".properties" , ".json" ] ,
50+ sections : [
51+ {
52+ mode : h2 ? "depcache" : "preload" ,
53+ filters : [
54+ `${ namespace } /` ,
55+ `!${ namespace } /.library` ,
56+ `!${ namespace } /themes/` ,
57+ `!${ namespace } /messagebundle*`
58+ ] ,
59+ resolve : false ,
60+ resolveConditional : false ,
61+ renderer : true
62+ }
63+ ]
64+ } ;
4465 }
45- return {
46- name : `${ namespace } /library-preload.js` ,
47- defaultFileTypes : [ ".js" , ".fragment.xml" , ".view.xml" , ".properties" , ".json" ] ,
48- sections : [
49- {
50- mode : "preload" ,
51- filters : [
52- `${ namespace } /` ,
53- `!${ namespace } /.library` ,
54- `!${ namespace } /themes/` ,
55- `!${ namespace } /messagebundle*`
56- ] ,
57- resolve : false ,
58- resolveConditional : false ,
59- renderer : true
60- }
61- ]
62- } ;
66+ if ( h2 ) {
67+ bundleDef . sections . unshift ( {
68+ mode : "preload" ,
69+ filters : [
70+ `${ namespace } /library.js` ,
71+ `${ namespace } /manifest.json`
72+ ] ,
73+ resolve : false ,
74+ resolveConditional : false ,
75+ renderer : false
76+ } ) ;
77+ }
78+ return bundleDef ;
6379}
6480
81+
6582/**
6683 * Task for library bundling.
6784 *
@@ -168,17 +185,30 @@ module.exports = function({workspace, dependencies, options}) {
168185 const libraryNamespaceMatch = libraryIndicatorPath . match ( libraryNamespacePattern ) ;
169186 if ( libraryNamespaceMatch && libraryNamespaceMatch [ 1 ] ) {
170187 const libraryNamespace = libraryNamespaceMatch [ 1 ] ;
171- return moduleBundler ( {
172- options : {
173- bundleDefinition : getBundleDefinition ( libraryNamespace )
174- } ,
175- resources
176- } ) . then ( ( [ bundle ] ) => {
177- if ( bundle ) {
178- // console.log(`${libraryNamespace}/library-preload.js bundle created`);
179- return workspace . write ( bundle ) ;
180- }
181- } ) ;
188+ return Promise . all ( [
189+ moduleBundler ( {
190+ options : {
191+ bundleDefinition : getBundleDefinition ( libraryNamespace )
192+ } ,
193+ resources
194+ } ) . then ( ( [ bundle ] ) => {
195+ if ( bundle ) {
196+ // console.log(`${libraryNamespace}/library-preload.js bundle created`);
197+ return workspace . write ( bundle ) ;
198+ }
199+ } ) ,
200+ moduleBundler ( {
201+ options : {
202+ bundleDefinition : getBundleDefinition ( libraryNamespace , /* h2 */ true )
203+ } ,
204+ resources
205+ } ) . then ( ( [ bundle ] ) => {
206+ if ( bundle ) {
207+ // console.log(`${libraryNamespace}/library-h2-preload.js bundle created`);
208+ return workspace . write ( bundle ) ;
209+ }
210+ } )
211+ ] ) ;
182212 } else {
183213 log . verbose ( `Could not determine library namespace from file "${ libraryIndicatorPath } " for project ${ options . projectName } . Skipping library preload bundling.` ) ;
184214 return Promise . resolve ( ) ;
0 commit comments