Skip to content

Commit a6b86ca

Browse files
fix: Improve null checks in find embedded entry and find embedded asset functions
1 parent 25c5597 commit a6b86ca

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

src/entry-editable.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ function getTag(content: object, prefix: string, tagsAsObject: boolean, locale:
1616
const { metaKey, shouldApplyVariant, _applied_variants } = appliedVariants
1717
Object.entries(content).forEach(([key, value]) => {
1818
if (key === '$') return
19-
let metaUID = value && typeof value === 'object' && value._metadata && value._metadata.uid ? value._metadata.uid : '';
19+
let metaUID = value && typeof value === 'object' && value !== null && value._metadata && value._metadata.uid ? value._metadata.uid : '';
2020
let updatedMetakey = appliedVariants.shouldApplyVariant ? `${appliedVariants.metaKey ? appliedVariants.metaKey + '.' : ''}${key}` : '';
2121
if (metaUID && updatedMetakey) updatedMetakey = updatedMetakey + '.' + metaUID;
2222
switch (typeof value) {
@@ -25,7 +25,7 @@ function getTag(content: object, prefix: string, tagsAsObject: boolean, locale:
2525
value.forEach((obj, index) => {
2626
const childKey = `${key}__${index}`
2727
const parentKey = `${key}__parent`
28-
metaUID = value && typeof value === 'object' && obj._metadata && obj._metadata.uid ? obj._metadata.uid : '';
28+
metaUID = value && typeof value === 'object' && obj !== null && obj._metadata && obj._metadata.uid ? obj._metadata.uid : '';
2929
updatedMetakey = appliedVariants.shouldApplyVariant ? `${appliedVariants.metaKey ? appliedVariants.metaKey + '.' : ''}${key}` : '';
3030
if (metaUID && updatedMetakey) updatedMetakey = updatedMetakey + '.' + metaUID;
3131
/**

src/helper/find-embeded-object.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,26 @@ export function findEmbeddedEntry(
1111
embeddeditems: (EmbeddedItem| EntryNode)[] = [],
1212
): (EmbeddedItem | EntryNode)[] {
1313
return embeddeditems.filter((entry: any) => {
14-
if ((entry.uid && (entry as EmbeddedItem).uid === uid && (entry as EmbeddedItem)._content_type_uid === contentTypeUid)|| (entry.system && (entry as EntryNode).system.uid === uid && (entry as EntryNode).system.content_type_uid === contentTypeUid)) {
15-
return entry;
16-
}
14+
if (!entry) return false;
15+
return (
16+
(entry.uid && (entry as EmbeddedItem).uid === uid && (entry as EmbeddedItem)._content_type_uid === contentTypeUid) ||
17+
(entry.system && (entry as EntryNode).system.uid === uid && (entry as EntryNode).system.content_type_uid === contentTypeUid)
18+
);
1719
});
1820
}
1921

2022
export function findEmbeddedAsset(uid: string, embeddedAssets: (EmbeddedItem| EntryNode)[] = []): (EmbeddedItem| EntryNode)[] {
2123
return embeddedAssets.filter((asset: any) => {
22-
if ((asset.uid && (asset as EmbeddedItem).uid === uid) || asset.system && (asset as EntryNode).system.uid === uid) {
23-
return asset;
24-
}
24+
if (!asset) return false;
25+
return (
26+
(asset.uid && (asset as EmbeddedItem).uid === uid) ||
27+
(asset.system && (asset as EntryNode).system.uid === uid)
28+
);
2529
});
2630
}
2731

2832
export function findGQLEmbeddedItems(metadata: Metadata, items: (EmbeddedItem| EntryNode)[]): (EmbeddedItem| EntryNode)[] {
33+
if (!metadata || !items) return [];
2934
if (metadata.itemType === 'entry') {
3035
return findEmbeddedEntry(
3136
metadata.itemUid,

0 commit comments

Comments
 (0)