import type { ApolloDriverConfig } from '@nestjs/apollo'; import { ApolloDriver } from '@nestjs/apollo'; import { Global, Module } from '@nestjs/common'; import { GraphQLModule } from '@nestjs/graphql'; import { join } from 'path'; import { fileURLToPath } from 'url'; import { Config } from './config'; @Global() @Module({ imports: [ GraphQLModule.forRootAsync({ driver: ApolloDriver, useFactory: (config: Config) => { return { ...config.graphql, path: `${config.path}/graphql`, csrfPrevention: { requestHeaders: ['content-type'], }, autoSchemaFile: join( fileURLToPath(import.meta.url), '..', 'schema.gql' ), }; }, inject: [Config], }), ], }) export class GqlModule {}