Feat: return data type picking #4
Draft
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.
Feature desc
This adds support for gql-like picking of the return schema you want.
Picking will support object and array payloads.
When picking arrays, you will be able to define a sub-pick for the type of the contained elements (this will loop to resolve), as well as how many elements to keep from the array
This won't be as good as advanced GQL - where different resolvers can be added -, but that's because this isn't the point.
This feature is purely here to help reduce the response size and help frontend devs improve perfomance by only picking what they need - while not requiring any additional work from backend devs
Client Side
Clients will be responsible for providing picking support (by integrating utils from the core package), and if picking is enabled, a structured JSON header must be sent to the server.
Server Side
A onSend hook will be added to fastify, checking for the pick header, and if present, it will pick the data from the wanted fields before returning it