Implement eager load relations on graphqlQueries #4391
Merged
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.
In this PR, I'm refactoring the way graphql queries are built from objectMetadata in the different hooks:
All these hooks were querying useMapFieldMetadataToGraphQLQuery
converting useMapFieldMetadataToGraphQLQuery hook to an utils mapFieldMetadataToGraphQLQuery to avoid nesting loop loading of objectMetadataItems (~30us x 200 = 6ms) for a classic object with nesting 2.
introducing mapObjectMetadataToGraphQLQuery to refactor mapping over object that was implemented ~10 times into one place
introducing shouldFieldBeQueried
introducing the possibility to query only a selected number of relations / fields
ex:
This can be nested as far as we want
Adding tests
Fine tuning depths in the code base to lower the calls
Next steps: