[Flight] Don't limit objects that are children of special types#31160
Merged
sebmarkbage merged 2 commits intofacebook:mainfrom Oct 10, 2024
Merged
[Flight] Don't limit objects that are children of special types#31160sebmarkbage merged 2 commits intofacebook:mainfrom
sebmarkbage merged 2 commits intofacebook:mainfrom
Conversation
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
Collaborator
Do we special case cycles? During debugging I set the limit to +inf and hit errors from JSON.stringify due to serialization of cyclic dependencies. That wasn't specific to Map/Set though if I remember correctly |
Contributor
Author
|
We don't handle cyclic dependencies yet, no. But it would only be an issue if it's a cyclic Map directly in another Map. As soon as any other object is between it's fine. |
eps1lon
approved these changes
Oct 10, 2024
This was referenced Oct 10, 2024
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.
We can't make a special getter to mark the boundary of deep serialization (which can be used for lazy loading in the future) when the parent object is a special object that we parse with getOutlinedModel. Such as Map/Set and JSX.
This marks the objects that are direct children of those as not possible to limit.
I don't love this solution since ideally it would maybe be more local to the serialization of a specific object.
It also means that very deep trees of only Map/Set never get cut off. Maybe we should instead override the
get()and enumeration methods on these instead somehow.It's important to have it be a getter though because that's the mechanism that lets us lazy-load more depth in the future.