CreateFieldInput transpilation to FlatFieldMetadata, FlatFieldMetadata validation (#13493)

# Introduction
Following https://github.com/twentyhq/twenty/pull/13420

What has been done:
- `CreateFieldInput` transpilation to `FlatFieldMetadata`
- `FlatFieldMetadata` validator service
- A lof of transpilation utils from `input` to `flatObject` or
`flatField`
- Created dedicated v2 api metadata services
- Introducing `inferDeletionFromMissingObjectFieldIndex` in the builder,
to avoid diffing every object and field of the current workspace we
allow only generating create/update migration operations, usefull when
passing by the api metadata


## We still need to in another PR:
- Implement a strong unit test coverage and critical functions and
services
- Finalize flat field metadata validation exception for `options`
`defaultValue` `settings` and `relations`
- Finalize `flatObjectMetadata` validation and v2 service refactor
- Plug the new service when feature flag is enabled
This commit is contained in:
Paul Rastoin
2025-07-30 15:08:11 +02:00
committed by GitHub
parent 0e4e3acaba
commit 29a4f4d685
41 changed files with 1346 additions and 351 deletions
@@ -31,10 +31,14 @@ const getReservedCompositeFieldNames = (
return reservedCompositeFieldsNames;
};
export const validateFieldNameAvailabilityOrThrow = (
name: string,
objectMetadata: ObjectMetadataItemWithFieldMaps,
) => {
type ValidateFieldNameAvailabilityOrThrowArgs = {
name: string;
objectMetadata: ObjectMetadataItemWithFieldMaps;
};
export const validateFieldNameAvailabilityOrThrow = ({
name,
objectMetadata,
}: ValidateFieldNameAvailabilityOrThrowArgs) => {
const reservedCompositeFieldsNames =
getReservedCompositeFieldNames(objectMetadata);