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:
Félix Malfait
2024-04-14 09:09:51 +02:00
committed by GitHub
parent f82b1ff9ef
commit 9aa24ed803
50 changed files with 600 additions and 152 deletions

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { activityTargetStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
@ -32,7 +34,7 @@ export class ActivityTargetObjectMetadata extends BaseObjectMetadata {
joinColumn: 'activityId',
})
@IsNullable()
activity: ActivityObjectMetadata;
activity: Relation<ActivityObjectMetadata>;
@FieldMetadata({
standardId: activityTargetStandardFieldIds.person,
@ -43,7 +45,7 @@ export class ActivityTargetObjectMetadata extends BaseObjectMetadata {
joinColumn: 'personId',
})
@IsNullable()
person: PersonObjectMetadata;
person: Relation<PersonObjectMetadata>;
@FieldMetadata({
standardId: activityTargetStandardFieldIds.company,
@ -54,7 +56,7 @@ export class ActivityTargetObjectMetadata extends BaseObjectMetadata {
joinColumn: 'companyId',
})
@IsNullable()
company: CompanyObjectMetadata;
company: Relation<CompanyObjectMetadata>;
@FieldMetadata({
standardId: activityTargetStandardFieldIds.opportunity,
@ -65,7 +67,7 @@ export class ActivityTargetObjectMetadata extends BaseObjectMetadata {
joinColumn: 'opportunityId',
})
@IsNullable()
opportunity: OpportunityObjectMetadata;
opportunity: Relation<OpportunityObjectMetadata>;
@DynamicRelationFieldMetadata((oppositeObjectMetadata) => ({
standardId: activityTargetStandardFieldIds.custom,
@ -75,5 +77,5 @@ export class ActivityTargetObjectMetadata extends BaseObjectMetadata {
joinColumn: `${oppositeObjectMetadata.nameSingular}Id`,
icon: 'IconBuildingSkyscraper',
}))
custom: CustomObjectMetadata;
custom: Relation<CustomObjectMetadata>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import {
RelationMetadataType,
@ -97,7 +99,7 @@ export class ActivityObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.SET_NULL,
})
@IsNullable()
activityTargets: ActivityTargetObjectMetadata[];
activityTargets: Relation<ActivityTargetObjectMetadata[]>;
@FieldMetadata({
standardId: activityStandardFieldIds.attachments,
@ -112,7 +114,7 @@ export class ActivityObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.SET_NULL,
})
@IsNullable()
attachments: AttachmentObjectMetadata[];
attachments: Relation<AttachmentObjectMetadata[]>;
@FieldMetadata({
standardId: activityStandardFieldIds.comments,
@ -127,7 +129,7 @@ export class ActivityObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.CASCADE,
})
@IsNullable()
comments: CommentObjectMetadata[];
comments: Relation<CommentObjectMetadata[]>;
@FieldMetadata({
standardId: activityStandardFieldIds.author,
@ -138,7 +140,7 @@ export class ActivityObjectMetadata extends BaseObjectMetadata {
joinColumn: 'authorId',
})
@IsNullable()
author: WorkspaceMemberObjectMetadata;
author: Relation<WorkspaceMemberObjectMetadata>;
@FieldMetadata({
standardId: activityStandardFieldIds.assignee,
@ -149,5 +151,5 @@ export class ActivityObjectMetadata extends BaseObjectMetadata {
joinColumn: 'assigneeId',
})
@IsNullable()
assignee: WorkspaceMemberObjectMetadata;
assignee: Relation<WorkspaceMemberObjectMetadata>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { commentStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
@ -35,7 +37,7 @@ export class CommentObjectMetadata extends BaseObjectMetadata {
icon: 'IconCircleUser',
joinColumn: 'authorId',
})
author: WorkspaceMemberObjectMetadata;
author: Relation<WorkspaceMemberObjectMetadata>;
@FieldMetadata({
standardId: commentStandardFieldIds.activity,
@ -45,5 +47,5 @@ export class CommentObjectMetadata extends BaseObjectMetadata {
icon: 'IconNotes',
joinColumn: 'activityId',
})
activity: ActivityObjectMetadata;
activity: Relation<ActivityObjectMetadata>;
}