New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cannot inject GraphQLFactory into forRootAsync factory/class #52
Comments
Fixed in v5.1.1. Thanks for reporting! |
This still appears to be broken for me in v5.1.1. |
Weird 😢 Reopening |
Alright. |
@kamilmysliwiec I was about to open the same issue and was going to suggest what you just said. Just in case the following is what I'm using for now @michaelbromley: import { fileLoader, mergeTypes } from 'merge-graphql-schemas';
import { flatten } from 'lodash';
export function mergeGraphqlTypes(...patterns: string[]): string {
const files = patterns.map(pattern => fileLoader(pattern));
return mergeTypes(flatten(files));
} |
One question @matcic @michaelbromley, could you share your sample use-cases of |
Sure, here's my use-case (this is prior to Apollo Server v2 migration, so using the old style): private createSchema(customFields: CustomFields) {
const typeDefs = this.graphQLFactory.mergeTypesByPaths(__dirname + '/**/*.graphql');
const extendedTypeDefs = addGraphQLCustomFields(typeDefs, customFields);
return this.graphQLFactory.createSchema({
typeDefs: extendedTypeDefs,
resolverValidationOptions: {
requireResolversForResolveType: false,
},
resolvers: {
JSON: GraphQLJSON,
DateTime: GraphQLDateTime,
},
});
} The @matcic thanks - that's pretty much exactly what I've got at the moment ;) |
@kamilmysliwiec my use-case is related to microservices: the idea is to have one schema per microservice (which in turn is generated by merging together several types belonging to different models) and then to merge all schemas into one. I am using Graphql bindings behind the scenes in order to delegate requests to the appropriate endpoint. |
Thanks for sharing your use-cases @matcic @michaelbromley, appreciate that ❤️ I have just published 5.2.0, you can use |
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
I'm submitting a...
Current behavior
When I try to inject
GraphQLFactory
into either a factory function or a class passed toGraphQLModule.forRootAsync()
, the app fails to bootstrap, with no error displayed in the console.Expected behavior
I think I should be able to inject
GraphQLFactory
and use it in a factory or class passed to.forRootAsync()
.Minimal reproduction of the problem with instructions
git clone git@github.com:nestjs/nest.git
cd nest/sample/12-graphql-apollo
npm install
npm run start
What is the motivation / use case for changing the behavior?
I want to use the
GraphQLFactory.mergeTypesByPaths()
method to do some pre-processing of my schema when bootstrapping my app. Up until today I was using the old v3.0.0 way of configuring graphql, where I could injectGraphQLFactory
into my AppModule.Now I am upgrading to v5.1.0 and it seems that when I try to inject
GraphQLFactory
into either a factory function or a class passed toGraphQLModule.forRootAsync()
, the app fails to bootstrap with no error.Environment
The text was updated successfully, but these errors were encountered: