feat: migration can be applied on a specific schema & some enhancements (#2998)

* fix: remove old metadata seed files

* feat: wip standard to core relation

* fix: lint

* fix: merge

* fix: remove debug files

* feat: add feature flag for core object metadata

* fix: remove debug

* feat: always disable the standard core relation

* fix: missing feature flag

* fix: remove debug

* fix: feature flag doesn't seems to disable relation

* fix: delete .vscode folder, change this in another PR

* Update packages/twenty-server/src/workspace/workspace-sync-metadata/reflective-metadata.factory.ts

Co-authored-by: Weiko <corentin@twenty.com>

* Update packages/twenty-server/src/workspace/workspace-sync-metadata/reflective-metadata.factory.ts

Co-authored-by: Weiko <corentin@twenty.com>

* Update packages/twenty-server/src/workspace/workspace-sync-metadata/workspace-sync.metadata.service.ts

Co-authored-by: Weiko <corentin@twenty.com>

* fix: remove optional fields from metadata entities

* fix: renamed variable

* fix: put back CursorScalarType

* fix: delete test command

* fix: remove unused workspace standard migration command

* fix: drop core object metadata declaration

* fix: rename variable

* fix: drop creation of core datasource

* fix: remove feature flag

* fix: drop support of standard to core relations

* feat: add user email field on workspace-member standard object

* fix: update seed accordingly

* fix: missing remove command file

* fix: datasource label should remain nullable

* fix: better asserts

* Remove unused code

* Remove unused code

---------

Co-authored-by: Weiko <corentin@twenty.com>
Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
Jérémy M
2023-12-21 19:15:05 +01:00
committed by GitHub
parent 3234134a30
commit d532f22fbb
112 changed files with 714 additions and 6381 deletions

View File

@ -0,0 +1,71 @@
import 'reflect-metadata';
import { GateDecoratorParams } from 'src/workspace/workspace-sync-metadata/interfaces/gate-decorator.interface';
import { ReflectFieldMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/reflect-field-metadata.interface';
import { ReflectObjectMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/reflect-object-metadata.interface';
import { ReflectRelationMetadata } from 'src/workspace/workspace-sync-metadata/interfaces/reflect-relation-metadata.interface';
export interface ReflectMetadataTypeMap {
objectMetadata: ReflectObjectMetadata;
fieldMetadata: ReflectFieldMetadata;
relationMetadata: ReflectRelationMetadata[];
gate: GateDecoratorParams;
isNullable: true;
isSystem: true;
}
export class TypedReflect {
static defineMetadata<T extends keyof ReflectMetadataTypeMap>(
metadataKey: T,
metadataValue: ReflectMetadataTypeMap[T],
target: object,
): void;
static defineMetadata<T extends keyof ReflectMetadataTypeMap>(
metadataKey: T,
metadataValue: ReflectMetadataTypeMap[T],
target: object,
propertyKey: string,
): void;
static defineMetadata<T extends keyof ReflectMetadataTypeMap>(
metadataKey: T,
metadataValue: ReflectMetadataTypeMap[T],
target: object,
propertyKeyOrUndefined?: string,
) {
if (propertyKeyOrUndefined === undefined) {
Reflect.defineMetadata(metadataKey, metadataValue, target);
} else {
Reflect.defineMetadata(
metadataKey,
metadataValue,
target,
propertyKeyOrUndefined,
);
}
}
static getMetadata<T extends keyof ReflectMetadataTypeMap>(
metadataKey: T,
target: object,
): ReflectMetadataTypeMap[T] | undefined;
static getMetadata<T extends keyof ReflectMetadataTypeMap>(
metadataKey: T,
target: object,
propertyKey: string,
): ReflectMetadataTypeMap[T] | undefined;
static getMetadata<T extends keyof ReflectMetadataTypeMap>(
metadataKey: T,
target: object,
propertyKeyOrUndefined?: string,
) {
if (propertyKeyOrUndefined === undefined) {
return Reflect.getMetadata(metadataKey, target);
} else {
return Reflect.getMetadata(metadataKey, target, propertyKeyOrUndefined);
}
}
}