fix: QueryRunner overrideDataByFieldMetadata sub fields not being stringified (#14187)

Adding `secondaryLinks` to company is broken, this fixes it

Regression can be traced back to this commit
https://github.com/twentyhq/twenty/pull/10912/files#diff-8a992c6bff80abc8c9075d585d293f6aa98c246df097efb4f904b82dc3ff8114R210-R214



https://github.com/user-attachments/assets/463cee62-8ee3-45dc-9912-fd8fb5244579
This commit is contained in:
neo773
2025-09-02 13:35:42 +05:30
committed by GitHub
parent d94e984a80
commit a7a79090cb
5 changed files with 50 additions and 33 deletions
@@ -114,6 +114,7 @@ export class QueryRunnerArgsFactory {
'id',
id,
fieldMetadataMapByNameByName,
options.objectMetadataItemWithFieldMaps,
),
) ?? [],
)) as string[],
@@ -132,6 +133,7 @@ export class QueryRunnerArgsFactory {
'id',
id,
fieldMetadataMapByNameByName,
options.objectMetadataItemWithFieldMaps,
),
) ?? [],
)) as string[],
@@ -191,13 +193,14 @@ export class QueryRunnerArgsFactory {
case FieldMetadataType.RICH_TEXT_V2:
case FieldMetadataType.LINKS:
case FieldMetadataType.EMAILS: {
const transformedValue =
await this.recordInputTransformerService.transformFieldValue(
fieldMetadata.type,
value,
);
const transformedRecord =
await this.recordInputTransformerService.process({
recordInput: { [key]: value },
objectMetadataMapItem:
options.objectMetadataItemWithFieldMaps,
});
return [key, transformedValue];
return [key, transformedRecord[key]];
}
default:
return [key, value];
@@ -283,6 +286,7 @@ export class QueryRunnerArgsFactory {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
value: any,
fieldMetadataMapByName: FieldMetadataMap,
objectMetadataItemWithFieldMaps: ObjectMetadataItemWithFieldMaps,
) {
const fieldMetadata = fieldMetadataMapByName[key];
@@ -290,9 +294,9 @@ export class QueryRunnerArgsFactory {
return value;
}
return this.recordInputTransformerService.transformFieldValue(
fieldMetadata.type,
value,
);
return this.recordInputTransformerService.process({
recordInput: { [key]: value },
objectMetadataMapItem: objectMetadataItemWithFieldMaps,
});
}
}