Update GraphQL Emitter to use GraphQL Mutation Engine#59
Open
FionaBronwen wants to merge 2 commits intofionabronwen/model-typemapfrom
Open
Update GraphQL Emitter to use GraphQL Mutation Engine#59FionaBronwen wants to merge 2 commits intofionabronwen/model-typemapfrom
FionaBronwen wants to merge 2 commits intofionabronwen/model-typemapfrom
Conversation
ca5538e to
cee34c5
Compare
b4208ef to
336b711
Compare
cee34c5 to
f7a355e
Compare
336b711 to
ccc10f6
Compare
f7a355e to
fc918d4
Compare
ccc10f6 to
9c89a06
Compare
fc918d4 to
5161de0
Compare
ea0893f to
803731e
Compare
8cd1884 to
c469bda
Compare
5161de0 to
1f6dff6
Compare
c469bda to
decde60
Compare
9613d6a to
1e07021
Compare
decde60 to
bcfae7d
Compare
steverice
reviewed
Jan 29, 2026
Comment on lines
+72
to
+86
| /** | ||
| * Pass 1: Mutation listeners - mutate types and collect them | ||
| */ | ||
| mutationListeners(mutatedTypes: Type[]) { | ||
| return { | ||
| enum: (node: Enum) => { | ||
| const mutation = this.engine.mutateEnum(node); | ||
| mutatedTypes.push(mutation.mutatedType); | ||
| }, | ||
| model: (node: Model) => { | ||
| const mutation = this.engine.mutateModel(node); | ||
| mutatedTypes.push(mutation.mutatedType); | ||
| }, | ||
| }; | ||
| } |
There was a problem hiding this comment.
I'm confused as to what the point of the engine is if we have to enumerate its mutations explicitly. Can you explain?
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.
Summary
This PR wires up the mutation engine to the schema emitter, ensuring types are mutated before registration and materialization.
Changes
Schema emitter (
src/schema-emitter.ts):GraphQLMutationEnginein constructorenumhandler: mutates enum before registeringmodelhandler: mutates model before registeringexitEnum/exitModel: uses cached mutated names for materializationFlow
Original TSP
↓
Mutation Engine
↓
Mutated TSP
↓
GraphQL Type Registration/ Materialization
↓
GraphQL Schema
Example