Skip to content

Commit 7d9c3ec

Browse files
authored
fix: omitting version (#138)
fix omitting version - caused by #137 Signed-off-by: Jan Kowalleck <[email protected]>
1 parent 5fd2b18 commit 7d9c3ec

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed

HISTORY.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ All notable changes to this project will be documented in this file.
77
* Added
88
* CycloneDX spec version 1.4 made element `bom.component.version` optional.
99
Therefore, serialization/normalization with this spec version will no longer render this element,
10-
when its value is empty. (via [#137])
10+
when its value is empty. (via [#137], [#138])
1111

1212
[#137]: https://github.com/CycloneDX/cyclonedx-javascript-library/pull/137
13+
[#138]: https://github.com/CycloneDX/cyclonedx-javascript-library/pull/138
1314

1415
## 1.0.3 - 2022-07-28
1516

src/serialize/json/normalize.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,12 +239,15 @@ export class OrganizationalEntityNormalizer extends Base {
239239
export class ComponentNormalizer extends Base {
240240
normalize (data: Models.Component, options: NormalizerOptions): Normalized.Component | undefined {
241241
const spec = this._factory.spec
242+
const version: string = data.version ?? ''
242243
return spec.supportsComponentType(data.type)
243244
? {
244245
type: data.type,
245246
name: data.name,
246247
group: data.group || undefined,
247-
version: data.version ?? (spec.requiresComponentVersion ? '' : undefined),
248+
version: version.length > 0 || spec.requiresComponentVersion
249+
? version
250+
: undefined,
248251
'bom-ref': data.bomRef.value || undefined,
249252
supplier: data.supplier === undefined
250253
? undefined

tests/_data/models.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ module.exports.createComplexStructure = function () {
4646
new Models.Tool({
4747
vendor: 'tool vendor',
4848
name: 'other tool',
49+
version: '', // empty string, not undefined
4950
externalReferences: new Models.ExternalReferenceRepository([
5051
new Models.ExternalReference(
5152
'https://cyclonedx.org/tool-center/',
@@ -156,6 +157,7 @@ module.exports.createComplexStructure = function () {
156157
return component
157158
}(new Models.Component(Enums.ComponentType.Library, 'a-component', {
158159
bomRef: 'a-component',
160+
version: '', // empty string - not undefined
159161
dependencies: new Models.BomRefRepository([
160162
new Models.BomRef('unknown foreign ref that should not be rendered')
161163
])

0 commit comments

Comments
 (0)