From c17dbe711516cbc02a13776b609a6a0d2c21e2c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20M?= Date: Wed, 29 Jan 2025 13:46:36 +0100 Subject: [PATCH] fix: broken schema generation (#9905) --- .../type-definitions.generator.ts | 14 ++++++++------ .../workspace-graphql-schema.factory.ts | 5 ++++- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/type-definitions.generator.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/type-definitions.generator.ts index caedc0ded..e298788dd 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/type-definitions.generator.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/type-definitions.generator.ts @@ -48,20 +48,22 @@ export class TypeDefinitionsGenerator { private readonly featureFlagService: FeatureFlagService, ) {} - generate( + async generate( objectMetadataCollection: ObjectMetadataInterface[], options: WorkspaceBuildSchemaOptions, ) { // Generate composite type objects first because they can be used in dynamic objects - this.generateCompositeTypeDefs(options); + await this.generateCompositeTypeDefs(options); // Generate metadata objects - this.generateMetadataTypeDefs(objectMetadataCollection, options); + await this.generateMetadataTypeDefs(objectMetadataCollection, options); } /** * GENERATE COMPOSITE TYPE OBJECTS */ - private generateCompositeTypeDefs(options: WorkspaceBuildSchemaOptions) { + private async generateCompositeTypeDefs( + options: WorkspaceBuildSchemaOptions, + ) { const compositeTypeCollection = [...compositeTypeDefinitions.values()]; this.logger.log( @@ -150,7 +152,7 @@ export class TypeDefinitionsGenerator { * GENERATE METADATA OBJECTS */ - private generateMetadataTypeDefs( + private async generateMetadataTypeDefs( dynamicObjectMetadataCollection: ObjectMetadataInterface[], options: WorkspaceBuildSchemaOptions, ) { @@ -165,7 +167,7 @@ export class TypeDefinitionsGenerator { this.generateObjectTypeDefs(dynamicObjectMetadataCollection, options); this.generatePaginationTypeDefs(dynamicObjectMetadataCollection, options); this.generateInputTypeDefs(dynamicObjectMetadataCollection, options); - this.generateExtendedObjectTypeDefs( + await this.generateExtendedObjectTypeDefs( dynamicObjectMetadataCollection, options, ); diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/workspace-graphql-schema.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/workspace-graphql-schema.factory.ts index d39f1c59e..be48bdb2b 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/workspace-graphql-schema.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/workspace-graphql-schema.factory.ts @@ -27,7 +27,10 @@ export class WorkspaceGraphQLSchemaFactory { options: WorkspaceBuildSchemaOptions = {}, ): Promise { // Generate type definitions - this.typeDefinitionsGenerator.generate(objectMetadataCollection, options); + await this.typeDefinitionsGenerator.generate( + objectMetadataCollection, + options, + ); // Generate schema const schema = new GraphQLSchema({