-
-
Notifications
You must be signed in to change notification settings - Fork 832
Description
This issue seems like a continuation of #3031 where merges conflict if descriptions differ.
We use graphql-codegen that uses graphql-tools/merge to combine schema. Schemas are generated by two tools: graphql-js and graphql-java. Both generate a directive that differs slightly in the description.
Example of the directive: graphql-java/Directives.java at master · graphql-java/graphql-java · GitHub
/**
* The "specifiedBy" directive allows to provide a specification URL for a Scalar
*/
public static final GraphQLDirective SpecifiedByDirective = GraphQLDirective.newDirective()
.name(SPECIFIED_BY)
.description("Exposes a URL that specifies the behaviour of this scalar.")
.argument(newArgument()
.name("url")
.type(nonNull(GraphQLString))
.description("The URL that specifies the behaviour of this scalar."))
.validLocations(SCALAR)
.definition(SPECIFIED_BY_DIRECTIVE_DEFINITION)
.build();
The node parameter of the function validateInputs() in directives.ts looks like:
The fix for issue 3031 does not handle the argument description.
Print out of "printedNode" and "existing PrintedNode" of validateInputs():
The "sameArguments " comparision fail due to the spelling difference of "behaviour".
Expected behavior
When I tweaked the the validateInputs() function locally to ignore the argument description, the graphql-codegen tool seemed to work properly.
Environment:
@graphql-tools/merge@8.2.6
: