Necesito generar tipos de TypeScript para mongoDB usando graphql-code-generator y el complemento typescript-mongodb , pero no entiendo cómo importar las directivas de ese complemento en una aplicación nestJS.
En mi aplicación backend (nestJS), el módulo graphql se define así:
import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo'; import { Module } from '@nestjs/common'; import { GraphQLModule } from '@nestjs/graphql'; @Module({ imports: [ GraphQLModule.forRoot<ApolloDriverConfig>({ driver: ApolloDriver, typePaths: ['./**/*.graphql'] }), ], }) export class AppModule {}En los documentos del complemento veo que tengo que usar las directivas:
import { makeExecutableSchema } from '@graphql-tools/schema' import { DIRECTIVES } from '@graphql-codegen/typescript-mongodb' const schema = makeExecutableSchema({ typeDefs: [ DIRECTIVES // the rest of your GraphQL types ], resolvers }) Pero no entiendo cómo implementar esto en mi aplicación nestJS, que usa GraphQLModule .
npm i @graphql-codegen/cli @graphql-codegen/typescript-mongodbcodegen.yml overwrite: true schema: "http://localhost:3000/graphql" documents: null generates: src/generated/graphql.ts: plugins: - "typescript" - "typescript-mongodb" El esquema de código anterior debe apuntar al extremo local de GraphQl. El código anterior generará tipos en el archivo src/generated/graphql.ts
"generate": "graphql-codegen --config codegen.yml" npm run generate Nota: el servidor graphQL ( start:dev ) debe estar ejecutándose mientras se usa el comando generar
Enlace de repositorio en funcionamiento: https://github.com/vinodsai-a/nestjs-graphql-codegen-example