Skip to content

Commit 089198e

Browse files
fix: doesn't call Object.entries on undefined (#484)
Co-authored-by: Willie Ruemmele <[email protected]>
1 parent 8687d1d commit 089198e

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

src/convert/transformers/decomposedMetadataTransformer.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,8 @@ export class DecomposedMetadataTransformer extends BaseMetadataTransformer {
144144
component: SourceComponent
145145
): Promise<Array<[string, { fullname?: string; name?: string }]>> {
146146
const composedMetadata = (await component.parseXml())[component.type.name];
147-
return Object.entries(composedMetadata);
147+
// composedMetadata might be undefined if you call toSourceFormat() from a non-source-backed Component
148+
return composedMetadata ? Object.entries(composedMetadata) : [];
148149
}
149150

150151
/**

test/convert/transformers/decomposedMetadataTransformer.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,15 @@ describe('DecomposedMetadataTransformer', () => {
278278
]);
279279
});
280280

281+
it('should handle decomposed parents with no files', async () => {
282+
const transformer = new DecomposedMetadataTransformer(mockRegistry);
283+
env.stub(component, 'parseXml').resolves({});
284+
285+
const result = await transformer.toSourceFormat(component);
286+
287+
expect(result).to.deep.equal([]);
288+
});
289+
281290
describe('Merging Components', () => {
282291
it('should merge output with merge component that only has children', async () => {
283292
const mergeComponentChild = component.getChildren()[0];

0 commit comments

Comments
 (0)