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.
fix(bundler): restore tegg manifest runtime paths #5937
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: next
Are you sure you want to change the base?
fix(bundler): restore tegg manifest runtime paths #5937
Changes from all commits
43440e8File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The
__restoreBundleManifestfunction is executed at application startup. UsingJSON.parse(JSON.stringify(manifest))to deep clone the entire manifest can be quite inefficient, especially for large applications where the manifest might be several megabytes.Since we only need to modify specific paths within the
teggextension, we can optimize this by using an early return if the extension is missing and performing a shallow clone of the top-level structure and theteggextension specifically. This avoids the overhead of stringifying and re-parsing the whole object.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using
JSON.parse(JSON.stringify(manifest))to deep clone the entire manifest at runtime is inefficient, especially as the manifest (particularlyfileDiscoveryandresolveCache) can grow quite large in complex applications. Since only theteggextension data requires path restoration, it is more performant to perform a shallow clone of the manifest and only update the specificteggproperties. This avoids the overhead of serializing and re-parsing the bulk of the manifest data during application startup.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using
JSON.parse(JSON.stringify(manifest))for deep cloning is inefficient, especially for large manifests which can be several megabytes in size. This adds unnecessary CPU and memory overhead during application startup. Since only theteggextension paths need to be restored, a more efficient approach is to use object spreading to create a shallow copy of the manifest and only deep-clone theteggextension object.Uh oh!
There was an error while loading. Please reload this page.