Refactor FieldMetadataService and validation to consume FlatObjectMetadataMaps (#13719)

# Introduction
Following recent `FlatObjectMetadataMaps` manipulation, transpilers
utils introduction in https://github.com/twentyhq/twenty/pull/13620
Refactored the field metadata service and validator to iterate over
`FlatObjectMetadataMaps` instead of `FlatObjectMetadata[]`.

The object metadata service v2 is shadow coding
This commit is contained in:
Paul Rastoin
2025-08-07 17:19:07 +02:00
committed by GitHub
parent 05c6805f0a
commit 83a560c936
20 changed files with 557 additions and 165 deletions
@@ -0,0 +1,13 @@
import { isDefined } from 'twenty-shared/utils';
import { FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
import { FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
import { fromFlatObjectMetadataWithFlatFieldMapsToFlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadata-with-flat-field-maps-to-flat-object-metadatas.util';
export const fromFlatObjectMetadataMapsToFlatObjectMetadatas = (
flatObjectMetadataMaps: FlatObjectMetadataMaps,
): FlatObjectMetadata[] => {
return Object.values(flatObjectMetadataMaps.byId)
.filter(isDefined)
.map(fromFlatObjectMetadataWithFlatFieldMapsToFlatObjectMetadata);
};
@@ -8,6 +8,8 @@ export const fromFlatObjectMetadataToFlatObjectMetadataWithFlatFieldMaps = (
const emptyFlatObjectMetadataWithFlatFieldMaps: FlatObjectMetadataWithFlatFieldMaps =
{
...flatObjectMetadata,
flatIndexMetadatas: [],
flatFieldMetadatas: [],
fieldIdByJoinColumnName: {},
fieldIdByName: {},
fieldsById: {},
@@ -1,18 +0,0 @@
import { isDefined } from 'twenty-shared/utils';
import { FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
import { fromObjectMetadataItemWithFieldMapsToFlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-object-metadata-item-with-field-maps-to-flat-object-metadata.util';
import { ObjectMetadataMaps } from 'src/engine/metadata-modules/types/object-metadata-maps';
export const fromObjectMetadataMapsToFlatObjectMetadatas = (
objectMetadataMaps: ObjectMetadataMaps,
): FlatObjectMetadata[] => {
return Object.values(objectMetadataMaps.byId)
.filter(isDefined)
.map((objectMetadataItemWithFieldMaps) =>
fromObjectMetadataItemWithFieldMapsToFlatObjectMetadata({
objectMetadataItemWithFieldMaps,
objectMetadataMaps,
}),
);
};