Passer au contenu

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.

Fonction pour générer le schéma
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.