fix(introspection): schema transformation for custom scalar#313
Open
MathisPct wants to merge 1 commit intodeweyjose:mainfrom
Open
fix(introspection): schema transformation for custom scalar#313MathisPct wants to merge 1 commit intodeweyjose:mainfrom
MathisPct wants to merge 1 commit intodeweyjose:mainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#312
SchemaTransformationService
rewrites custom root operation names to the standardQuery,Mutation, andSubscription` names before printing the schema back to SDL.This step currently rebuilds an executable
GraphQLSchemafrom the parsed registry. That works for simple schemas, but it breaks on introspected schemas when they contain custom scalars such asuuidandtimestamptz.With an empty
RuntimeWiring,graphql-javacannot build the executable schema and fails beforeSchemaPrintergets a chance to print the transformed schema.What this MR does
This MR replaces the empty runtime wiring with a minimal local wiring dedicated to schema printing:
This is enough to let
graphql-javabuild a printable schema without relying onRuntimeWiring.MOCKED_WIRING, which is documented as testing-only.Result
The transformation step now works for introspected schemas with custom scalars, while remaining safe because the generated wiring is only used to print the schema, not to execute it.
Tests
Added a regression test covering a schema with:
uuid,timestamptz)