Compile with swc on twenty-server (#4863)
Experiment using swc instead of tsc (as we did the switch on twenty-front) It's **much** faster (at least 5x) but has stricter requirements. I fixed the build but there's still an error while starting the server, opening this PR for discussion. Checkout the branch and try `nx build:swc twenty-server` Read: https://docs.nestjs.com/recipes/swc#common-pitfalls
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
import { Field, ObjectType, registerEnumType } from '@nestjs/graphql';
|
||||
|
||||
import { IsEnum, IsNotEmpty } from 'class-validator';
|
||||
import { Relation } from 'typeorm';
|
||||
|
||||
import { FieldMetadataDTO } from 'src/engine/metadata-modules/field-metadata/dtos/field-metadata.dto';
|
||||
import { ObjectMetadataDTO } from 'src/engine/metadata-modules/object-metadata/dtos/object-metadata.dto';
|
||||
@ -22,19 +23,19 @@ registerEnumType(RelationDefinitionType, {
|
||||
export class RelationDefinitionDTO {
|
||||
@IsNotEmpty()
|
||||
@Field(() => ObjectMetadataDTO)
|
||||
sourceObjectMetadata: ObjectMetadataDTO;
|
||||
sourceObjectMetadata: Relation<ObjectMetadataDTO>;
|
||||
|
||||
@IsNotEmpty()
|
||||
@Field(() => ObjectMetadataDTO)
|
||||
targetObjectMetadata: ObjectMetadataDTO;
|
||||
targetObjectMetadata: Relation<ObjectMetadataDTO>;
|
||||
|
||||
@IsNotEmpty()
|
||||
@Field(() => FieldMetadataDTO)
|
||||
sourceFieldMetadata: FieldMetadataDTO;
|
||||
sourceFieldMetadata: Relation<FieldMetadataDTO>;
|
||||
|
||||
@IsNotEmpty()
|
||||
@Field(() => FieldMetadataDTO)
|
||||
targetFieldMetadata: FieldMetadataDTO;
|
||||
targetFieldMetadata: Relation<FieldMetadataDTO>;
|
||||
|
||||
@IsEnum(RelationDefinitionType)
|
||||
@IsNotEmpty()
|
||||
|
||||
@ -8,6 +8,7 @@ import {
|
||||
OneToOne,
|
||||
CreateDateColumn,
|
||||
UpdateDateColumn,
|
||||
Relation,
|
||||
} from 'typeorm';
|
||||
|
||||
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
|
||||
@ -63,7 +64,7 @@ export class FieldMetadataEntity<
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn({ name: 'objectMetadataId' })
|
||||
object: ObjectMetadataEntity;
|
||||
object: Relation<ObjectMetadataEntity>;
|
||||
|
||||
@Column({ nullable: false })
|
||||
type: FieldMetadataType;
|
||||
@ -105,13 +106,13 @@ export class FieldMetadataEntity<
|
||||
() => RelationMetadataEntity,
|
||||
(relation: RelationMetadataEntity) => relation.fromFieldMetadata,
|
||||
)
|
||||
fromRelationMetadata: RelationMetadataEntity;
|
||||
fromRelationMetadata: Relation<RelationMetadataEntity>;
|
||||
|
||||
@OneToOne(
|
||||
() => RelationMetadataEntity,
|
||||
(relation: RelationMetadataEntity) => relation.toFieldMetadata,
|
||||
)
|
||||
toRelationMetadata: RelationMetadataEntity;
|
||||
toRelationMetadata: Relation<RelationMetadataEntity>;
|
||||
|
||||
@CreateDateColumn({ type: 'timestamptz' })
|
||||
createdAt: Date;
|
||||
|
||||
@ -7,6 +7,7 @@ import {
|
||||
CreateDateColumn,
|
||||
UpdateDateColumn,
|
||||
ManyToOne,
|
||||
Relation,
|
||||
} from 'typeorm';
|
||||
|
||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
||||
@ -79,7 +80,7 @@ export class ObjectMetadataEntity implements ObjectMetadataInterface {
|
||||
@OneToMany(() => FieldMetadataEntity, (field) => field.object, {
|
||||
cascade: true,
|
||||
})
|
||||
fields: FieldMetadataEntity[];
|
||||
fields: Relation<FieldMetadataEntity[]>;
|
||||
|
||||
@OneToMany(
|
||||
() => RelationMetadataEntity,
|
||||
@ -88,7 +89,7 @@ export class ObjectMetadataEntity implements ObjectMetadataInterface {
|
||||
cascade: true,
|
||||
},
|
||||
)
|
||||
fromRelations: RelationMetadataEntity[];
|
||||
fromRelations: Relation<RelationMetadataEntity[]>;
|
||||
|
||||
@OneToMany(
|
||||
() => RelationMetadataEntity,
|
||||
@ -97,12 +98,12 @@ export class ObjectMetadataEntity implements ObjectMetadataInterface {
|
||||
cascade: true,
|
||||
},
|
||||
)
|
||||
toRelations: RelationMetadataEntity[];
|
||||
toRelations: Relation<RelationMetadataEntity[]>;
|
||||
|
||||
@ManyToOne(() => DataSourceEntity, (dataSource) => dataSource.objects, {
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
dataSource: DataSourceEntity;
|
||||
dataSource: Relation<DataSourceEntity>;
|
||||
|
||||
@CreateDateColumn({ type: 'timestamptz' })
|
||||
createdAt: Date;
|
||||
|
||||
@ -6,6 +6,7 @@ import {
|
||||
ManyToOne,
|
||||
OneToOne,
|
||||
PrimaryGeneratedColumn,
|
||||
Relation,
|
||||
UpdateDateColumn,
|
||||
} from 'typeorm';
|
||||
|
||||
@ -65,7 +66,7 @@ export class RelationMetadataEntity implements RelationMetadataInterface {
|
||||
onDelete: 'CASCADE',
|
||||
},
|
||||
)
|
||||
fromObjectMetadata: ObjectMetadataEntity;
|
||||
fromObjectMetadata: Relation<ObjectMetadataEntity>;
|
||||
|
||||
@ManyToOne(
|
||||
() => ObjectMetadataEntity,
|
||||
@ -74,21 +75,21 @@ export class RelationMetadataEntity implements RelationMetadataInterface {
|
||||
onDelete: 'CASCADE',
|
||||
},
|
||||
)
|
||||
toObjectMetadata: ObjectMetadataEntity;
|
||||
toObjectMetadata: Relation<ObjectMetadataEntity>;
|
||||
|
||||
@OneToOne(
|
||||
() => FieldMetadataEntity,
|
||||
(field: FieldMetadataEntity) => field.fromRelationMetadata,
|
||||
)
|
||||
@JoinColumn()
|
||||
fromFieldMetadata: FieldMetadataEntity;
|
||||
fromFieldMetadata: Relation<FieldMetadataEntity>;
|
||||
|
||||
@OneToOne(
|
||||
() => FieldMetadataEntity,
|
||||
(field: FieldMetadataEntity) => field.toRelationMetadata,
|
||||
)
|
||||
@JoinColumn()
|
||||
toFieldMetadata: FieldMetadataEntity;
|
||||
toFieldMetadata: Relation<FieldMetadataEntity>;
|
||||
|
||||
@CreateDateColumn({ type: 'timestamptz' })
|
||||
createdAt: Date;
|
||||
|
||||
@ -39,7 +39,7 @@ export class RemoteServerEntity<T extends RemoteServerType> {
|
||||
@Generated('uuid')
|
||||
foreignDataWrapperId: string;
|
||||
|
||||
@Column({ nullable: true })
|
||||
@Column({ type: 'text', nullable: true })
|
||||
foreignDataWrapperType: T;
|
||||
|
||||
@Column({ nullable: true, type: 'jsonb' })
|
||||
|
||||
Reference in New Issue
Block a user