@@ -131,15 +131,15 @@ export default class ComponentDetection {
131131 const packageCache = new PackageCache ( ) ;
132132 const packages : Array < ComponentDetectionPackage > = [ ] ;
133133
134- componentsFound . forEach ( async ( component : any ) => {
134+ for ( const component of componentsFound ) {
135135 // Skip components without packageUrl
136136 if ( ! component . component . packageUrl ) {
137137 console . debug ( `Skipping component detected without packageUrl: ${ JSON . stringify ( {
138138 id : component . component . id ,
139139 name : component . component . name || 'unnamed' ,
140140 type : component . component . type || 'unknown'
141141 } , null , 2 ) } `) ;
142- return ;
142+ continue ;
143143 }
144144
145145 console . debug ( `Processing component: ${ component . component . id } ` ) ;
@@ -150,7 +150,7 @@ export default class ComponentDetection {
150150 // Skip if the packageUrl is empty (indicates an invalid or missing packageUrl)
151151 if ( ! packageUrl ) {
152152 console . debug ( `Skipping component with invalid packageUrl: ${ component . component . id } ` ) ;
153- return ;
153+ continue ;
154154 }
155155
156156 if ( ! packageCache . hasPackage ( packageUrl ) ) {
@@ -159,16 +159,16 @@ export default class ComponentDetection {
159159 packageCache . addPackage ( pkg ) ;
160160 packages . push ( pkg ) ;
161161 }
162- } ) ;
162+ }
163163
164164 // Set the transitive dependencies
165165 console . debug ( "Sorting out transitive dependencies" ) ;
166- packages . forEach ( async ( pkg : ComponentDetectionPackage ) => {
167- pkg . topLevelReferrers . forEach ( async ( referrer : any ) => {
166+ for ( const pkg of packages ) {
167+ for ( const referrer of pkg . topLevelReferrers ) {
168168 // Skip if referrer doesn't have a valid packageUrl
169169 if ( ! referrer . packageUrl ) {
170170 console . debug ( `Skipping referrer without packageUrl for component: ${ pkg . id } ` ) ;
171- return ;
171+ continue ;
172172 }
173173
174174 const referrerUrl = ComponentDetection . makePackageUrl ( referrer . packageUrl ) ;
@@ -177,23 +177,23 @@ export default class ComponentDetection {
177177 // Skip if the generated packageUrl is empty
178178 if ( ! referrerUrl ) {
179179 console . debug ( `Skipping referrer with invalid packageUrl for component: ${ pkg . id } ` ) ;
180- return ;
180+ continue ;
181181 }
182182
183183 try {
184184 const referrerPackage = packageCache . lookupPackage ( referrerUrl ) ;
185185 if ( referrerPackage === pkg ) {
186186 console . debug ( `Found self-reference for package: ${ pkg . id } ` ) ;
187- return ; // Skip self-references
187+ continue ; // Skip self-references
188188 }
189189 if ( referrerPackage ) {
190190 referrerPackage . dependsOn ( pkg ) ;
191191 }
192192 } catch ( error ) {
193193 console . debug ( `Error looking up referrer package: ${ error } ` ) ;
194194 }
195- } ) ;
196- } ) ;
195+ }
196+ }
197197
198198 // Create manifests
199199 const manifests : Array < Manifest > = [ ] ;
@@ -364,11 +364,19 @@ export default class ComponentDetection {
364364 }
365365}
366366
367+ /**
368+ * Type for referrer objects in topLevelReferrers array
369+ */
370+ type TopLevelReferrer = {
371+ packageUrl ?: any ;
372+ packageUrlString ?: string ;
373+ } ;
374+
367375class ComponentDetectionPackage extends Package {
368376 public packageUrlString : string ;
369377
370- constructor ( packageUrl : string , public id : string , public isDevelopmentDependency : boolean , public topLevelReferrers : [ ] ,
371- public locationsFoundAt : [ ] , public containerDetailIds : [ ] , public containerLayerIds : [ ] ) {
378+ constructor ( packageUrl : string , public id : string , public isDevelopmentDependency : boolean , public topLevelReferrers : TopLevelReferrer [ ] ,
379+ public locationsFoundAt : string [ ] , public containerDetailIds : string [ ] , public containerLayerIds : string [ ] ) {
372380 super ( packageUrl ) ;
373381 this . packageUrlString = packageUrl ;
374382 }
0 commit comments