Skip to content

Commit d842314

Browse files
committed
feat: base-serializer runs bomRefDiscrimination on vulnerabilities
Signed-off-by: Jan Kowalleck <[email protected]>
1 parent 7fa0716 commit d842314

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

src/serialize/baseSerializer.ts

+15-8
Original file line numberDiff line numberDiff line change
@@ -17,25 +17,32 @@ SPDX-License-Identifier: Apache-2.0
1717
Copyright (c) OWASP Foundation. All Rights Reserved.
1818
*/
1919

20-
import type { Bom, BomRef, Component } from '../models'
20+
import { treeIteratorSymbol } from '../_helpers/tree'
21+
import type { Bom, BomRef } from '../models'
2122
import { BomRefDiscriminator } from './bomRefDiscriminator'
2223
import type { NormalizerOptions, Serializer, SerializerOptions } from './types'
2324

2425
export abstract class BaseSerializer<NormalizedBom> implements Serializer {
2526
#getAllBomRefs (bom: Bom): Iterable<BomRef> {
2627
const bomRefs = new Set<BomRef>()
27-
function iterComponents (cs: Iterable<Component>): void {
28-
for (const { bomRef, components } of cs) {
28+
29+
// region from components
30+
if (bom.metadata.component !== undefined) {
31+
bomRefs.add(bom.metadata.component.bomRef)
32+
for (const { bomRef } of bom.metadata.component.components[treeIteratorSymbol]()) {
2933
bomRefs.add(bomRef)
30-
iterComponents(components)
3134
}
3235
}
36+
for (const { bomRef } of bom.components[treeIteratorSymbol]()) {
37+
bomRefs.add(bomRef)
38+
}
39+
// endregion from components
3340

34-
if (bom.metadata.component !== undefined) {
35-
bomRefs.add(bom.metadata.component.bomRef)
36-
iterComponents(bom.metadata.component.components)
41+
// region from vulnerabilities
42+
for (const { bomRef } of bom.vulnerabilities) {
43+
bomRefs.add(bomRef)
3744
}
38-
iterComponents(bom.components)
45+
// endregion from vulnerabilities
3946

4047
return bomRefs.values()
4148
}

0 commit comments

Comments
 (0)