[POC] add graphql query runner (#6747)

## Context
The goal is to replace pg_graphql with our own ORM wrapper (TwentyORM).
This PR tries to add some parsing logic to convert graphql requests to
send to the ORM to replace pg_graphql implementation.

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
Weiko
2024-08-27 17:06:39 +02:00
committed by GitHub
parent ef4f2e43b0
commit f6fd92adcb
51 changed files with 1397 additions and 249 deletions

View File

@ -57,7 +57,7 @@ export class EntitySchemaRelationFactory {
target: relationDetails.target,
inverseSide: relationDetails.inverseSide,
joinColumn: relationDetails.joinColumn,
};
} satisfies EntitySchemaRelationOptions;
}
return entitySchemaRelationMap;

View File

@ -9,11 +9,13 @@ import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadat
import { WorkspaceMetadataVersionService } from 'src/engine/metadata-modules/workspace-metadata-version/workspace-metadata-version.service';
import { WorkspaceDataSource } from 'src/engine/twenty-orm/datasource/workspace.datasource';
import { EntitySchemaFactory } from 'src/engine/twenty-orm/factories/entity-schema.factory';
import { workspaceDataSourceCacheInstance } from 'src/engine/twenty-orm/twenty-orm-core.module';
import { CacheManager } from 'src/engine/twenty-orm/storage/cache-manager.storage';
import { WorkspaceCacheStorageService } from 'src/engine/workspace-cache-storage/workspace-cache-storage.service';
@Injectable()
export class WorkspaceDatasourceFactory {
private cacheManager = new CacheManager<WorkspaceDataSource>();
constructor(
private readonly dataSourceService: DataSourceService,
private readonly environmentService: EnvironmentService,
@ -48,7 +50,7 @@ export class WorkspaceDatasourceFactory {
);
}
const workspaceDataSource = await workspaceDataSourceCacheInstance.execute(
const workspaceDataSource = await this.cacheManager.execute(
`${workspaceId}-${latestWorkspaceMetadataVersion}`,
async () => {
let cachedObjectMetadataCollection =