Migrate to a monorepo structure (#2909)

This commit is contained in:
Charles Bochet
2023-12-10 18:10:54 +01:00
committed by GitHub
parent a70a9281eb
commit 5bdca9de6c
2304 changed files with 37152 additions and 25869 deletions

View File

@ -0,0 +1,53 @@
import { Injectable } from '@nestjs/common';
import { GraphQLScalarType, GraphQLSchema, isScalarType } from 'graphql';
import { scalars } from 'src/workspace/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;
}
}