Fix relation field unknown target object (#13129)
Fixes https://github.com/twentyhq/twenty/issues/12867 Issue: when you have a variable `toto` which is: `Record<string, MyType>` and you do toto['xxx'], this will be typed as `MyType` instead of `MyType | undefined` Solutions: - activate `noUncheckedIndexedAccess` check in tsconfig, this is the preferred solution but will take time to get there (this raises 600+ errors) - use a Map: cf https://github.com/twentyhq/twenty/pull/13125/files - set the type to Partial<Record<string, MyType>>. Drawback is that when you do Object.values(toto), you'll get `Array<MyType | undefined>`. Hence why we have to filter these behind <img width="1512" alt="image" src="https://github.com/user-attachments/assets/d0a0bfed-c441-4e53-84c2-2da98ccbcf50" />
This commit is contained in:
+2
-1
@@ -30,10 +30,11 @@ export const generateFakeFormResponse = async ({
|
||||
formFieldMetadata?.settings?.objectName,
|
||||
);
|
||||
|
||||
if (!objectMetadataItemWithFieldsMaps)
|
||||
if (!isDefined(objectMetadataItemWithFieldsMaps)) {
|
||||
throw new Error(
|
||||
`Object metadata not found for object name ${formFieldMetadata?.settings?.objectName}`,
|
||||
);
|
||||
}
|
||||
|
||||
return {
|
||||
[formFieldMetadata.name]: {
|
||||
|
||||
+4
@@ -43,6 +43,10 @@ export const generateObjectRecordFields = ({
|
||||
field.relationTargetObjectMetadataId
|
||||
];
|
||||
|
||||
if (!isDefined(relationTargetObjectMetadata)) {
|
||||
return acc;
|
||||
}
|
||||
|
||||
acc[field.name] = {
|
||||
isLeaf: false,
|
||||
icon: field.icon,
|
||||
|
||||
Reference in New Issue
Block a user