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 { FeatureFlagKeys } from 'src/engine/core-modules/feature-flag/feature-flag.entity';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { calendarChannelEventAssociationStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
@ -30,7 +32,7 @@ export class CalendarChannelEventAssociationObjectMetadata extends BaseObjectMet
icon: 'IconCalendar',
joinColumn: 'calendarChannelId',
})
calendarChannel: CalendarEventObjectMetadata;
calendarChannel: Relation<CalendarEventObjectMetadata>;
@FieldMetadata({
standardId: calendarChannelEventAssociationStandardFieldIds.calendarEvent,
@ -40,7 +42,7 @@ export class CalendarChannelEventAssociationObjectMetadata extends BaseObjectMet
icon: 'IconCalendar',
joinColumn: 'calendarEventId',
})
calendarEvent: CalendarEventObjectMetadata;
calendarEvent: Relation<CalendarEventObjectMetadata>;
@FieldMetadata({
standardId: calendarChannelEventAssociationStandardFieldIds.eventExternalId,

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import {
RelationMetadataType,
RelationOnDeleteAction,
@ -41,7 +43,7 @@ export class CalendarChannelObjectMetadata extends BaseObjectMetadata {
icon: 'IconUserCircle',
joinColumn: 'connectedAccountId',
})
connectedAccount: ConnectedAccountObjectMetadata;
connectedAccount: Relation<ConnectedAccountObjectMetadata>;
@FieldMetadata({
standardId: calendarChannelStandardFieldIds.handle,
@ -119,5 +121,7 @@ export class CalendarChannelObjectMetadata extends BaseObjectMetadata {
inverseSideTarget: () => CalendarChannelEventAssociationObjectMetadata,
onDelete: RelationOnDeleteAction.CASCADE,
})
calendarChannelEventAssociations: CalendarChannelEventAssociationObjectMetadata[];
calendarChannelEventAssociations: Relation<
CalendarChannelEventAssociationObjectMetadata[]
>;
}

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 { calendarEventParticipantStandardFieldIds } 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';
@ -39,7 +41,7 @@ export class CalendarEventParticipantObjectMetadata extends BaseObjectMetadata {
icon: 'IconCalendar',
joinColumn: 'calendarEventId',
})
calendarEvent: CalendarEventObjectMetadata;
calendarEvent: Relation<CalendarEventObjectMetadata>;
@FieldMetadata({
standardId: calendarEventParticipantStandardFieldIds.handle,
@ -114,7 +116,7 @@ export class CalendarEventParticipantObjectMetadata extends BaseObjectMetadata {
joinColumn: 'personId',
})
@IsNullable()
person: PersonObjectMetadata;
person: Relation<PersonObjectMetadata>;
@FieldMetadata({
standardId: calendarEventParticipantStandardFieldIds.workspaceMember,
@ -125,5 +127,5 @@ export class CalendarEventParticipantObjectMetadata extends BaseObjectMetadata {
joinColumn: 'workspaceMemberId',
})
@IsNullable()
workspaceMember: WorkspaceMemberObjectMetadata;
workspaceMember: Relation<WorkspaceMemberObjectMetadata>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { RelationMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/relation-metadata.decorator';
import { FeatureFlagKeys } from 'src/engine/core-modules/feature-flag/feature-flag.entity';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
@ -168,7 +170,9 @@ export class CalendarEventObjectMetadata extends BaseObjectMetadata {
@Gate({
featureFlag: 'IS_CALENDAR_ENABLED',
})
calendarChannelEventAssociations: CalendarChannelEventAssociationObjectMetadata[];
calendarChannelEventAssociations: Relation<
CalendarChannelEventAssociationObjectMetadata[]
>;
@FieldMetadata({
standardId: calendarEventStandardFieldIds.calendarEventParticipants,
@ -182,5 +186,5 @@ export class CalendarEventObjectMetadata extends BaseObjectMetadata {
inverseSideTarget: () => CalendarEventParticipantObjectMetadata,
onDelete: RelationOnDeleteAction.CASCADE,
})
calendarEventParticipants: CalendarEventParticipantObjectMetadata[];
calendarEventParticipants: Relation<CalendarEventParticipantObjectMetadata[]>;
}