Deprecate FieldMetadataInterface (#13264)
# Introduction
From the moment replaced the FieldMetadataInterface definition to:
```ts
import { FieldMetadataType } from 'twenty-shared/types';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
export type FieldMetadataInterface<
T extends FieldMetadataType = FieldMetadataType,
> = FieldMetadataEntity<T>;
```
After this PR merge will create a new one removing the type and
replacing it to `FieldMetadataEntity`.
Did not renamed it here to avoid conflicts on naming + type issues fixs
within the same PR
## Field metadata entity RELATION or MORPH
Relations fields cannot be null for those field metadata entity instance
anymore, but are never for the others see
`packages/twenty-server/src/engine/metadata-modules/field-metadata/types/field-metadata-entity-test.type.ts`
( introduced TypeScript tests )
## Concerns
- TS_VECTOR is the most at risk with the `generatedType` and
`asExpression` removal from interface
## What's next
- `FielMetadataInterface` removal and rename ( see introduction )
- Depcrecating `ObjectMetadataInterface`
- Refactor `FieldMetadataEntity` optional fiels to be nullable only
- TO DIG `never` occurences on settings, defaultValue etc
- Some interfaces will be replaced by the `FlatFieldMetadata` when
deprecating the current sync and comparators tools
This commit is contained in:
+9
-5
@@ -11,13 +11,14 @@ type FlatFieldMetadataOverrides<
|
||||
Partial<FlatFieldMetadata<T>>;
|
||||
|
||||
export const getFlatFieldMetadataMock = <
|
||||
T extends FieldMetadataType = FieldMetadataType,
|
||||
T extends FieldMetadataType = FieldMetadataType.TEXT,
|
||||
>(
|
||||
overrides: FlatFieldMetadataOverrides<T>,
|
||||
): FlatFieldMetadata<T> => {
|
||||
const createdAt = faker.date.anytime();
|
||||
|
||||
return {
|
||||
type: FieldMetadataType.TEXT as T,
|
||||
createdAt,
|
||||
description: 'default flat field metadata description',
|
||||
icon: 'icon',
|
||||
@@ -28,15 +29,18 @@ export const getFlatFieldMetadataMock = <
|
||||
label: 'flat field metadata label',
|
||||
isNullable: true,
|
||||
isUnique: false,
|
||||
relationTargetFieldMetadataId: undefined,
|
||||
relationTargetObjectMetadataId: undefined,
|
||||
type: FieldMetadataType.TEXT as T,
|
||||
isLabelSyncedWithName: false,
|
||||
isSystem: false,
|
||||
standardId: undefined,
|
||||
standardId: null,
|
||||
standardOverrides: undefined,
|
||||
updatedAt: createdAt,
|
||||
workspaceId: faker.string.uuid(),
|
||||
defaultValue: null,
|
||||
options: null,
|
||||
relationTargetFieldMetadata: undefined as never,
|
||||
relationTargetFieldMetadataId: undefined as never,
|
||||
relationTargetObjectMetadata: undefined as never,
|
||||
relationTargetObjectMetadataId: undefined as never,
|
||||
...overrides,
|
||||
};
|
||||
};
|
||||
|
||||
+1
-3
@@ -11,8 +11,6 @@ type FieldMetadataEntityRelationProperties =
|
||||
>;
|
||||
|
||||
export type FlatFieldMetadata<T extends FieldMetadataType = FieldMetadataType> =
|
||||
Partial<
|
||||
Omit<FieldMetadataEntity<T>, FieldMetadataEntityRelationProperties>
|
||||
> & {
|
||||
Omit<FieldMetadataEntity<T>, FieldMetadataEntityRelationProperties> & {
|
||||
uniqueIdentifier: string;
|
||||
};
|
||||
|
||||
+295
-59
File diff suppressed because it is too large
Load Diff
+15
-16
@@ -104,20 +104,19 @@ const relationTestCases: WorkspaceMigrationBuilderTestCase[] = [
|
||||
context: {
|
||||
input: () => {
|
||||
const objectMetadataId = faker.string.uuid();
|
||||
const updatedFieldMetadata =
|
||||
getFlatFieldMetadataMock<FieldMetadataType.RELATION>({
|
||||
uniqueIdentifier: 'field-metadata-unique-identifier-1',
|
||||
objectMetadataId,
|
||||
type: FieldMetadataType.RELATION,
|
||||
settings: {
|
||||
relationType: RelationType.MANY_TO_ONE,
|
||||
isForeignKey: true,
|
||||
joinColumnName: 'column-name',
|
||||
onDelete: undefined,
|
||||
},
|
||||
relationTargetFieldMetadataId: faker.string.uuid(),
|
||||
relationTargetObjectMetadataId: faker.string.uuid(),
|
||||
});
|
||||
const updatedFieldMetadata = getFlatFieldMetadataMock({
|
||||
uniqueIdentifier: 'field-metadata-unique-identifier-1',
|
||||
objectMetadataId,
|
||||
type: FieldMetadataType.RELATION,
|
||||
settings: {
|
||||
relationType: RelationType.MANY_TO_ONE,
|
||||
isForeignKey: true,
|
||||
joinColumnName: 'column-name',
|
||||
onDelete: undefined,
|
||||
},
|
||||
relationTargetFieldMetadataId: faker.string.uuid(),
|
||||
relationTargetObjectMetadataId: faker.string.uuid(),
|
||||
});
|
||||
const flatObjectMetadata = getFlatObjectMetadataMock({
|
||||
uniqueIdentifier: 'object-metadata-unique-identifier-1',
|
||||
isLabelSyncedWithName: true,
|
||||
@@ -130,7 +129,7 @@ const relationTestCases: WorkspaceMigrationBuilderTestCase[] = [
|
||||
{
|
||||
...flatObjectMetadata,
|
||||
flatFieldMetadatas: [
|
||||
{
|
||||
getFlatFieldMetadataMock({
|
||||
...updatedFieldMetadata,
|
||||
settings: {
|
||||
relationType: RelationType.ONE_TO_MANY,
|
||||
@@ -140,7 +139,7 @@ const relationTestCases: WorkspaceMigrationBuilderTestCase[] = [
|
||||
},
|
||||
relationTargetFieldMetadataId: faker.string.uuid(),
|
||||
relationTargetObjectMetadataId: faker.string.uuid(),
|
||||
},
|
||||
}),
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user