fix: Allow readFragment() to accept fragment document as a generic
#128
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.
Note
It's debatable whether this is a feature or a fix, but since it's a relatively safe addition that complements #98 (for #77) and that we can safely roll back if needed, I'd like to try shipping this as a patch to evaluate this quickly.
Summary
This allows the document in
readFragmentto be passed as a generic, removing the need to keep fragments around as a runtime value.Replacing
readFragment's complex type argument and data generic with an overload is long and wordy, but potentially makes it simpler for TypeScript to evaluate and prevents us having to maintainmirrorTypeRec.In case this is needed, we can add its definition back to the overload, but this wouldn't be compatible with being able to pass just one generic for the document.
Set of changes
maskFragmentsandreadFragmentdefinitions with overloadsreadFragmentto only accept one argument