@@ -150,16 +150,25 @@ class ResourceCollector {
150150 } ) ;
151151 }
152152
153- async determineResourceDetails ( { pool, debugResources, mergedResources, designtimeResources, supportResources} ) {
153+ async determineResourceDetails ( {
154+ debugResources, mergedResources, designtimeResources, supportResources, debugBundles
155+ } ) {
154156 const baseNames = new Set ( ) ;
155157 const debugFilter = new ResourceFilterList ( debugResources ) ;
156158 const mergeFilter = new ResourceFilterList ( mergedResources ) ;
157159 const designtimeFilter = new ResourceFilterList ( designtimeResources ) ;
158160 const supportFilter = new ResourceFilterList ( supportResources ) ;
161+ const debugBundleFilter = new ResourceFilterList ( debugBundles ) ;
159162
160163 const promises = [ ] ;
164+ const nonBundledDebugResources = [ ] ;
161165
162166 for ( const [ name , info ] of this . _resources . entries ( ) ) {
167+ if ( debugFilter . matches ( name ) ) {
168+ info . isDebug = true ;
169+ log . verbose ( ` found potential debug resource '${ name } '` ) ;
170+ }
171+
163172 // log.verbose(` checking ${name}`);
164173 let m ;
165174 if ( m = LOCALE . exec ( name ) ) {
@@ -180,9 +189,14 @@ class ResourceCollector {
180189 }
181190
182191 if ( / (?: \. j s | \. v i e w \. x m l | \. c o n t r o l \. x m l | \. f r a g m e n t \. x m l ) $ / . test ( name ) ) {
183- promises . push (
184- this . enrichWithDependencyInfo ( info )
185- ) ;
192+ if ( ( ! info . isDebug || debugBundleFilter . matches ( name ) ) ) {
193+ // Only analyze non-debug files which are not special debug bundles (like sap-ui-core-dbg.js)
194+ promises . push (
195+ this . enrichWithDependencyInfo ( info )
196+ ) ;
197+ } else {
198+ nonBundledDebugResources . push ( info ) ;
199+ }
186200 }
187201
188202 // set the module name for .properties and .json
@@ -197,11 +211,6 @@ class ResourceCollector {
197211 } ) ) ;
198212 }
199213
200- if ( debugFilter . matches ( name ) ) {
201- info . isDebug = true ;
202- log . verbose ( ` found potential debug resource '${ name } '` ) ;
203- }
204-
205214 if ( mergeFilter . matches ( name ) ) {
206215 info . merged = true ;
207216 log . verbose ( ` found potential merged resource '${ name } '` ) ;
@@ -226,7 +235,17 @@ class ResourceCollector {
226235 }
227236 }
228237
229- return Promise . all ( promises ) ;
238+ await Promise . all ( promises ) ;
239+
240+ for ( let i = nonBundledDebugResources . length - 1 ; i >= 0 ; i -- ) {
241+ const dbgInfo = nonBundledDebugResources [ i ] ;
242+ const nonDebugName = ResourceInfoList . getNonDebugName ( dbgInfo . name ) ;
243+ const nonDbgInfo = this . _resources . get ( nonDebugName ) ;
244+ const newDbgInfo = new ResourceInfo ( dbgInfo . name ) ;
245+ newDbgInfo . copyFrom ( null , nonDbgInfo ) ;
246+ newDbgInfo . copyFrom ( null , dbgInfo ) ;
247+ this . _resources . set ( dbgInfo . name , newDbgInfo ) ;
248+ }
230249 }
231250
232251 createOrphanFilters ( ) {
@@ -253,19 +272,17 @@ class ResourceCollector {
253272
254273 groupResourcesByComponents ( options ) {
255274 const orphanFilters = this . createOrphanFilters ( ) ;
256- const debugBundlesFilter = new ResourceFilterList ( options . debugBundles ) ;
257275 for ( const resource of this . _resources . values ( ) ) {
258276 let contained = false ;
259277 for ( const [ prefix , list ] of this . _components . entries ( ) ) {
260- const isDebugBundle = debugBundlesFilter . matches ( resource . name ) ;
261278 if ( resource . name . startsWith ( prefix ) ) {
262- list . add ( resource , ! isDebugBundle ) ;
279+ list . add ( resource ) ;
263280 contained = true ;
264281 } else if ( orphanFilters . has ( prefix ) ) {
265282 // log.verbose(` checking '${resource.name}' against orphan filter ` +
266283 // `'${orphanFilters.get(prefix)}' (${prefix})`);
267284 if ( orphanFilters . get ( prefix ) . matches ( resource . name ) ) {
268- list . add ( resource , ! isDebugBundle ) ;
285+ list . add ( resource ) ;
269286 contained = true ;
270287 }
271288 }
0 commit comments