Refactor backend folder structure (#4505)

* Refactor backend folder structure

Co-authored-by: Charles Bochet <charles@twenty.com>

* fix tests

* fix

* move yoga hooks

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
Weiko
2024-03-15 18:37:09 +01:00
committed by GitHub
parent afb9b3e375
commit 2c09096edd
523 changed files with 1386 additions and 1856 deletions

View File

@ -0,0 +1,53 @@
import { Injectable } from '@nestjs/common';
import { GraphQLScalarType, GraphQLSchema, isScalarType } from 'graphql';
import { scalars } from 'src/engine/api/graphql/workspace-schema-builder/graphql-types/scalars';
@Injectable()
export class ScalarsExplorerService {
private scalarImplementations: Record<string, GraphQLScalarType>;
constructor() {
this.scalarImplementations = scalars.reduce((acc, scalar) => {
acc[scalar.name] = scalar;
return acc;
}, {});
}
getScalarImplementation(scalarName: string): GraphQLScalarType | undefined {
return this.scalarImplementations[scalarName];
}
getUsedScalarNames(schema: GraphQLSchema): string[] {
const typeMap = schema.getTypeMap();
const usedScalarNames: string[] = [];
for (const typeName in typeMap) {
const type = typeMap[typeName];
if (isScalarType(type) && !typeName.startsWith('__')) {
usedScalarNames.push(type.name);
}
}
return usedScalarNames;
}
getScalarResolvers(
usedScalarNames: string[],
): Record<string, GraphQLScalarType> {
const scalarResolvers: Record<string, GraphQLScalarType> = {};
for (const scalarName of usedScalarNames) {
const scalarImplementation = this.getScalarImplementation(scalarName);
if (scalarImplementation) {
scalarResolvers[scalarName] = scalarImplementation;
}
}
return scalarResolvers;
}
}