Génération de SDL
Pour générer manuellement un schéma SDL GraphQL (c’est-à-dire sans exécuter une application, se connecter à la base de données, relier des resolvers, etc.), utilisez le GraphQLSchemaBuilderModule
.
async function generateSchema() { const app = await NestFactory.create(GraphQLSchemaBuilderModule); await app.init();
const gqlSchemaFactory = app.get(GraphQLSchemaFactory); const schema = await gqlSchemaFactory.create([RecipesResolver]); console.log(printSchema(schema));}
Utilisation
La méthode gqlSchemaFactory.create()
prend un tableau de références de classes de resolver. Par exemple :
const schema = await gqlSchemaFactory.create([ RecipesResolver, AuthorsResolver, PostsResolvers,]);
Elle prend également un deuxième argument optionnel avec un tableau de classes scalar :
const schema = await gqlSchemaFactory.create( [RecipesResolver, AuthorsResolver, PostsResolvers], [DurationScalar, DateScalar],);
Enfin, vous pouvez passer un objet d’options :
const schema = await gqlSchemaFactory.create([RecipesResolver], { skipCheck: true, orphanedTypes: [],});
skipCheck
: ignorer la validation du schéma ; booléen, défaut àfalse
orphanedTypes
: liste des classes qui ne sont pas explicitement référencées (pas partie du graphe d’objets) à générer. Normalement, si une classe est déclarée mais n’est autrement pas référencée dans le graphe, elle est omise. La valeur de la propriété est un tableau de références de classes.