@@ -150,16 +150,25 @@ class ResourceCollector {
150
150
} ) ;
151
151
}
152
152
153
- async determineResourceDetails ( { pool, debugResources, mergedResources, designtimeResources, supportResources} ) {
153
+ async determineResourceDetails ( {
154
+ debugResources, mergedResources, designtimeResources, supportResources, debugBundles
155
+ } ) {
154
156
const baseNames = new Set ( ) ;
155
157
const debugFilter = new ResourceFilterList ( debugResources ) ;
156
158
const mergeFilter = new ResourceFilterList ( mergedResources ) ;
157
159
const designtimeFilter = new ResourceFilterList ( designtimeResources ) ;
158
160
const supportFilter = new ResourceFilterList ( supportResources ) ;
161
+ const debugBundleFilter = new ResourceFilterList ( debugBundles ) ;
159
162
160
163
const promises = [ ] ;
164
+ const nonBundledDebugResources = [ ] ;
161
165
162
166
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
+
163
172
// log.verbose(` checking ${name}`);
164
173
let m ;
165
174
if ( m = LOCALE . exec ( name ) ) {
@@ -180,9 +189,14 @@ class ResourceCollector {
180
189
}
181
190
182
191
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
+ }
186
200
}
187
201
188
202
// set the module name for .properties and .json
@@ -197,11 +211,6 @@ class ResourceCollector {
197
211
} ) ) ;
198
212
}
199
213
200
- if ( debugFilter . matches ( name ) ) {
201
- info . isDebug = true ;
202
- log . verbose ( ` found potential debug resource '${ name } '` ) ;
203
- }
204
-
205
214
if ( mergeFilter . matches ( name ) ) {
206
215
info . merged = true ;
207
216
log . verbose ( ` found potential merged resource '${ name } '` ) ;
@@ -226,7 +235,17 @@ class ResourceCollector {
226
235
}
227
236
}
228
237
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
+ }
230
249
}
231
250
232
251
createOrphanFilters ( ) {
@@ -253,19 +272,17 @@ class ResourceCollector {
253
272
254
273
groupResourcesByComponents ( options ) {
255
274
const orphanFilters = this . createOrphanFilters ( ) ;
256
- const debugBundlesFilter = new ResourceFilterList ( options . debugBundles ) ;
257
275
for ( const resource of this . _resources . values ( ) ) {
258
276
let contained = false ;
259
277
for ( const [ prefix , list ] of this . _components . entries ( ) ) {
260
- const isDebugBundle = debugBundlesFilter . matches ( resource . name ) ;
261
278
if ( resource . name . startsWith ( prefix ) ) {
262
- list . add ( resource , ! isDebugBundle ) ;
279
+ list . add ( resource ) ;
263
280
contained = true ;
264
281
} else if ( orphanFilters . has ( prefix ) ) {
265
282
// log.verbose(` checking '${resource.name}' against orphan filter ` +
266
283
// `'${orphanFilters.get(prefix)}' (${prefix})`);
267
284
if ( orphanFilters . get ( prefix ) . matches ( resource . name ) ) {
268
- list . add ( resource , ! isDebugBundle ) ;
285
+ list . add ( resource ) ;
269
286
contained = true ;
270
287
}
271
288
}
0 commit comments