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:
+1
-1
@@ -72,7 +72,7 @@ export class CompositeColumnActionFactory extends ColumnActionAbstractFactory<Co
|
||||
columnType: fieldMetadataTypeToColumnType(property.type),
|
||||
enum: enumOptions,
|
||||
isNullable: fieldMetadata.isNullable || !property.isRequired,
|
||||
isUnique: fieldMetadata.isUnique,
|
||||
isUnique: fieldMetadata.isUnique ?? undefined,
|
||||
defaultValue: serializedDefaultValue,
|
||||
isArray:
|
||||
property.type === FieldMetadataType.MULTI_SELECT || property.isArray,
|
||||
|
||||
+9
-4
@@ -13,14 +13,19 @@ import {
|
||||
WorkspaceMigrationColumnCreate,
|
||||
} from 'src/engine/metadata-modules/workspace-migration/workspace-migration.entity';
|
||||
|
||||
export type TsVectorFieldMetadataType = FieldMetadataType.TS_VECTOR;
|
||||
export type TsVectorFieldMetadata =
|
||||
FieldMetadataInterface<FieldMetadataType.TS_VECTOR> & {
|
||||
generatedType?: 'STORED' | 'VIRTUAL';
|
||||
asExpression?: string;
|
||||
};
|
||||
|
||||
export type TsVectorFieldMetadataType = FieldMetadataType.TS_VECTOR;
|
||||
@Injectable()
|
||||
export class TsVectorColumnActionFactory extends ColumnActionAbstractFactory<TsVectorFieldMetadataType> {
|
||||
protected readonly logger = new Logger(TsVectorColumnActionFactory.name);
|
||||
|
||||
handleCreateAction(
|
||||
fieldMetadata: FieldMetadataInterface<TsVectorFieldMetadataType>,
|
||||
fieldMetadata: TsVectorFieldMetadata,
|
||||
): WorkspaceMigrationColumnCreate[] {
|
||||
return [
|
||||
{
|
||||
@@ -37,8 +42,8 @@ export class TsVectorColumnActionFactory extends ColumnActionAbstractFactory<TsV
|
||||
}
|
||||
|
||||
handleAlterAction(
|
||||
currentFieldMetadata: FieldMetadataInterface<TsVectorFieldMetadataType>,
|
||||
alteredFieldMetadata: FieldMetadataInterface<TsVectorFieldMetadataType>,
|
||||
currentFieldMetadata: TsVectorFieldMetadata,
|
||||
alteredFieldMetadata: TsVectorFieldMetadata,
|
||||
): WorkspaceMigrationColumnAlter[] {
|
||||
return [
|
||||
{
|
||||
|
||||
+12
-3
@@ -11,7 +11,10 @@ import { CompositeColumnActionFactory } from 'src/engine/metadata-modules/worksp
|
||||
import { EnumColumnActionFactory } from 'src/engine/metadata-modules/workspace-migration/factories/enum-column-action.factory';
|
||||
import { MorphRelationColumnActionFactory } from 'src/engine/metadata-modules/workspace-migration/factories/morph-relation-column-action.factory';
|
||||
import { RelationColumnActionFactory } from 'src/engine/metadata-modules/workspace-migration/factories/relation-column-action.factory';
|
||||
import { TsVectorColumnActionFactory } from 'src/engine/metadata-modules/workspace-migration/factories/ts-vector-column-action.factory';
|
||||
import {
|
||||
TsVectorColumnActionFactory,
|
||||
TsVectorFieldMetadata,
|
||||
} from 'src/engine/metadata-modules/workspace-migration/factories/ts-vector-column-action.factory';
|
||||
import {
|
||||
WorkspaceMigrationColumnAction,
|
||||
WorkspaceMigrationColumnActionType,
|
||||
@@ -115,9 +118,9 @@ export class WorkspaceMigrationFactory {
|
||||
]);
|
||||
}
|
||||
|
||||
createColumnActions(
|
||||
createColumnActions<T extends FieldMetadataType = FieldMetadataType>(
|
||||
action: WorkspaceMigrationColumnActionType.CREATE,
|
||||
fieldMetadata: FieldMetadataInterface,
|
||||
fieldMetadata: FieldMetadataInterface<T>,
|
||||
): WorkspaceMigrationColumnAction[];
|
||||
|
||||
createColumnActions(
|
||||
@@ -126,6 +129,12 @@ export class WorkspaceMigrationFactory {
|
||||
alteredFieldMetadata: FieldMetadataInterface,
|
||||
): WorkspaceMigrationColumnAction[];
|
||||
|
||||
createColumnActions(
|
||||
action: WorkspaceMigrationColumnActionType.ALTER,
|
||||
currentFieldMetadata: FieldMetadataInterface,
|
||||
alteredFieldMetadata: TsVectorFieldMetadata,
|
||||
): WorkspaceMigrationColumnAction[];
|
||||
|
||||
createColumnActions(
|
||||
action:
|
||||
| WorkspaceMigrationColumnActionType.CREATE
|
||||
|
||||
Reference in New Issue
Block a user